গুগল সার্চের মাধ্যমে গ্রাউন্ডিং জেমিনি মডেলকে রিয়েল-টাইম ওয়েব কন্টেন্টের সাথে সংযুক্ত করে এবং সমস্ত উপলব্ধ ভাষার সাথে কাজ করে। এটি জেমিনিকে আরও সঠিক উত্তর প্রদান করতে এবং তার জ্ঞানের সীমাবদ্ধতার বাইরে যাচাইযোগ্য উৎসগুলি উদ্ধৃত করতে দেয়।
গ্রাউন্ডিং আপনাকে এমন অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে যা:
- বাস্তবিক নির্ভুলতা বৃদ্ধি করুন: বাস্তব-বিশ্বের তথ্যের উপর ভিত্তি করে প্রতিক্রিয়া তৈরি করে মডেল হ্যালুসিনেশন হ্রাস করুন।
- রিয়েল-টাইম তথ্য অ্যাক্সেস করুন: সাম্প্রতিক ঘটনা এবং বিষয় সম্পর্কে প্রশ্নের উত্তর দিন।
উদ্ধৃতি প্রদান করুন: মডেলের দাবির উৎস দেখিয়ে ব্যবহারকারীর আস্থা তৈরি করুন।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
grounding_tool = types.Tool(
google_search=types.GoogleSearch()
)
config = types.GenerateContentConfig(
tools=[grounding_tool]
)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Who won the euro 2024?",
config=config,
)
print(response.text)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const groundingTool = {
googleSearch: {},
};
const config = {
tools: [groundingTool],
};
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: "Who won the euro 2024?",
config,
});
console.log(response.text);
বিশ্রাম
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" \
-X POST \
-d '{
"contents": [
{
"parts": [
{"text": "Who won the euro 2024?"}
]
}
],
"tools": [
{
"google_search": {}
}
]
}'
আপনি অনুসন্ধান টুল নোটবুক ব্যবহার করে আরও জানতে পারেন।
গুগল সার্চের মাধ্যমে গ্রাউন্ডিং কীভাবে কাজ করে
যখন আপনি google_search টুলটি সক্ষম করেন, তখন মডেলটি অনুসন্ধান, প্রক্রিয়াকরণ এবং তথ্য উদ্ধৃত করার সম্পূর্ণ কর্মপ্রবাহ স্বয়ংক্রিয়ভাবে পরিচালনা করে।

