URL কন্টেক্সট

URL কন্টেক্সট টুল আপনাকে URL-এর মাধ্যমে মডেলকে অতিরিক্ত কন্টেক্সট প্রদান করতে দেয়। আপনার অনুরোধে URL যোগ করার মাধ্যমে, মডেলটি সেইসব পৃষ্ঠা থেকে কন্টেন্ট অ্যাক্সেস করবে (যতক্ষণ না এটি এমন কোনও URL হয় যা সীমাবদ্ধতা বিভাগে তালিকাভুক্ত করা হয়েছে) যাতে মডেলটি উত্তর দিতে এবং তার উত্তরকে আরও উন্নত করতে পারে।

URL কন্টেক্সট টুল নিম্নলিখিত টাস্কের জন্য সহায়ক:

  • ডেটা এক্সট্র্যাক্ট করা: একাধিক URL থেকে দাম, নাম বা মূল ফলাফলের মতো নির্দিষ্ট তথ্য সংগ্রহ করা।
  • ডকুমেন্ট তুলনা করা: পার্থক্য শনাক্ত করতে এবং ট্রেন্ড ট্র্যাক করতে একাধিক রিপোর্ট, নিবন্ধ বা PDF বিশ্লেষণ করুন।
  • কন্টেন্ট সিন্থেসাইজ ও তৈরি করা: সঠিক সারসংক্ষেপ, ব্লগ পোস্ট বা রিপোর্ট তৈরি করতে একাধিক সোর্স URL থেকে তথ্য একত্রিত করুন।
  • কোড ও ডকুমেন্ট বিশ্লেষণ করা: কোড ব্যাখ্যা করতে, সেট-আপ সংক্রান্ত নির্দেশাবলী তৈরি করতে বা প্রশ্নের উত্তর দিতে, GitHub রিপোজিটরি বা টেকনিক্যাল ডকুমেন্টেশন উল্লেখ করুন।

নিচের উদাহরণ থেকে কীভাবে আলাদা আলাদা ওয়েবসাইট থেকে দুটি রেসিপি তুলনা করতে হয় তা জানতে পারবেন।

Python

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

client = genai.Client()
model_id = "gemini-3.8-flash"

tools = [
  {"url_context": {}},
]

url1 = "https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592"
url2 = "https://www.allrecipes.com/recipe/21151/simple-whole-roast-chicken/"

response = client.models.generate_content(
    model=model_id,
    contents=f"Compare the ingredients and cooking times from the recipes at {url1} and {url2}",
    config=GenerateContentConfig(
        tools=tools,
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)

# For verification, you can inspect the metadata to see which URLs the model retrieved
print(response.candidates[0].url_context_metadata)

Javascript

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

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.8-flash",
    contents: [
        "Compare the ingredients and cooking times from the recipes at https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592 and https://www.allrecipes.com/recipe/21151/simple-whole-roast-chicken/",
    ],
    config: {
      tools: [{urlContext: {}}],
    },
  });
  console.log(response.text);

  // For verification, you can inspect the metadata to see which URLs the model retrieved
  console.log(response.candidates[0].urlContextMetadata)
}

await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "contents": [
          {
              "parts": [
                  {"text": "Compare the ingredients and cooking times from the recipes at https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592 and https://www.allrecipes.com/recipe/21151/simple-whole-roast-chicken/"}
              ]
          }
      ],
      "tools": [
          {
              "url_context": {}
          }
      ]
  }' > result.json

cat result.json

এটি কীভাবে কাজ করে

URL কন্টেক্সট টুল, স্পিড, খরচ ও ফ্রেশ ডেটা অ্যাক্সেস করার মধ্যে ব্যালেন্স বজায় রাখতে, দুটি ধাপের রিট্রিভাল প্রসেস ব্যবহার করে। আপনি কোনও URL দিলে, টুলটি প্রথমে ইন্টার্নাল ইন্ডেক্স ক্যাশে থেকে কন্টেন্ট ফেচ করার চেষ্টা করে। এটি খুবই অপ্টিমাইজ করা ক্যাশে হিসেবে কাজ করে। কোনও URL ইন্ডেক্সে উপলভ্য না থাকলে (যেমন, এটি খুব নতুন পৃষ্ঠা হলে), টুলটি অটোমেটিক লাইভ ফেচ করার বিকল্পে চলে যায়। এটি রিয়েল-টাইমে কন্টেন্ট পাওয়ার জন্য সরাসরি URL অ্যাক্সেস করে।

