URL প্রসঙ্গ

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

ইউআরএল কনটেক্সট টুলটি নিম্নলিখিত কাজগুলোর জন্য উপযোগী:

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

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

পাইথন

from google import genai

client = genai.Client()

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

interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input=f"Compare the ingredients and cooking times from the recipes at {url1} and {url2}",
    tools=[{"type": "url_context"}]
)

# Print the model's text response and its source annotations
for step in interaction.steps:
    if step.type == "model_output":
        for content_block in step.content:
            if content_block.type == "text":
                print(content_block.text)
                if content_block.annotations:
                    print("\nSources:")
                    for annotation in content_block.annotations:
                        if annotation.type == "url_citation":
                            print(f"  - {annotation.title}: {annotation.url}")

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

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

const client = new GoogleGenAI({});

async function main() {
  const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "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: [{ type: "url_context" }]
  });

  // Print the model's text response and its source annotations
  for (const step of interaction.steps) {
    if (step.type === 'model_output') {
      for (const contentBlock of step.content) {
        if (contentBlock.type === 'text') {
          console.log(contentBlock.text);
          if (contentBlock.annotations) {
            console.log("\nSources:");
            for (const annotation of contentBlock.annotations) {
              if (annotation.type === 'url_citation') {
                console.log(`  - ${annotation.title}: ${annotation.url}`);
              }
            }
          }
        }
      }
    }
  }
}

await main();

বিশ্রাম

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "model": "gemini-3-flash-preview",
      "input": "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": [{"type": "url_context"}]
  }'

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

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

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

জেমিনি ৩ মডেলগুলো বিল্ট-ইন টুল (যেমন ইউআরএল কনটেক্সট) এবং কাস্টম টুল (ফাংশন কলিং) একত্রিত করা সমর্থন করে। টুল কম্বিনেশন পেজে এ বিষয়ে আরও জানুন।

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

পাইথন

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input="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=[
        {"type": "url_context"},
        {"type": "google_search"}
    ]
)

for step in interaction.steps:
    if step.type == "model_output":
        for content_block in step.content:
            if content_block.type == "text":
                print(content_block.text)

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

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

const client = new GoogleGenAI({});

async function main() {
  const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "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: [
      { type: "url_context" },
      { type: "google_search" }
    ]
  });

  for (const step of interaction.steps) {
    if (step.type === 'model_output') {
      for (const contentBlock of step.content) {
        if (contentBlock.type === 'text') console.log(contentBlock.text);
      }
    }
  }
}

await main();

বিশ্রাম

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "model": "gemini-3-flash-preview",
      "input": "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": [
          {"type": "url_context"},
          {"type": "google_search"}
      ]
  }'

প্রতিক্রিয়া বোঝা

যখন মডেলটি ইউআরএল কনটেক্সট টুল ব্যবহার করে, তখন এর টেক্সট রেসপন্সে টেক্সট কনটেন্ট ব্লকের মধ্যে ইনলাইন url_citation অ্যানোটেশন অন্তর্ভুক্ত থাকে। প্রতিটি অ্যানোটেশন রেসপন্স টেক্সটের একটি অংশকে ( start_index এবং end_index এর মাধ্যমে) সেই সোর্স ইউআরএল-এর সাথে লিঙ্ক করে, যেখান থেকে এটি নেওয়া হয়েছে। আপনার অ্যাপ্লিকেশনে সাইটেশনগুলো তুলে ধরার এটিই প্রধান উপায় — কীভাবে সেগুলো এক্সট্র্যাক্ট করতে হয়, তার জন্য উপরের মূল উদাহরণটি দেখুন।

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

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

সিস্টেমটি ইউআরএলগুলো নিরাপত্তা মান পূরণ করে কিনা তা নিশ্চিত করতে সেগুলোর উপর একটি কন্টেন্ট মডারেশন চেক করে। যদি কোনো ইউআরএল এই পরীক্ষায় উত্তীর্ণ হতে না পারে, তাহলে সংশ্লিষ্ট url_context_result ধাপে "unsafe" status দেখানো হবে।

টোকেন সংখ্যা

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

'usage': {
  'output_tokens': 45,
  'input_tokens': 27,
  'input_tokens_details': [{'modality': 'TEXT', 'token_count': 27}],
  'thoughts_tokens': 31,
  'tool_use_input_tokens': 10309,
  'tool_use_input_tokens_details': [{'modality': 'TEXT', 'token_count': 10309}],
  'total_tokens': 10412
}

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

সমর্থিত মডেল

মডেল ইউআরএল প্রসঙ্গ
জেমিনি ৩.১ প্রো প্রিভিউ ✔️
জেমিনি ৩.১ ফ্ল্যাশ-লাইট ✔️
জেমিনি ৩.১ ফ্ল্যাশ-লাইট প্রিভিউ ✔️
জেমিনি ৩ ফ্ল্যাশ প্রিভিউ ✔️
জেমিনি ২.৫ প্রো ✔️
জেমিনি ২.৫ ফ্ল্যাশ ✔️
জেমিনি ২.৫ ফ্ল্যাশ-লাইট ✔️

সর্বোত্তম অনুশীলন

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

সীমাবদ্ধতা

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

সমর্থিত এবং অসমর্থিত বিষয়বস্তুর প্রকারভেদ

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

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

নিম্নলিখিত বিষয়বস্তুর ধরণগুলি সমর্থিত নয় :

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