URL context

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

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

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

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

পাইথন

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

client = genai.Client()
model_id = "gemini-2.5-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)

জাভাস্ক্রিপ্ট

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

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-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();

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-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 Context টুলটি গতি, খরচ এবং নতুন ডেটা অ্যাক্সেসের ভারসাম্য বজায় রাখার জন্য দুই-পদক্ষেপের পুনরুদ্ধার প্রক্রিয়া ব্যবহার করে। যখন আপনি একটি URL প্রদান করেন, তখন টুলটি প্রথমে একটি অভ্যন্তরীণ সূচক ক্যাশে থেকে সামগ্রী আনার চেষ্টা করে। এটি একটি অত্যন্ত অপ্টিমাইজ করা ক্যাশে হিসাবে কাজ করে। যদি একটি URL সূচীতে উপলব্ধ না থাকে (উদাহরণস্বরূপ, যদি এটি একটি খুব নতুন পৃষ্ঠা হয়), তাহলে টুলটি স্বয়ংক্রিয়ভাবে একটি লাইভ ফেচ করার জন্য ফিরে আসে। এটি রিয়েল-টাইমে এর সামগ্রী পুনরুদ্ধার করার জন্য সরাসরি URL অ্যাক্সেস করে।

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

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

পাইথন

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

client = genai.Client()
model_id = "gemini-2.5-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)

জাভাস্ক্রিপ্ট

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

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-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();

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-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_UNSAFE এর একটি url_retrieval_status পাবেন।

টোকেন সংখ্যা

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

সীমাবদ্ধতা

  • ফাংশন কলিং: ফাংশন কলিং সহ টুল ব্যবহার (URL প্রসঙ্গ, Google অনুসন্ধানের মাধ্যমে গ্রাউন্ডিং, ইত্যাদি) বর্তমানে অসমর্থিত।
  • অনুরোধের সীমা: টুলটি প্রতি অনুরোধে সর্বাধিক ২০টি URL প্রক্রিয়া করতে পারে।
  • URL কন্টেন্টের আকার: একটি URL থেকে প্রাপ্ত কন্টেন্টের সর্বোচ্চ আকার হল 34MB।

সমর্থিত এবং অসমর্থিত কন্টেন্টের ধরণ

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

  • টেক্সট (টেক্সট/এইচটিএমএল, অ্যাপ্লিকেশন/জেএসএন, টেক্সট/প্লেইন, টেক্সট/এক্সএমএল, টেক্সট/সিএসএস, টেক্সট/জাভাস্ক্রিপ্ট, টেক্সট/সিএসভি, টেক্সট/আরটিএফ)
  • ছবি (ছবি/পিএনজি, ছবি/জেপিইজি, ছবি/বিএমপি, ছবি/ওয়েবপি)
  • পিডিএফ (আবেদন/পিডিএফ)

নিম্নলিখিত ধরণের কন্টেন্ট সমর্থিত নয় :

  • পেওয়ালড কন্টেন্ট
  • ইউটিউব ভিডিও (ইউটিউব ইউআরএল কীভাবে প্রক্রিয়া করতে হয় তা জানতে ভিডিও বোঝাপড়া দেখুন)
  • গুগল ডক্স বা স্প্রেডশিটের মতো গুগল ওয়ার্কস্পেস ফাইল
  • ভিডিও এবং অডিও ফাইল

এরপর কি?