URL context

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

URL প্রসঙ্গ টুল নিম্নলিখিত মত কাজের জন্য দরকারী:

  • ডেটা এক্সট্র্যাক্ট করুন : একাধিক ইউআরএল থেকে দাম, নাম বা মূল অনুসন্ধানের মতো নির্দিষ্ট তথ্য টেনে আনুন।
  • নথির তুলনা করুন : পার্থক্য চিহ্নিত করতে এবং প্রবণতা ট্র্যাক করতে একাধিক প্রতিবেদন, নিবন্ধ বা PDF বিশ্লেষণ করুন।
  • কন্টেন্ট সংশ্লেষণ এবং তৈরি করুন : সঠিক সারাংশ, ব্লগ পোস্ট বা প্রতিবেদন তৈরি করতে বিভিন্ন উৎস 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 প্রদান করেন, তখন টুলটি প্রথমে একটি অভ্যন্তরীণ সূচক ক্যাশে থেকে সামগ্রী আনার চেষ্টা করে। এটি একটি অত্যন্ত অপ্টিমাইজ করা ক্যাশে হিসাবে কাজ করে। যদি একটি URL সূচীতে উপলব্ধ না হয় (উদাহরণস্বরূপ, যদি এটি একটি খুব নতুন পৃষ্ঠা হয়), তাহলে টুলটি স্বয়ংক্রিয়ভাবে লাইভ আনার জন্য ফিরে আসে। এটি রিয়েল-টাইমে এর বিষয়বস্তু পুনরুদ্ধার করতে সরাসরি URL অ্যাক্সেস করে।

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

যখন ইউআরএল প্রসঙ্গ এবং Google অনুসন্ধানের সাথে গ্রাউন্ডিং উভয়ই সক্ষম করা থাকে, তখন মডেলটি অনলাইনে প্রাসঙ্গিক তথ্য খুঁজে পেতে তার অনুসন্ধান ক্ষমতা ব্যবহার করতে পারে এবং তারপরে এটি যে পৃষ্ঠাগুলি খুঁজে পায় তার আরও গভীরভাবে বোঝার জন্য 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)।

সীমাবদ্ধতা

  • মূল্য নির্ধারণ : ইউআরএল থেকে পুনরুদ্ধার করা সামগ্রী ইনপুট টোকেন হিসাবে গণনা করা হয়। হারের সীমা এবং মূল্য ব্যবহৃত মডেলের উপর ভিত্তি করে। বিস্তারিত জানার জন্য হার সীমা এবং মূল্য পৃষ্ঠা দেখুন.
  • অনুরোধের সীমা : টুলটি প্রতি অনুরোধে 20টি URL পর্যন্ত প্রক্রিয়া করতে পারে।
  • URL সামগ্রীর আকার : একটি একক URL থেকে পুনরুদ্ধার করা সামগ্রীর সর্বাধিক আকার হল 34MB৷

সমর্থিত এবং অসমর্থিত সামগ্রী প্রকার

টুলটি ইউআরএল থেকে নিম্নলিখিত বিষয়বস্তুর ধরন সহ সামগ্রী বের করতে পারে:

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

নিম্নলিখিত বিষয়বস্তুর প্রকারগুলি সমর্থিত নয় :

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

এরপর কি