- ব্যবহারকারীর প্রম্পট: আপনার অ্যাপ্লিকেশনটি
google_searchটুল সক্রিয় করে Gemini API-তে ব্যবহারকারীর প্রম্পট পাঠায়। - তাৎক্ষণিক বিশ্লেষণ: মডেলটি প্রম্পট বিশ্লেষণ করে এবং নির্ধারণ করে যে কোনও Google অনুসন্ধান উত্তরটি উন্নত করতে পারে কিনা।
- গুগল সার্চ: প্রয়োজনে, মডেলটি স্বয়ংক্রিয়ভাবে এক বা একাধিক সার্চ কোয়েরি তৈরি করে এবং সেগুলি কার্যকর করে।
- অনুসন্ধান ফলাফল প্রক্রিয়াকরণ: মডেলটি অনুসন্ধান ফলাফল প্রক্রিয়াকরণ করে, তথ্য সংশ্লেষণ করে এবং একটি প্রতিক্রিয়া তৈরি করে।
- গ্রাউন্ডেড রেসপন্স: API একটি চূড়ান্ত, ব্যবহারকারী-বান্ধব প্রতিক্রিয়া প্রদান করে যা অনুসন্ধান ফলাফলের উপর ভিত্তি করে তৈরি করা হয়। এই প্রতিক্রিয়াতে মডেলের টেক্সট উত্তর এবং অনুসন্ধান কোয়েরি, ওয়েব ফলাফল এবং উদ্ধৃতি সহ
groundingMetadataঅন্তর্ভুক্ত থাকে।
গ্রাউন্ডিং প্রতিক্রিয়া বোঝা
যখন কোনও প্রতিক্রিয়া সফলভাবে গ্রাউন্ডেড করা হয়, তখন প্রতিক্রিয়াটিতে একটি groundingMetadata ক্ষেত্র অন্তর্ভুক্ত থাকে। দাবি যাচাই করার জন্য এবং আপনার আবেদনে একটি সমৃদ্ধ উদ্ধৃতি অভিজ্ঞতা তৈরি করার জন্য এই স্ট্রাকচার্ড ডেটা অপরিহার্য।
{
"candidates": [
{
"content": {
"parts": [
{
"text": "Spain won Euro 2024, defeating England 2-1 in the final. This victory marks Spain's record fourth European Championship title."
}
],
"role": "model"
},
"groundingMetadata": {
"webSearchQueries": [
"UEFA Euro 2024 winner",
"who won euro 2024"
],
"searchEntryPoint": {
"renderedContent": "<!-- HTML and CSS for the search widget -->"
},
"groundingChunks": [
{"web": {"uri": "https://vertexaisearch.cloud.google.com.....", "title": "aljazeera.com"}},
{"web": {"uri": "https://vertexaisearch.cloud.google.com.....", "title": "uefa.com"}}
],
"groundingSupports": [
{
"segment": {"startIndex": 0, "endIndex": 85, "text": "Spain won Euro 2024, defeatin..."},
"groundingChunkIndices": [0]
},
{
"segment": {"startIndex": 86, "endIndex": 210, "text": "This victory marks Spain's..."},
"groundingChunkIndices": [0, 1]
}
]
}
}
]
}
জেমিনি এপিআই groundingMetadata সহ নিম্নলিখিত তথ্য প্রদান করে:
-
webSearchQueries: ব্যবহৃত অনুসন্ধান প্রশ্নের অ্যারে। এটি মডেলের যুক্তি প্রক্রিয়া ডিবাগিং এবং বোঝার জন্য কার্যকর। -
searchEntryPoint: প্রয়োজনীয় অনুসন্ধান পরামর্শ প্রদানের জন্য HTML এবং CSS ধারণ করে। সম্পূর্ণ ব্যবহারের প্রয়োজনীয়তা পরিষেবার শর্তাবলীতে বিস্তারিতভাবে বর্ণনা করা হয়েছে। -
groundingChunks: ওয়েব সোর্স (uriএবংtitle) ধারণকারী বস্তুর অ্যারে। -
groundingSupports:groundingChunksএর উৎসের সাথে মডেল রেসপন্সtextসংযোগ করার জন্য খণ্ডের অ্যারে। প্রতিটি খণ্ড একটি টেক্সটsegment(startIndexএবংendIndexদ্বারা সংজ্ঞায়িত) এক বা একাধিকgroundingChunkIndicesএর সাথে লিঙ্ক করে। এটি ইনলাইন সাইটেশন তৈরির মূল চাবিকাঠি।
পাবলিক ওয়েব ডেটা এবং আপনার প্রদত্ত নির্দিষ্ট URL-এ প্রতিক্রিয়াগুলিকে গ্রাউন্ড করার জন্য URL প্রসঙ্গ টুলের সাথে Google Search-এর মাধ্যমে গ্রাউন্ডিং ব্যবহার করা যেতে পারে।
ইনলাইন উদ্ধৃতি সহ উৎসগুলি আরোপ করা
API স্ট্রাকচার্ড সাইটেশন ডেটা প্রদান করে, যা আপনাকে আপনার ইউজার ইন্টারফেসে সোর্স কীভাবে প্রদর্শন করবেন তার উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়। আপনি মডেলের স্টেটমেন্টগুলিকে সরাসরি তাদের সোর্সের সাথে লিঙ্ক করতে groundingSupports এবং groundingChunks ফিল্ড ব্যবহার করতে পারেন। ইনলাইন, ক্লিকযোগ্য সাইটেশনের মাধ্যমে একটি প্রতিক্রিয়া তৈরি করতে মেটাডেটা প্রক্রিয়াকরণের একটি সাধারণ প্যাটার্ন এখানে দেওয়া হল।
পাইথন
def add_citations(response):
text = response.text
supports = response.candidates[0].grounding_metadata.grounding_supports
chunks = response.candidates[0].grounding_metadata.grounding_chunks
# Sort supports by end_index in descending order to avoid shifting issues when inserting.
sorted_supports = sorted(supports, key=lambda s: s.segment.end_index, reverse=True)
for support in sorted_supports:
end_index = support.segment.end_index
if support.grounding_chunk_indices:
# Create citation string like [1](link1)[2](link2)
citation_links = []
for i in support.grounding_chunk_indices:
if i < len(chunks):
uri = chunks[i].web.uri
citation_links.append(f"[{i + 1}]({uri})")
citation_string = ", ".join(citation_links)
text = text[:end_index] + citation_string + text[end_index:]
return text
# Assuming response with grounding metadata
text_with_citations = add_citations(response)
print(text_with_citations)
জাভাস্ক্রিপ্ট
function addCitations(response) {
let text = response.text;
const supports = response.candidates[0]?.groundingMetadata?.groundingSupports;
const chunks = response.candidates[0]?.groundingMetadata?.groundingChunks;
// Sort supports by end_index in descending order to avoid shifting issues when inserting.
const sortedSupports = [...supports].sort(
(a, b) => (b.segment?.endIndex ?? 0) - (a.segment?.endIndex ?? 0),
);
for (const support of sortedSupports) {
const endIndex = support.segment?.endIndex;
if (endIndex === undefined || !support.groundingChunkIndices?.length) {
continue;
}
const citationLinks = support.groundingChunkIndices
.map(i => {
const uri = chunks[i]?.web?.uri;
if (uri) {
return `[${i + 1}](${uri})`;
}
return null;
})
.filter(Boolean);
if (citationLinks.length > 0) {
const citationString = citationLinks.join(", ");
text = text.slice(0, endIndex) + citationString + text.slice(endIndex);
}
}
return text;
}
const textWithCitations = addCitations(response);
console.log(textWithCitations);
ইনলাইন উদ্ধৃতি সহ নতুন প্রতিক্রিয়াটি এইরকম দেখাবে:
Spain won Euro 2024, defeating England 2-1 in the final.[1](https:/...), [2](https:/...), [4](https:/...), [5](https:/...) This victory marks Spain's record-breaking fourth European Championship title.[5]((https:/...), [2](https:/...), [3](https:/...), [4](https:/...)
মূল্য নির্ধারণ
যখন আপনি Google Search-এর সাথে Grounding ব্যবহার করেন, তখন আপনার প্রকল্পের জন্য google_search টুল সহ প্রতিটি API অনুরোধের জন্য বিল করা হয়। যদি মডেলটি একটি একক প্রম্পটের উত্তর দেওয়ার জন্য একাধিক অনুসন্ধান কোয়েরি চালানোর সিদ্ধান্ত নেয় (উদাহরণস্বরূপ, একই API কলের মধ্যে "UEFA Euro 2024 winner" এবং "Spain vs England Euro 2024 final score" অনুসন্ধান করে), তাহলে এটি সেই অনুরোধের জন্য টুলের একক বিলযোগ্য ব্যবহার হিসাবে গণ্য হবে।
বিস্তারিত মূল্য নির্ধারণের তথ্যের জন্য, জেমিনি এপিআই মূল্য নির্ধারণ পৃষ্ঠাটি দেখুন।
সমর্থিত মডেল
পরীক্ষামূলক এবং পূর্বরূপ মডেলগুলি অন্তর্ভুক্ত নয়। আপনি মডেল ওভারভিউ পৃষ্ঠায় তাদের ক্ষমতাগুলি খুঁজে পেতে পারেন।
| মডেল | গুগল সার্চের মাধ্যমে গ্রাউন্ডিং |
|---|---|
| জেমিনি ২.৫ প্রো | ✔️ |
| জেমিনি 2.5 ফ্ল্যাশ | ✔️ |
| জেমিনি ২.৫ ফ্ল্যাশ-লাইট | ✔️ |
| জেমিনি ২.০ ফ্ল্যাশ | ✔️ |
| জেমিনি ১.৫ প্রো | ✔️ |
| জেমিনি ১.৫ ফ্ল্যাশ | ✔️ |
সমর্থিত সরঞ্জাম সমন্বয়
জটিল ব্যবহারের ক্ষেত্রে শক্তি যোগাতে আপনি কোড এক্সিকিউশন এবং URL কনটেক্সটের মতো অন্যান্য টুলের সাথে Google Search-এর মাধ্যমে Grounding ব্যবহার করতে পারেন।
জেমিনি ১.৫ মডেলের সাথে গ্রাউন্ডিং (লিগ্যাসি)
যদিও google_search টুলটি Gemini 2.0 এবং পরবর্তী সংস্করণের জন্য সুপারিশ করা হয়, Gemini 1.5 google_search_retrieval নামক একটি লিগ্যাসি টুল সমর্থন করে। এই টুলটি একটি dynamic মোড প্রদান করে যা মডেলটিকে সিদ্ধান্ত নিতে দেয় যে প্রম্পটে নতুন তথ্যের প্রয়োজন আছে তার আস্থার উপর ভিত্তি করে অনুসন্ধান করা হবে কিনা। যদি মডেলের আত্মবিশ্বাস আপনার সেট করা dynamic_threshold (0.0 এবং 1.0 এর মধ্যে একটি মান) এর উপরে থাকে, তাহলে এটি একটি অনুসন্ধান সম্পাদন করবে।
পাইথন
# Note: This is a legacy approach for Gemini 1.5 models.
# The 'google_search' tool is recommended for all new development.
import os
from google import genai
from google.genai import types
client = genai.Client()
retrieval_tool = types.Tool(
google_search_retrieval=types.GoogleSearchRetrieval(
dynamic_retrieval_config=types.DynamicRetrievalConfig(
mode=types.DynamicRetrievalConfigMode.MODE_DYNAMIC,
dynamic_threshold=0.7 # Only search if confidence > 70%
)
)
)
config = types.GenerateContentConfig(
tools=[retrieval_tool]
)
response = client.models.generate_content(
model='gemini-1.5-flash',
contents="Who won the euro 2024?",
config=config,
)
print(response.text)
if not response.candidates[0].grounding_metadata:
print("\nModel answered from its own knowledge.")
জাভাস্ক্রিপ্ট
// Note: This is a legacy approach for Gemini 1.5 models.
// The 'googleSearch' tool is recommended for all new development.
import { GoogleGenAI, DynamicRetrievalConfigMode } from "@google/genai";
const ai = new GoogleGenAI({});
const retrievalTool = {
googleSearchRetrieval: {
dynamicRetrievalConfig: {
mode: DynamicRetrievalConfigMode.MODE_DYNAMIC,
dynamicThreshold: 0.7, // Only search if confidence > 70%
},
},
};
const config = {
tools: [retrievalTool],
};
const response = await ai.models.generateContent({
model: "gemini-1.5-flash",
contents: "Who won the euro 2024?",
config,
});
console.log(response.text);
if (!response.candidates?.[0]?.groundingMetadata) {
console.log("\nModel answered from its own knowledge.");
}
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{"parts": [{"text": "Who won the euro 2024?"}]}
],
"tools": [{
"google_search_retrieval": {
"dynamic_retrieval_config": {
"mode": "MODE_DYNAMIC",
"dynamic_threshold": 0.7
}
}
}]
}'
এরপর কি?
- জেমিনি এপিআই কুকবুক-এ গুগল সার্চের মাধ্যমে গ্রাউন্ডিং ব্যবহার করে দেখুন।
- অন্যান্য উপলব্ধ সরঞ্জাম সম্পর্কে জানুন, যেমন ফাংশন কলিং ।
- URL প্রসঙ্গ টুল ব্যবহার করে নির্দিষ্ট URL গুলির সাথে প্রম্পটগুলি কীভাবে বৃদ্ধি করবেন তা শিখুন।