URL context

Dengan menggunakan alat konteks URL, Anda dapat memberikan URL ke Gemini sebagai konteks tambahan untuk perintah Anda. Model kemudian dapat mengambil konten dari URL dan menggunakan konten tersebut untuk menginformasikan dan membentuk responsnya.

Alat ini berguna untuk tugas seperti berikut:

  • Mengekstrak poin data atau poin pembicaraan utama dari artikel
  • Membandingkan informasi di beberapa link
  • Menyintetis data dari beberapa sumber
  • Menjawab pertanyaan berdasarkan konten halaman tertentu
  • Menganalisis konten untuk tujuan tertentu (seperti menulis deskripsi pekerjaan atau membuat pertanyaan ujian)

Panduan ini menjelaskan cara menggunakan alat konteks URL di Gemini API.

Menggunakan konteks URL

Anda dapat menggunakan alat konteks URL dengan dua cara utama, baik secara mandiri maupun bersama-sama dengan Pemetaan dengan Google Penelusuran.

Konteks URL Saja

Anda memberikan URL tertentu yang ingin dianalisis oleh model secara langsung di perintah Anda.

Contoh perintah:

Summarize this document: YOUR_URLs

Extract the key features from the product description on this page: YOUR_URLs

Pemrosesan data dengan Google Penelusuran + Konteks URL

Anda juga dapat mengaktifkan konteks URL dan Grounding dengan Google Penelusuran secara bersamaan. Anda dapat memasukkan perintah dengan atau tanpa URL. Model mungkin akan menelusuri informasi yang relevan terlebih dahulu, lalu menggunakan alat konteks URL untuk membaca konten hasil penelusuran untuk pemahaman yang lebih mendalam.

Contoh perintah:

Give me three day events schedule based on YOUR_URL. Also let me know what needs to taken care of considering weather and commute.

Recommend 3 books for beginners to read to learn more about the latest YOUR_subject.

Contoh kode dengan konteks URL saja

Python

from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

client = genai.Client()
model_id = "gemini-2.5-flash-preview-05-20"

url_context_tool = Tool(
    url_context = types.UrlContext
)

response = client.models.generate_content(
    model=model_id,
    contents="Compare recipes from YOUR_URL1 and YOUR_URL2",
    config=GenerateContentConfig(
        tools=[url_context_tool],
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# get URLs retrieved for context
print(response.candidates[0].url_context_metadata)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-preview-05-20",
    contents: [
        "Compare recipes from YOUR_URL1 and YOUR_URL2",
    ],
    config: {
      tools: [{urlContext: {}}],
    },
  });
  console.log(response.text);
  // To get URLs retrieved for context
  console.log(response.candidates[0].urlContextMetadata)
}

await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-05-20:generateContent?key=$GOOGLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "contents": [
          {
              "parts": [
                  {"text": "Compare recipes from YOUR_URL1 and YOUR_URL2"}
              ]
          }
      ],
      "tools": [
          {
              "url_context": {}
          }
      ]
  }' > result.json

cat result.json

Python

from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

client = genai.Client()
model_id = "gemini-2.5-flash-preview-05-20"

tools = []
tools.append(Tool(url_context=types.UrlContext))
tools.append(Tool(google_search=types.GoogleSearch))

response = client.models.generate_content(
    model=model_id,
    contents="Give me three day events schedule based on YOUR_URL. Also let me know what needs to taken care of considering weather and commute.",
    config=GenerateContentConfig(
        tools=tools,
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# get URLs retrieved for context
print(response.candidates[0].url_context_metadata)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-preview-05-20",
    contents: [
        "Give me three day events schedule based on YOUR_URL. Also let me know what needs to taken care of considering weather and commute.",
    ],
    config: {
      tools: [{urlContext: {}}, {googleSearch: {}}],
    },
  });
  console.log(response.text);
  // To get URLs retrieved for context
  console.log(response.candidates[0].urlContextMetadata)
}

await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-05-20:generateContent?key=$GOOGLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "contents": [
          {
              "parts": [
                  {"text": "Give me three day events schedule based on YOUR_URL. Also let me know what needs to taken care of considering weather and commute."}
              ]
          }
      ],
      "tools": [
          {
              "url_context": {}
          },
          {
              "google_search": {}
          }
      ]
  }' > result.json

cat result.json

Untuk mengetahui detail selengkapnya tentang Grounding dengan Google Penelusuran, lihat halaman ringkasan.

Respons kontekstual

Respons model akan didasarkan pada konten yang diambil dari URL. Jika model mengambil konten dari URL, respons akan menyertakan url_context_metadata. Respons tersebut mungkin terlihat seperti berikut (bagian respons telah dihilangkan agar singkat):

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "... \n"
          }
        ],
        "role": "model"
      },
      ...
      "url_context_metadata":
      {
          "url_metadata":
          [
            {
              "retrieved_url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/1234567890abcdef",
              "url_retrieval_status": <UrlRetrievalStatus.URL_RETRIEVAL_STATUS_SUCCESS: "URL_RETRIEVAL_STATUS_SUCCESS">
            },
            {
              "retrieved_url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/abcdef1234567890",
              "url_retrieval_status": <UrlRetrievalStatus.URL_RETRIEVAL_STATUS_SUCCESS: "URL_RETRIEVAL_STATUS_SUCCESS">
            },
            {
              "retrieved_url": "YOUR_URL",
              "url_retrieval_status": <UrlRetrievalStatus.URL_RETRIEVAL_STATUS_SUCCESS: "URL_RETRIEVAL_STATUS_SUCCESS">
            },
            {
              "retrieved_url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/fedcba0987654321",
              "url_retrieval_status": <UrlRetrievalStatus.URL_RETRIEVAL_STATUS_SUCCESS: "URL_RETRIEVAL_STATUS_SUCCESS">
            }
          ]
        }
    }
}

Model yang didukung

Batasan

  • Alat ini akan menggunakan hingga 20 URL per permintaan untuk analisis.
  • Untuk hasil terbaik selama fase eksperimental, gunakan alat ini di halaman web standar, bukan konten multimedia seperti video YouTube.
  • Selama fase eksperimental, alat ini dapat digunakan secara gratis. Penagihan akan dilakukan nanti.
  • Rilis eksperimental memiliki kuota berikut:

    • 1.500 kueri per hari per project untuk permintaan yang dibuat melalui Gemini API
    • 100 kueri per hari per pengguna di Google AI Studio