আরও শক্তিশালী ওয়ার্কফ্লো তৈরি করতে, আপনি URL প্রসঙ্গ টুলকে অন্যান্য টুলের সাথে একত্রিত করতে পারেন।

Gemini 3 মডেল কাস্টম টুলের (ফাংশন কলিং) সাথে বিল্ট-ইন টুল (যেমন URL কন্টেক্সট) একত্রিত করার সুবিধা দেয়। টুলের কম্বিনেশন পৃষ্ঠা থেকে আরও জানুন।

URL প্রসঙ্গ ও Google Search-এর মাধ্যমে গ্রাউন্ডিং, দু'টিই চালু করা থাকলে, মডেলটি অনলাইনে প্রাসঙ্গিক তথ্য খুঁজে পেতে সার্চ করার ক্ষমতা ব্যবহার করতে পারে এবং তারপরে, এটি যে পৃষ্ঠাগুলি খুঁজে পায় সেগুলির আরও গভীরভাবে বোঝার জন্য URL প্রসঙ্গ টুল ব্যবহার করতে পারে। এই পদ্ধতিটি সেইসব প্রম্পটের জন্য খুব উপযোগী যেগুলির জন্য নির্দিষ্ট পৃষ্ঠা সম্পর্কে বিস্তারিত সার্চ ও গভীর বিশ্লেষণ, দুটিই প্রয়োজন।

Python

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

client = genai.Client()
model_id = "gemini-3.8-flash"

tools = [
      {"url_context": {}},
      {"google_search": {}}
  ]

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,
    )
)

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({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.8-flash",
    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-3.8-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_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

উত্তর বোঝা

মডেলটি URL কনটেক্সট টুল ব্যবহার করলে, উত্তরে একটি url_context_metadata অবজেক্ট থাকে। এই অবজেক্টে মডেলের পাওয়া URL-এর তালিকা ও প্রতিটি রিট্রিভ করার প্রচেষ্টার স্ট্যাটাস থাকে, যা যাচাইকরণ ও ডিবাগিংয়ের জন্য সহায়ক।

উত্তরের সেই অংশের একটি উদাহরণ নিচে দেওয়া হল (সংক্ষিপ্ত করার জন্য উত্তরের কিছু অংশ বাদ দেওয়া হয়েছে):

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "... \n"
          }
        ],
        "role": "model"
      },
      ...
      "url_context_metadata": {
        "url_metadata": [
          {
            "retrieved_url": "https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592",
            "url_retrieval_status": "URL_RETRIEVAL_STATUS_SUCCESS"
          },
          {
            "retrieved_url": "https://www.allrecipes.com/recipe/21151/simple-whole-roast-chicken/",
            "url_retrieval_status": "URL_RETRIEVAL_STATUS_SUCCESS"
          }
        ]
      }
    }
  ]
}

এই অবজেক্ট সম্পর্কে সম্পূর্ণ বিবরণ পেতে , UrlContextMetadata API রেফারেন্স দেখুন।

নিরাপত্তা সংক্রান্ত পরীক্ষা

URL নিরাপত্তা সংক্রান্ত স্ট্যান্ডার্ড মেনে চলছে কিনা তা কনফার্ম করতে সিস্টেম কন্টেন্ট মডারেশন চেক করে। আপনার দেওয়া URL এই চেক করতে না পারলে, আপনি url_retrieval_status URL_RETRIEVAL_STATUS_UNSAFE পাবেন।

টোকেনের সংখ্যা

আপনার প্রম্পটে উল্লেখ করা URL থেকে পাওয়া কন্টেন্টকে ইনপুট টোকেনের অংশ হিসেবে গণনা করা হয়। আপনি usage_metadata মডেল আউটপুটের অবজেক্টে আপনার প্রম্পট ও টুল ব্যবহারের জন্য টোকেনের সংখ্যা দেখতে পাবেন। নিচে আউটপুটের একটি উদাহরণ দেওয়া হল:

