গুগল ম্যাপসের সাথে গ্রাউন্ডিং, জেমিনির জেনারেটিভ ক্ষমতাকে গুগল ম্যাপসের সমৃদ্ধ, তথ্যভিত্তিক এবং হালনাগাদ ডেটার সাথে সংযুক্ত করে। এই ফিচারটি ডেভেলপারদের তাদের অ্যাপ্লিকেশনে সহজেই অবস্থান-সচেতন কার্যকারিতা অন্তর্ভুক্ত করতে সক্ষম করে। যখন কোনো ব্যবহারকারীর কোয়েরির সাথে ম্যাপস ডেটার প্রাসঙ্গিকতা থাকে, তখন জেমিনি মডেলটি গুগল ম্যাপসকে কাজে লাগিয়ে ব্যবহারকারীর নির্দিষ্ট অবস্থান বা সাধারণ এলাকার জন্য প্রাসঙ্গিক, তথ্যগতভাবে সঠিক এবং নতুন উত্তর প্রদান করে।
- নির্ভুল ও অবস্থান-সচেতন প্রতিক্রিয়া: ভৌগোলিকভাবে সুনির্দিষ্ট অনুসন্ধানের জন্য গুগল ম্যাপসের ব্যাপক ও হালনাগাদ ডেটা ব্যবহার করুন।
- উন্নততর ব্যক্তিগতকরণ: ব্যবহারকারীর দেওয়া অবস্থানের উপর ভিত্তি করে সুপারিশ এবং তথ্য সাজিয়ে নিন।
- প্রাসঙ্গিক তথ্য ও উইজেট: তৈরি করা কন্টেন্টের পাশাপাশি ইন্টারেক্টিভ গুগল ম্যাপস উইজেটগুলো রেন্ডার করার জন্য কনটেক্সট টোকেন।
শুরু করুন
এই উদাহরণটি দেখায় কিভাবে ব্যবহারকারীর জিজ্ঞাসার সঠিক ও অবস্থান-সচেতন উত্তর দেওয়ার জন্য আপনার অ্যাপ্লিকেশনে গ্রাউন্ডিং-কে গুগল ম্যাপসের সাথে একীভূত করা যায়। প্রম্পটটি ঐচ্ছিক ব্যবহারকারী অবস্থানের সাথে স্থানীয় সুপারিশ জানতে চায়, যা জেমিনি মডেলকে গুগল ম্যাপসের ডেটা ব্যবহার করতে সক্ষম করে।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
prompt = "What are the best Italian restaurants within a 15-minute walk from here?"
response = client.models.generate_content(
model='gemini-3-flash-preview',
contents=prompt,
config=types.GenerateContentConfig(
# Turn on grounding with Google Maps
tools=[types.Tool(google_maps=types.GoogleMaps())],
# Optionally provide the relevant location context (this is in Los Angeles)
tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
lat_lng=types.LatLng(
latitude=34.050481, longitude=-118.248526))),
),
)
print("Generated Response:")
print(response.text)
if grounding := response.candidates[0].grounding_metadata:
if grounding.grounding_chunks:
print('-' * 40)
print("Sources:")
for chunk in grounding.grounding_chunks:
print(f'- [{chunk.maps.title}]({chunk.maps.uri})')
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function generateContentWithMapsGrounding() {
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: "What are the best Italian restaurants within a 15-minute walk from here?",
config: {
// Turn on grounding with Google Maps
tools: [{ googleMaps: {} }],
toolConfig: {
retrievalConfig: {
// Optionally provide the relevant location context (this is in Los Angeles)
latLng: {
latitude: 34.050481,
longitude: -118.248526,
},
},
},
},
});
console.log("Generated Response:");
console.log(response.text);
const grounding = response.candidates[0]?.groundingMetadata;
if (grounding?.groundingChunks) {
console.log("-".repeat(40));
console.log("Sources:");
for (const chunk of grounding.groundingChunks) {
if (chunk.maps) {
console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
}
}
}
}
generateContentWithMapsGrounding();
বিশ্রাম
curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent' \
-H 'Content-Type: application/json' \
-H "x-goog-api-key: ${GEMINI_API_KEY}" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "What are the best Italian restaurants within a 15-minute walk from here?"
}]
}],
"tools": [{"googleMaps": {}}],
"toolConfig": {
"retrievalConfig": {
"latLng": {"latitude": 34.050481, "longitude": -118.248526}
}
}
}'
গুগল ম্যাপস দিয়ে গ্রাউন্ডিং কীভাবে কাজ করে
গ্রাউন্ডিং উইথ গুগল ম্যাপস, ম্যাপস এপিআই-কে একটি গ্রাউন্ডিং সোর্স হিসেবে ব্যবহার করে জেমিনি এপিআই-কে গুগল জিও ইকোসিস্টেমের সাথে একীভূত করে। যখন কোনো ব্যবহারকারীর কোয়েরিতে ভৌগোলিক প্রেক্ষাপট থাকে, তখন জেমিনি মডেলটি গ্রাউন্ডিং উইথ গুগল ম্যাপস টুলটি চালু করতে পারে। এরপর মডেলটি প্রদত্ত অবস্থানের সাথে প্রাসঙ্গিক গুগল ম্যাপস ডেটার উপর ভিত্তি করে প্রতিক্রিয়া তৈরি করতে পারে।
প্রক্রিয়াটিতে সাধারণত অন্তর্ভুক্ত থাকে:
- ব্যবহারকারীর জিজ্ঞাসা: একজন ব্যবহারকারী আপনার অ্যাপ্লিকেশনে একটি জিজ্ঞাসা জমা দেন, যেখানে ভৌগোলিক প্রসঙ্গও অন্তর্ভুক্ত থাকতে পারে (যেমন, "আমার কাছাকাছি কফি শপ," "সান ফ্রান্সিসকোর জাদুঘর")।
- টুলের ব্যবহার: জেমিনি মডেলটি ভৌগোলিক উদ্দেশ্য শনাক্ত করে ‘গ্রাউন্ডিং উইথ গুগল ম্যাপস’ টুলটি চালু করে। এই টুলটিতে ঐচ্ছিকভাবে ব্যবহারকারীর
latitudeএবংlongitudeপ্রদান করা যেতে পারে। টুলটি একটি টেক্সচুয়াল সার্চ টুল এবং এটি ম্যাপসে সার্চ করার মতোই কাজ করে, যেখানে স্থানীয় অনুসন্ধানের ("আমার কাছাকাছি") জন্য স্থানাঙ্ক ব্যবহার করা হয়, কিন্তু নির্দিষ্ট বা অস্থানীয় অনুসন্ধানের ক্ষেত্রে সুস্পষ্ট অবস্থান দ্বারা প্রভাবিত হওয়ার সম্ভাবনা কম। - ডেটা পুনরুদ্ধার: ‘গ্রাউন্ডিং উইথ গুগল ম্যাপস’ পরিষেবাটি প্রাসঙ্গিক তথ্যের (যেমন, স্থান, পর্যালোচনা, ছবি, ঠিকানা, খোলার সময়) জন্য গুগল ম্যাপস-এ অনুসন্ধান করে।
- ভিত্তিভিত্তিক উৎপাদন: সংগৃহীত ম্যাপস ডেটা জেমিনি মডেলের প্রতিক্রিয়াকে অবহিত করতে ব্যবহৃত হয়, যা তথ্যগত নির্ভুলতা এবং প্রাসঙ্গিকতা নিশ্চিত করে।
- রেসপন্স ও উইজেট টোকেন: মডেলটি একটি টেক্সট রেসপন্স প্রদান করে, যাতে গুগল ম্যাপস সোর্সের উদ্ধৃতি অন্তর্ভুক্ত থাকে। ঐচ্ছিকভাবে, এপিআই রেসপন্সে একটি
google_maps_widget_context_tokenও থাকতে পারে, যা ডেভেলপারদের ভিজ্যুয়াল ইন্টারঅ্যাকশনের জন্য তাদের অ্যাপ্লিকেশনে একটি প্রাসঙ্গিক গুগল ম্যাপস উইজেট রেন্ডার করার সুযোগ দেয়।
কেন এবং কখন গুগল ম্যাপসের সাথে গ্রাউন্ডিং ব্যবহার করবেন
যেসব অ্যাপ্লিকেশনে নির্ভুল, হালনাগাদ এবং অবস্থান-নির্দিষ্ট তথ্যের প্রয়োজন হয়, সেগুলোর জন্য গুগল ম্যাপস গ্রাউন্ডিং একটি আদর্শ সমাধান। এটি বিশ্বজুড়ে ২৫ কোটিরও বেশি স্থানের গুগল ম্যাপসের বিশাল ডেটাবেসের ওপর ভিত্তি করে প্রাসঙ্গিক ও ব্যক্তিগতকৃত কন্টেন্ট সরবরাহ করে ব্যবহারকারীর অভিজ্ঞতাকে উন্নত করে।
আপনার অ্যাপ্লিকেশনের যখন নিম্নলিখিত প্রয়োজনগুলো থাকে, তখন আপনার গ্রাউন্ডিং উইথ গুগল ম্যাপস ব্যবহার করা উচিত:
- ভৌগোলিক-নির্দিষ্ট প্রশ্নগুলোর পূর্ণাঙ্গ ও নির্ভুল উত্তর প্রদান করুন।
- কথোপকথনমূলক ভ্রমণ পরিকল্পনাকারী এবং স্থানীয় নির্দেশিকা তৈরি করুন।
- অবস্থান এবং ব্যবহারকারীর পছন্দের উপর ভিত্তি করে রেস্তোরাঁ বা দোকানের মতো আকর্ষণীয় স্থান সুপারিশ করুন।
- সামাজিক, খুচরা বা খাদ্য সরবরাহ পরিষেবার জন্য অবস্থান-সচেতন অভিজ্ঞতা তৈরি করুন।
গুগল ম্যাপস ব্যবহারের ক্ষেত্রে বিশেষভাবে কার্যকর, বিশেষ করে যখন নৈকট্য এবং সাম্প্রতিক বাস্তব তথ্য অপরিহার্য হয়, যেমন 'আমার কাছাকাছি সেরা কফি শপ' খোঁজা বা দিকনির্দেশনা পাওয়া।
এপিআই পদ্ধতি এবং প্যারামিটার
Gemini API-এর generateContent মেথডের মধ্যে একটি টুল হিসেবে Grounding with Google Maps উপলব্ধ রয়েছে। আপনার রিকোয়েস্টের tools প্যারামিটারে একটি googleMaps অবজেক্ট অন্তর্ভুক্ত করার মাধ্যমে আপনি Grounding with Google Maps সক্রিয় ও কনফিগার করতে পারেন।
JSON
{
"contents": [{
"parts": [
{"text": "Restaurants near Times Square."}
]
}],
"tools": { "googleMaps": {} }
}
googleMaps টুলটি অতিরিক্তভাবে একটি বুলিয়ান enableWidget প্যারামিটার গ্রহণ করতে পারে, যা রেসপন্সে googleMapsWidgetContextToken ফিল্ডটি ফেরত আসবে কিনা তা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এটি একটি প্রাসঙ্গিক Places উইজেট প্রদর্শন করতে ব্যবহার করা যেতে পারে।
JSON
{
"contents": [{
"parts": [
{"text": "Restaurants near Times Square."}
]
}],
"tools": { "googleMaps": { "enableWidget": true } }
}
এছাড়াও, টুলটি toolConfig হিসেবে প্রাসঙ্গিক অবস্থান পাস করা সমর্থন করে।
JSON
{
"contents": [{
"parts": [
{"text": "Restaurants near here."}
]
}],
"tools": { "googleMaps": {} },
"toolConfig": {
"retrievalConfig": {
"latLng": {
"latitude": 40.758896,
"longitude": -73.985130
}
}
}
}
গ্রাউন্ডিং প্রতিক্রিয়া বোঝা
যখন কোনো প্রতিক্রিয়া গুগল ম্যাপস ডেটার সাথে সফলভাবে সংযুক্ত করা হয়, তখন সেই প্রতিক্রিয়ায় একটি groundingMetadata ফিল্ড অন্তর্ভুক্ত থাকে। এই কাঠামোগত ডেটা আপনার অ্যাপ্লিকেশনে দাবি যাচাই করতে ও একটি সমৃদ্ধ সাইটেশন অভিজ্ঞতা তৈরি করতে, এবং সেইসাথে পরিষেবা ব্যবহারের প্রয়োজনীয়তা পূরণের জন্য অপরিহার্য।
JSON
{
"candidates": [
{
"content": {
"parts": [
{
"text": "CanteenM is an American restaurant with..."
}
],
"role": "model"
},
"groundingMetadata": {
"groundingChunks": [
{
"maps": {
"uri": "https://maps.google.com/?cid=13100894621228039586",
"title": "Heaven on 7th Marketplace",
"placeId": "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
},
// repeated ...
}
],
"groundingSupports": [
{
"segment": {
"startIndex": 0,
"endIndex": 79,
"text": "CanteenM is an American restaurant with a 4.6-star rating and is open 24 hours."
},
"groundingChunkIndices": [0]
},
// repeated ...
],
"webSearchQueries": [
"restaurants near me"
],
"googleMapsWidgetContextToken": "widgetcontent/..."
}
}
]
}
জেমিনি এপিআই groundingMetadata সাথে নিম্নলিখিত তথ্য ফেরত দেয়:
-
groundingChunks: অবজেক্টের অ্যারে, যাতেmapsউৎসগুলো (uri,placeIdএবংtitle) থাকে। -
groundingSupports: মডেল রেসপন্স টেক্সটকেgroundingChunksএর সোর্সগুলোর সাথে সংযুক্ত করার জন্য চাঙ্কগুলোর একটি অ্যারে। প্রতিটি চাঙ্ক একটি টেক্সট স্প্যানকে (যাstartIndexএবংendIndexদ্বারা সংজ্ঞায়িত) এক বা একাধিকgroundingChunkIndicesএর সাথে লিঙ্ক করে। ইনলাইন সাইটেশন তৈরির জন্য এটিই মূল চাবিকাঠি। -
googleMapsWidgetContextToken: একটি টেক্সট টোকেন যা একটি প্রাসঙ্গিক Places উইজেট রেন্ডার করতে ব্যবহার করা যেতে পারে।
টেক্সটের মধ্যে ইনলাইন সাইটেশন কীভাবে রেন্ডার করতে হয়, তা দেখানোর জন্য কোড স্নিপেটের জন্য 'গ্রাউন্ডিং উইথ গুগল সার্চ' ডক্সের উদাহরণটি দেখুন।
গুগল ম্যাপস প্রাসঙ্গিক উইজেটটি প্রদর্শন করুন
ফেরত আসা googleMapsWidgetContextToken ব্যবহার করতে হলে, আপনাকে গুগল ম্যাপস জাভাস্ক্রিপ্ট এপিআই লোড করতে হবে।
ব্যবহারের ক্ষেত্র
গুগল ম্যাপস গ্রাউন্ডিং বিভিন্ন অবস্থান-সচেতন ব্যবহারের ক্ষেত্রকে সমর্থন করে। নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে বিভিন্ন প্রম্পট এবং প্যারামিটার গুগল ম্যাপস গ্রাউন্ডিং-এর সুবিধা নিতে পারে। গুগল ম্যাপস গ্রাউন্ডেড ফলাফলের তথ্য প্রকৃত পরিস্থিতি থেকে ভিন্ন হতে পারে।
স্থান-নির্দিষ্ট প্রশ্ন পরিচালনা করা
গুগল ব্যবহারকারীদের রিভিউ এবং অন্যান্য ম্যাপ ডেটার উপর ভিত্তি করে উত্তর পেতে কোনো নির্দিষ্ট স্থান সম্পর্কে বিস্তারিত প্রশ্ন করুন।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
prompt = "Is there a cafe near the corner of 1st and Main that has outdoor seating?"
response = client.models.generate_content(
model='gemini-3-flash-preview',
contents=prompt,
config=types.GenerateContentConfig(
# Turn on the Maps tool
tools=[types.Tool(google_maps=types.GoogleMaps())],
# Provide the relevant location context (this is in Los Angeles)
tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
lat_lng=types.LatLng(
latitude=34.050481, longitude=-118.248526))),
),
)
print("Generated Response:")
print(response.text)
if grounding := response.candidates[0].grounding_metadata:
if chunks := grounding.grounding_chunks:
print('-' * 40)
print("Sources:")
for chunk in chunks:
print(f'- [{chunk.maps.title}]({chunk.maps.uri})')
```
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({});
async function run() {
const prompt = "Is there a cafe near the corner of 1st and Main that has outdoor seating?";
const response = await ai.models.generateContent({
model: 'gemini-3-flash-preview',
contents: prompt,
config: {
// Turn on the Maps tool
tools: [{googleMaps: {}}],
// Provide the relevant location context (this is in Los Angeles)
toolConfig: {
retrievalConfig: {
latLng: {
latitude: 34.050481,
longitude: -118.248526
}
}
}
},
});
console.log("Generated Response:");
console.log(response.text);
const chunks = response.candidates[0].groundingMetadata?.groundingChunks;
if (chunks) {
console.log('-'.repeat(40));
console.log("Sources:");
for (const chunk of chunks) {
if (chunk.maps) {
console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
}
}
}
}
run();
বিশ্রাম
curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent' \
-H 'Content-Type: application/json' \
-H "x-goog-api-key: ${GEMINI_API_KEY}" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Is there a cafe near the corner of 1st and Main that has outdoor seating?"
}]
}],
"tools": [{"googleMaps": {}}],
"toolConfig": {
"retrievalConfig": {
"latLng": {"latitude": 34.050481, "longitude": -118.248526}
}
}
}'
অবস্থান-ভিত্তিক ব্যক্তিগতকরণ প্রদান করা
ব্যবহারকারীর পছন্দ এবং একটি নির্দিষ্ট ভৌগোলিক এলাকা অনুযায়ী সুপারিশ পান।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
prompt = "Which family-friendly restaurants near here have the best playground reviews?"
response = client.models.generate_content(
model='gemini-3-flash-preview',
contents=prompt,
config=types.GenerateContentConfig(
tools=[types.Tool(google_maps=types.GoogleMaps())],
tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
# Provide the location as context; this is Austin, TX.
lat_lng=types.LatLng(
latitude=30.2672, longitude=-97.7431))),
),
)
print("Generated Response:")
print(response.text)
if grounding := response.candidates[0].grounding_metadata:
if chunks := grounding.grounding_chunks:
print('-' * 40)
print("Sources:")
for chunk in chunks:
print(f'- [{chunk.maps.title}]({chunk.maps.uri})')
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({});
async function run() {
const prompt = "Which family-friendly restaurants near here have the best playground reviews?";
const response = await ai.models.generateContent({
model: 'gemini-3-flash-preview',
contents: prompt,
config: {
tools: [{googleMaps: {}}],
toolConfig: {
retrievalConfig: {
// Provide the location as context; this is Austin, TX.
latLng: {
latitude: 30.2672,
longitude: -97.7431
}
}
}
},
});
console.log("Generated Response:");
console.log(response.text);
const chunks = response.candidates[0].groundingMetadata?.groundingChunks;
if (chunks) {
console.log('-'.repeat(40));
console.log("Sources:");
for (const chunk of chunks) {
if (chunk.maps) {
console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
}
}
}
}
run();
বিশ্রাম
curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent' \
-H 'Content-Type: application/json' \
-H "x-goog-api-key: ${GEMINI_API_KEY}" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Which family-friendly restaurants near here have the best playground reviews?"
}],
}],
"tools": [{"googleMaps": {}}],
"toolConfig": {
"retrievalConfig": {
"latLng": {"latitude": 30.2672, "longitude": -97.7431}
}
}
}'
ভ্রমণসূচী পরিকল্পনায় সহায়তা করা
বিভিন্ন স্থানের দিকনির্দেশনা ও তথ্যসহ বহু-দিনের পরিকল্পনা তৈরি করুন, যা ভ্রমণ অ্যাপ্লিকেশনের জন্য উপযুক্ত।
এই উদাহরণে, গুগল ম্যাপস টুলে উইজেটটি সক্রিয় করার মাধ্যমে googleMapsWidgetContextToken এর জন্য অনুরোধ করা হয়েছে। সক্রিয় করা হলে, ফেরত আসা টোকেনটি গুগল ম্যাপস জাভাস্ক্রিপ্ট এপিআই-এর <gmp-places-contextual> component ব্যবহার করে একটি প্রাসঙ্গিক প্লেসেস উইজেট রেন্ডার করতে ব্যবহার করা যেতে পারে।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
prompt = "Plan a day in San Francisco for me. I want to see the Golden Gate Bridge, visit a museum, and have a nice dinner."
response = client.models.generate_content(
model='gemini-3-flash-preview',
contents=prompt,
config=types.GenerateContentConfig(
tools=[types.Tool(google_maps=types.GoogleMaps(enable_widget=True))],
tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
# Provide the location as context, this is in San Francisco.
lat_lng=types.LatLng(
latitude=37.78193, longitude=-122.40476))),
),
)
print("Generated Response:")
print(response.text)
if grounding := response.candidates[0].grounding_metadata:
if grounding.grounding_chunks:
print('-' * 40)
print("Sources:")
for chunk in grounding.grounding_chunks:
print(f'- [{chunk.maps.title}]({chunk.maps.uri})')
if widget_token := grounding.google_maps_widget_context_token:
print('-' * 40)
print(f'<gmp-place-contextual context-token="{widget_token}"></gmp-place-contextual>')
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({});
async function run() {
const prompt = "Plan a day in San Francisco for me. I want to see the Golden Gate Bridge, visit a museum, and have a nice dinner.";
const response = await ai.models.generateContent({
model: 'gemini-3-flash-preview',
contents: prompt,
config: {
tools: [{googleMaps: {enableWidget: true}}],
toolConfig: {
retrievalConfig: {
// Provide the location as context, this is in San Francisco.
latLng: {
latitude: 37.78193,
longitude: -122.40476
}
}
}
},
});
console.log("Generated Response:");
console.log(response.text);
const groundingMetadata = response.candidates[0]?.groundingMetadata;
if (groundingMetadata) {
if (groundingMetadata.groundingChunks) {
console.log('-'.repeat(40));
console.log("Sources:");
for (const chunk of groundingMetadata.groundingChunks) {
if (chunk.maps) {
console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
}
}
}
if (groundingMetadata.googleMapsWidgetContextToken) {
console.log('-'.repeat(40));
document.body.insertAdjacentHTML('beforeend', `<gmp-place-contextual context-token="${groundingMetadata.googleMapsWidgetContextToken}`"></gmp-place-contextual>`);
}
}
}
run();
বিশ্রাম
curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent' \
-H 'Content-Type: application/json' \
-H "x-goog-api-key: ${GEMINI_API_KEY}" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Plan a day in San Francisco for me. I want to see the Golden Gate Bridge, visit a museum, and have a nice dinner."
}]
}],
"tools": [{"googleMaps": {"enableWidget":"true"}}],
"toolConfig": {
"retrievalConfig": {
"latLng": {"latitude": 37.78193, "longitude": -122.40476}
}
}
}'
যখন উইজেটটি রেন্ডার করা হবে, তখন এটি দেখতে নিচের মতো হবে:

পরিষেবা ব্যবহারের প্রয়োজনীয়তা
এই বিভাগে গ্রাউন্ডিং উইথ গুগল ম্যাপস-এর জন্য পরিষেবা ব্যবহারের প্রয়োজনীয়তা বর্ণনা করা হয়েছে।
গুগল ম্যাপস উৎসের ব্যবহার সম্পর্কে ব্যবহারকারীকে অবহিত করুন।
প্রতিটি Google Maps Grounded ফলাফলের সাথে, আপনি groundingChunks এ সেই উৎসগুলো পাবেন যা প্রতিটি প্রতিক্রিয়াকে সমর্থন করে। এছাড়াও নিম্নলিখিত মেটাডেটা ফেরত দেওয়া হয়:
- উৎস ইউআরআই
- শিরোনাম
- আইডি
গুগল ম্যাপস ব্যবহার করে গ্রাউন্ডিং-এর ফলাফল উপস্থাপন করার সময়, আপনাকে অবশ্যই সংশ্লিষ্ট গুগল ম্যাপস উৎসগুলো উল্লেখ করতে হবে এবং আপনার ব্যবহারকারীদের নিম্নলিখিত বিষয়গুলো সম্পর্কে জানাতে হবে:
- গুগল ম্যাপস সোর্সগুলোকে অবশ্যই সেই সোর্স-সমর্থিত জেনারেটেড কন্টেন্টের ঠিক পরেই থাকতে হবে। এই জেনারেটেড কন্টেন্টকে গুগল ম্যাপস গ্রাউন্ডেড রেজাল্ট নামেও উল্লেখ করা হয়।
- গুগল ম্যাপসের উৎসগুলো অবশ্যই একটিমাত্র ব্যবহারকারী ইন্টারঅ্যাকশনের মধ্যেই দেখার যোগ্য হতে হবে।
গুগল ম্যাপস লিঙ্ক সহ গুগল ম্যাপস উৎসগুলি প্রদর্শন করুন
groundingChunks এবং grounding_chunks.maps.placeAnswerSources.reviewSnippets এর প্রতিটি সোর্সের জন্য, নিম্নলিখিত শর্তাবলী অনুসরণ করে একটি লিঙ্ক প্রিভিউ তৈরি করতে হবে:
- Google Maps-এর টেক্সট অ্যাট্রিবিউশন নির্দেশিকা অনুসরণ করে প্রতিটি উৎসের কৃতিত্ব Google Maps-কে দিন।
- প্রতিক্রিয়ায় প্রদত্ত উৎসের শিরোনামটি প্রদর্শন করুন।
- রেসপন্স থেকে পাওয়া
uriবাgoogleMapsUriব্যবহার করে সোর্সের সাথে লিঙ্ক করুন।
এই ছবিগুলোতে উৎস এবং গুগল ম্যাপস লিঙ্কগুলো প্রদর্শনের জন্য ন্যূনতম প্রয়োজনীয়তাগুলো দেখানো হয়েছে।

আপনি উৎসগুলোর দৃশ্য সংকুচিত করতে পারেন।

ঐচ্ছিক: অতিরিক্ত বিষয়বস্তু যোগ করে লিঙ্ক প্রিভিউটি আরও উন্নত করুন, যেমন:
- গুগল ম্যাপস টেক্সট অ্যাট্রিবিউশনের আগে একটি গুগল ম্যাপস ফেভিকন যুক্ত করা হয়।
- উৎস ইউআরএল (
og:image) থেকে প্রাপ্ত একটি ছবি।
আমাদের কিছু গুগল ম্যাপস ডেটা সরবরাহকারী এবং তাদের লাইসেন্সের শর্তাবলী সম্পর্কে আরও তথ্যের জন্য, গুগল ম্যাপস এবং গুগল আর্থ-এর আইনি বিজ্ঞপ্তিগুলো দেখুন।
গুগল ম্যাপস টেক্সট অ্যাট্রিবিউশন নির্দেশিকা
টেক্সটে গুগল ম্যাপস-এর উৎস উল্লেখ করার সময় এই নির্দেশিকাগুলো অনুসরণ করুন:
- Google Maps লেখাটি কোনোভাবেই পরিবর্তন করবেন না:
- Google Maps-এর নামের প্রথম অক্ষরের আকার পরিবর্তন করবেন না।
- গুগল ম্যাপস একাধিক লাইনে জড়াবেন না।
- গুগল ম্যাপসকে অন্য কোনো ভাষায় স্থানীয়করণ করবেন না।
- HTML অ্যাট্রিবিউট translate="no" ব্যবহার করে ব্রাউজারকে গুগল ম্যাপস অনুবাদ করা থেকে বিরত রাখুন।
- নিম্নলিখিত সারণিতে বর্ণিত পদ্ধতি অনুযায়ী গুগল ম্যাপসের টেক্সট স্টাইল করুন:
| সম্পত্তি | শৈলী |
|---|---|
Font family | রোবোটো। ফন্টটি লোড করা ঐচ্ছিক। |
Fallback font family | আপনার পণ্যে ইতিমধ্যে ব্যবহৃত যেকোনো স্যান্স সেরিফ বডি ফন্ট অথবা ডিফল্ট সিস্টেম ফন্ট চালু করার জন্য "Sans-Serif" ব্যবহার করুন। |
Font style | স্বাভাবিক |
Font weight | ৪০০ |
Font color | সাদা, কালো (#1F1F1F), অথবা ধূসর (#5E5E5E)। পটভূমির সাথে সুলভ (৪.৫:১) বৈসাদৃশ্য বজায় রাখুন। |
Font size |
|
Spacing | স্বাভাবিক |
উদাহরণ CSS
নিম্নলিখিত CSS কোডটি সাদা বা হালকা ব্যাকগ্রাউন্ডে উপযুক্ত টাইপোগ্রাফিক স্টাইল ও রঙ সহ গুগল ম্যাপস রেন্ডার করে।
সিএসএস
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
.GMP-attribution {
font-family: Roboto, Sans-Serif;
font-style: normal;
font-weight: 400;
font-size: 1rem;
letter-spacing: normal;
white-space: nowrap;
color: #5e5e5e;
}
প্রসঙ্গ টোকেন, স্থান আইডি, এবং পর্যালোচনা আইডি
গুগল ম্যাপস ডেটার মধ্যে রয়েছে কনটেক্সট টোকেন, প্লেস আইডি এবং রিভিউ আইডি। আপনি নিম্নলিখিত রেসপন্স ডেটা ক্যাশ, স্টোর এবং এক্সপোর্ট করতে পারেন:
-
googleMapsWidgetContextToken -
placeId -
reviewId
'গ্রাউন্ডিং উইথ গুগল ম্যাপস' শর্তাবলীতে ক্যাশিং-এর উপর যে বিধিনিষেধ রয়েছে, তা প্রযোজ্য নয়।
নিষিদ্ধ কার্যকলাপ এবং এলাকা
একটি নিরাপদ এবং নির্ভরযোগ্য প্ল্যাটফর্ম বজায় রাখার জন্য, গ্রাউন্ডিং উইথ গুগল ম্যাপস-এ নির্দিষ্ট কিছু বিষয়বস্তু এবং কার্যকলাপের উপর অতিরিক্ত বিধিনিষেধ রয়েছে। শর্তাবলীতে উল্লিখিত ব্যবহারের বিধিনিষেধ ছাড়াও:
- আপনি জরুরি প্রতিক্রিয়া পরিষেবা সহ উচ্চ ঝুঁকিপূর্ণ কার্যকলাপের জন্য গ্রাউন্ডিং উইথ গুগল ম্যাপস ব্যবহার করবেন না।
আপনি কোনো নিষিদ্ধ অঞ্চলে গুগল ম্যাপস-এর সাহায্যে গ্রাউন্ডিং পরিষেবা প্রদানকারী আপনার অ্যাপ্লিকেশনটি বিতরণ বা বাজারজাত করবেন না। বর্তমান নিষিদ্ধ অঞ্চলগুলো হলো:
- চীন
- ক্রিমিয়া
- কিউবা
- দোনেৎস্ক গণপ্রজাতন্ত্র
- ইরান
- লুহানস্ক গণপ্রজাতন্ত্র
- উত্তর কোরিয়া
- সিরিয়া
- ভিয়েতনাম
এই তালিকাটি সময়ে সময়ে হালনাগাদ করা হতে পারে।
সর্বোত্তম অনুশীলন
- ব্যবহারকারীর অবস্থান প্রদান করুন: সবচেয়ে প্রাসঙ্গিক এবং ব্যক্তিগতকৃত প্রতিক্রিয়ার জন্য, যখন ব্যবহারকারীর অবস্থান জানা থাকে, তখন আপনার
googleMapsGroundingকনফিগারেশনে সর্বদাuser_location(অক্ষাংশ এবং দ্রাঘিমাংশ) অন্তর্ভুক্ত করুন। - Google Maps কনটেক্সচুয়াল উইজেট রেন্ডার করুন: কনটেক্সচুয়াল উইজেটটি ‘
googleMapsWidgetContextTokenনামক কনটেক্সট টোকেন ব্যবহার করে রেন্ডার করা হয়, যা Gemini API রেসপন্সে ফেরত আসে এবং Google Maps থেকে ভিজ্যুয়াল কন্টেন্ট রেন্ডার করতে ব্যবহার করা যায়। কনটেক্সচুয়াল উইজেট সম্পর্কে আরও তথ্যের জন্য, Google Developer Guide-এ ‘Grounding with Google Maps widget’ দেখুন। - ব্যবহারকারীদের জানান: আপনার ব্যবহারকারীদের স্পষ্টভাবে জানান যে তাদের জিজ্ঞাসার উত্তর দিতে গুগল ম্যাপসের ডেটা ব্যবহার করা হচ্ছে, বিশেষ করে যখন টুলটি সক্রিয় করা থাকে।
- লেটেন্সি পর্যবেক্ষণ করুন: কথোপকথনমূলক অ্যাপ্লিকেশনগুলির ক্ষেত্রে, একটি মসৃণ ব্যবহারকারীর অভিজ্ঞতা বজায় রাখার জন্য নিশ্চিত করুন যে গ্রাউন্ডেড প্রতিক্রিয়াগুলির P95 লেটেন্সি গ্রহণযোগ্য সীমার মধ্যে থাকে।
- অপ্রয়োজনে বন্ধ রাখুন: গুগল ম্যাপসের সাথে গ্রাউন্ডিং ডিফল্টরূপে বন্ধ থাকে। পারফরম্যান্স এবং খরচ অপ্টিমাইজ করার জন্য, শুধুমাত্র তখনই এটি (
"tools": [{"googleMaps": {}}]) চালু করুন, যখন কোনো কোয়েরির একটি স্পষ্ট ভৌগোলিক প্রেক্ষাপট থাকে।
সীমাবদ্ধতা
- ভৌগোলিক পরিধি: গুগল ম্যাপস ব্যবহার করে গ্রাউন্ডিং বিশ্বব্যাপী উপলব্ধ।
- মডেল সমর্থন: সমর্থিত মডেল বিভাগটি দেখুন।
- মাল্টিমোডাল ইনপুট/আউটপুট: গ্রাউন্ডিং উইথ গুগল ম্যাপস বর্তমানে টেক্সট এবং প্রাসঙ্গিক ম্যাপ উইজেট ছাড়া অন্য কোনো মাল্টিমোডাল ইনপুট বা আউটপুট সমর্থন করে না।
- ডিফল্ট অবস্থা: ‘গ্রাউন্ডিং উইথ গুগল ম্যাপস’ টুলটি ডিফল্টরূপে বন্ধ থাকে। আপনাকে অবশ্যই আপনার এপিআই অনুরোধগুলিতে এটি স্পষ্টভাবে সক্রিয় করতে হবে।
মূল্য নির্ধারণ এবং হারের সীমা
গুগল ম্যাপস গ্রাউন্ডিং-এর মূল্য কোয়েরির উপর ভিত্তি করে নির্ধারিত হয়। বর্তমান রেট হলো প্রতি ১০০০ গ্রাউন্ডেড প্রম্পটের জন্য ২৫ ডলার । ফ্রি টিয়ারে প্রতিদিন ৫০০টি পর্যন্ত রিকোয়েস্ট করার সুযোগও রয়েছে। একটি রিকোয়েস্ট তখনই কোটার মধ্যে গণনা করা হয়, যখন একটি প্রম্পট সফলভাবে অন্তত একটি গুগল ম্যাপস গ্রাউন্ডেড রেজাল্ট (অর্থাৎ, যে রেজাল্টে অন্তত একটি গুগল ম্যাপস সোর্স থাকে) ফেরত দেয়। যদি একটিমাত্র রিকোয়েস্ট থেকে গুগল ম্যাপস-এ একাধিক কোয়েরি পাঠানো হয়, তবে তা রেট লিমিটের ক্ষেত্রে একটি রিকোয়েস্ট হিসেবে গণ্য হবে।
মূল্য সংক্রান্ত বিস্তারিত তথ্যের জন্য, জেমিনি এপিআই মূল্য তালিকা পৃষ্ঠাটি দেখুন।
সমর্থিত মডেল
নিম্নলিখিত মডেলগুলো গুগল ম্যাপস-এর গ্রাউন্ডিং সমর্থন করে:
| মডেল | গুগল ম্যাপস দিয়ে গ্রাউন্ডিং |
|---|---|
| জেমিনি ৩.১ প্রো প্রিভিউ | ✔️ |
| জেমিনি ৩.১ ফ্ল্যাশ-লাইট প্রিভিউ | ✔️ |
| জেমিনি ৩ ফ্ল্যাশ প্রিভিউ | ✔️ |
| জেমিনি ২.৫ প্রো | ✔️ |
| জেমিনি ২.৫ ফ্ল্যাশ | ✔️ |
| জেমিনি ২.৫ ফ্ল্যাশ-লাইট | ✔️ |
| জেমিনি ২.০ ফ্ল্যাশ | ✔️ |
সমর্থিত টুল সংমিশ্রণ
জেমিনি ৩ মডেলগুলো বিল্ট-ইন টুল (যেমন গুগল ম্যাপস সহ গ্রাউন্ডিং) এবং কাস্টম টুল (ফাংশন কলিং) একত্রিত করা সমর্থন করে। টুল কম্বিনেশন পেজে এ বিষয়ে আরও জানুন।
এরপর কী?
- জেমিনি এপিআই কুকবুক-এ থাকা ‘গ্রাউন্ডিং উইথ গুগল সার্চ’ চেষ্টা করে দেখুন।
- অন্যান্য উপলব্ধ সরঞ্জামগুলো সম্পর্কে জানুন।
- দায়িত্বশীল এআই-এর সর্বোত্তম অনুশীলন এবং জেমিনি এপিআই-এর সুরক্ষা ফিল্টার সম্পর্কে আরও জানতে, সুরক্ষা সেটিংস নির্দেশিকা দেখুন।