'usage_metadata': {
  'candidates_token_count': 45,
  'prompt_token_count': 27,
  'prompt_tokens_details': [{'modality': <MediaModality.TEXT: 'TEXT'>,
    'token_count': 27}],
  'thoughts_token_count': 31,
  'tool_use_prompt_token_count': 10309,
  'tool_use_prompt_tokens_details': [{'modality': <MediaModality.TEXT: 'TEXT'>,
    'token_count': 10309}],
  'total_token_count': 10412
  }

টোকেন প্রতি দাম ব্যবহৃত মডেলের উপর নির্ভর করে, বিবরণের জন্য দাম পৃষ্ঠা দেখুন।

মানানসই মডেল

মডেল URL কন্টেক্সট
Gemini 3.8 Flash ✔️
Gemini 3.6 Flash ✔️
Gemini 3.5 Flash-Lite ✔️
Gemini 3.1 Pro প্রিভিউ ✔️
Gemini 3.1 Flash-Lite ✔️
Gemini 3 Flash প্রিভিউ ✔️
Gemini 2.5 Pro ✔️
Gemini 2.5 Flash ✔️
Gemini 2.5 Flash-Lite ✔️

পেশাদার পদ্ধতি

  • নির্দিষ্ট URL দিন: সবচেয়ে ভাল ফলাফল পেতে, আপনি যে কন্টেন্ট মডেলকে বিশ্লেষণ করতে দিতে চান, সেটির সরাসরি URL দিন। মডেলটি শুধুমাত্র আপনার দেওয়া URL থেকে কন্টেন্ট রিট্রিভ করবে, নেস্ট করা লিঙ্ক থেকে কোনও কন্টেন্ট নয়।
  • অ্যাক্সেসিবিলিটি চেক করুন: আপনার দেওয়া URL যেন লগ-ইন করতে হয় বা পেওয়ালের পিছনে থাকে এমন কোনও পৃষ্ঠায় নিয়ে না যায় তা যাচাই করুন।
  • সম্পূর্ণ URL ব্যবহার করুন: প্রোটোকল সহ সম্পূর্ণ URL দিন (যেমন, শুধু google.com-এর পরিবর্তে https://www.google.com)।

সীমাবদ্ধতা

  • অনুরোধের সীমা: টুলটি প্রতিটি অনুরোধে সর্বাধিক ২০টি URL প্রসেস করতে পারে।
  • URL কন্টেন্টের সাইজ: কোনও একটি URL থেকে পাওয়া কন্টেন্টের সর্বাধিক সাইজ হল ৩৪ এমবি।
  • সর্বজনীন অ্যাক্সেসযোগ্যতা: URL-কে ওয়েবে সর্বজনীনভাবে অ্যাক্সেসযোগ্য হতে হবে। লোকালহোস্ট অ্যাড্রেস (যেমন, লোকালহোস্ট, 127.0.0.1), প্রাইভেট নেটওয়ার্ক এবং টানেলিং পরিষেবা (যেমন, ngrok, pinggy) কাজ করে না।

কাজ করে ও কাজ করে না এমন কন্টেন্টের ধরন

টুলটি নিম্নলিখিত কন্টেন্টের ধরন সহ URL থেকে কন্টেন্ট এক্সট্র্যাক্ট করতে পারে:

  • টেক্সট (text/html, application/json, text/plain, text/xml, text/css, text/javascript , text/csv, text/rtf)
  • ছবি (image/png, image/jpeg, image/bmp, image/webp)
  • পিডিএফ (application/pdf)

নিম্নলিখিত কন্টেন্টের ধরন কাজ করে না:

  • পেওয়াল কন্টেন্ট
  • YouTube ভিডিও (YouTube URL কীভাবে প্রসেস করতে হয় তা জানতে ভিডিও বোঝা দেখুন )
  • Google Docs বা স্প্রেডশিটের মতো Google Workspace ফাইল
  • ভিডিও ও অডিও ফাইল

এর পরে কী করতে হবে