Grounding Lite ของ Google Maps Platform เป็นบริการที่รองรับ Model Context Protocol (MCP) ซึ่งช่วยให้คุณเชื่อมต่อแหล่งข้อมูลแอปพลิเคชัน AI ของคุณกับข้อมูลเชิงพื้นที่ที่เชื่อถือได้จาก Google Maps ได้อย่างง่ายดาย เซิร์ฟเวอร์ MCP มีเครื่องมือที่ช่วยให้ LLM เข้าถึงความสามารถสำหรับสถานที่ สภาพอากาศ และเส้นทาง รวมถึงแปลงชื่อสถานที่และ URL ของ Google Maps เป็นรหัสสถานที่ได้ คุณสามารถลองใช้ Maps Grounding Lite ได้โดยเปิดใช้ในเครื่องมือที่รองรับเซิร์ฟเวอร์ MCP
เครื่องมือ
Maps Grounding Lite มีเครื่องมือที่ช่วยให้ LLM เข้าถึงความสามารถต่อไปนี้ของ Google Maps ได้
- ค้นหาสถานที่: ขอข้อมูลเกี่ยวกับสถานที่และรับข้อมูลสรุปเกี่ยวกับสถานที่ที่ AI สร้างขึ้น รวมถึงรหัสสถานที่ พิกัดละติจูดและลองจิจูด และลิงก์ Google Maps สำหรับสถานที่แต่ละแห่งที่รวมอยู่ในข้อมูลสรุป คุณสามารถใช้รหัสสถานที่และพิกัดละติจูดและลองจิจูดที่แสดงผลกับ Google Maps Platform API อื่นๆ เพื่อแสดงสถานที่บนแผนที่ได้
- ค้นหาสภาพอากาศ: ขอข้อมูลเกี่ยวกับสภาพอากาศและแสดงสภาพอากาศปัจจุบัน พยากรณ์อากาศรายชั่วโมง และพยากรณ์อากาศรายวัน
คำนวณเส้นทาง: ขอข้อมูลเกี่ยวกับเส้นทางการขับรถหรือการเดินระหว่างสถานที่ 2 แห่ง และแสดงข้อมูลระยะทางและระยะเวลาของเส้นทาง
Resolve names และ Resolve Maps URLs: แปลงชื่อสถานที่ ที่อยู่ และ URL ของ Google Maps เป็นรหัสสถานที่ ดูข้อมูลเพิ่มเติมได้ที่ Resolution API
การเปิดใช้เซิร์ฟเวอร์ Maps Grounding Lite MCP ช่วยให้ LLM เรียกใช้เครื่องมือใหม่ที่เซิร์ฟเวอร์แสดงเพื่อแสดงข้อมูลการอ้างอิงเพิ่มเติมสำหรับประเภทข้อมูลที่ระบุไว้ข้างต้นได้ แม้ว่า LLM จะใช้ข้อมูลเพิ่มเติมนี้เป็นบริบทได้ แต่คำตอบที่ LLM สร้างขึ้นในท้ายที่สุดอาจไม่มีข้อมูลที่เซิร์ฟเวอร์ MCP แสดงผลอย่างตรงตัว คุณควรตรวจสอบความถูกต้องของคำตอบที่สร้างขึ้น
Resolution API
Maps Grounding Lite มี Resolution API ซึ่งช่วยให้คุณแปลงข้อความตำแหน่งและ URL แบบอิสระเป็นตัวระบุสถานที่ที่มีโครงสร้างของ Google Maps ได้ Resolution API พร้อมใช้งานเป็นเมธอด REST และเป็นเครื่องมือในเซิร์ฟเวอร์ MCP ของ Maps Grounding Lite ดังนี้
- Resolve names (REST, MCP): แปลงชื่อหรือที่อยู่ของสถานที่หลายรายการเป็นเอนทิตีสถานที่ที่เฉพาะเจาะจงใน Google Maps ซึ่งจะเป็นประโยชน์สำหรับการเชื่อมโยงคำค้นหาของผู้ใช้ที่ไม่มีโครงสร้างเข้ากับรหัสสถานที่ที่แน่นอน
- Resolve Maps URLs (REST, MCP): แปลงกลุ่ม URL ของ Google Maps เป็นเอนทิตีสถานที่ที่เฉพาะเจาะจง รูปแบบที่รองรับ ได้แก่ URL ของสถานที่มาตรฐานและ URL แบบย่อ
คุณใช้รหัสสถานที่ที่แสดงผลกับ Google Maps Platform API อื่นๆ ได้ คำตอบแต่ละรายการยังมีลิงก์ที่บันทึกสถานที่ที่แก้ไขแล้วเป็นรายการใน Google Maps ด้วย
ดูข้อมูลเพิ่มเติมได้ที่ Maps Tools Resolution API
ลองใช้แอปตัวอย่าง Maps Grounding Lite (เปิดในแท็บใหม่)
การเรียกเก็บเงินและโควต้า
วิธีเรียกเก็บเงินจากคุณ
เมื่อใช้รูปแบบการกำหนดราคาแบบจ่ายเมื่อใช้ของ Google Maps Platform ระบบจะคำนวณการใช้งาน Maps Grounding Lite สำหรับคำขอแต่ละรายการ โดยคำขอแต่ละรายการจะแสดงถึงเหตุการณ์การเรียกเก็บเงิน 1 รายการ ระบบจะติดตามการใช้งานสำหรับ SKU ของผลิตภัณฑ์แต่ละรายการ ใบเรียกเก็บเงินจะแสดงรายการโฆษณาสำหรับ SKU แต่ละรายการนอกเหนือจากค่าบริการทั้งหมด ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการรายงาน
ดูรายละเอียดราคาได้ที่ตารางราคาหลักและตารางราคาสำหรับอินเดีย
คำขอไปยัง Resolution API (ResolveNames และ ResolveMapsUrls) จะไม่มีค่าใช้จ่ายภายใต้ SKU Places API การค้นหาข้อความ Essentials (รหัสเท่านั้น)
นอกจากนี้ Maps Grounding Lite ยังมีให้บริการผ่านแพ็กเกจ Essentials และ Pro สมัครใช้บริการเพื่อประหยัดด้วย
โควต้า
โควต้าต่อไปนี้มีผลกับเครื่องมือและ API ที่ Maps Grounding Lite มีให้บริการ
- ค้นหาสถานที่: การค้นหา 300 ครั้งต่อนาทีต่อโปรเจ็กต์
- ค้นหาสภาพอากาศ: คำค้นหา 300 รายการต่อนาทีต่อโปรเจ็กต์
- Compute routes: การค้นหา 300 ครั้งต่อนาทีต่อโปรเจ็กต์
- Resolve names: การค้นหา 600 ครั้งต่อนาทีต่อโปรเจ็กต์
- Resolve Maps URLs: การค้นหา 600 ครั้งต่อนาทีต่อโปรเจ็กต์
คำขอ Resolution API แต่ละรายการจะนับเป็น 1 คำค้นหา ไม่ว่าจะมีรายการกี่รายการก็ตาม
นโยบายและข้อกำหนดในการให้บริการ
Maps Grounding Lite อยู่ภายใต้ข้อกำหนดในการให้บริการของ Google Maps Platform รวมถึงข้อกำหนดเฉพาะบริการสำหรับบริการนี้ ส่วนนี้อธิบายข้อกำหนดเพิ่มเติมในการใช้บริการสำหรับ Maps Grounding Lite ซึ่งรวมถึง LLM ที่เข้ากันได้และข้อกำหนดในการระบุแหล่งที่มาของแหล่งข้อมูล
ข้อกำหนดสำหรับ LLM ที่เข้ากันได้
คุณใช้ Maps Grounding Lite ได้กับ LLM ที่เป็นไปตามข้อกำหนดในการให้บริการของ Google Maps Platform เท่านั้น
ตัวอย่างเช่น คุณมีหน้าที่รับผิดชอบในการตรวจสอบว่าเนื้อหา Google Maps ไม่ได้ถูกแคช จัดเก็บ หรือใช้เพื่อปรับปรุง LLM ที่คุณเลือกใช้ ก่อนใช้ Maps Grounding Lite คุณจะต้องอ่านข้อกำหนดในการให้บริการสำหรับโมเดลที่ต้องการใช้กับ Maps Grounding Lite คุณต้องไม่ใช้ Maps Grounding Lite กับโมเดลใดๆ ที่ใช้ข้อมูลที่ป้อนลงในโมเดลเพื่อการฝึกหรือปรับปรุงโมเดล คุณมีหน้าที่รับผิดชอบในการตรวจสอบว่าการใช้โมเดลเป็นไปตามข้อจำกัดเกี่ยวกับเนื้อหาของ Google Maps ในข้อกำหนดในการให้บริการของ Google Maps Platform อย่างเต็มรูปแบบ ซึ่งรวมถึงข้อกำหนดเฉพาะบริการ
ข้อกำหนดการระบุแหล่งที่มาสำหรับแหล่งที่มาของ Google Maps
การตอบกลับของเครื่องมือแต่ละรายการจาก Maps Grounding Lite จะมีแหล่งที่มา เมื่อแสดงผลลัพธ์ที่ใช้เครื่องมือที่ Maps Grounding Lite มีให้ คุณต้องระบุแหล่งที่มาของ Google Maps ที่เกี่ยวข้องในลักษณะที่เป็นไปตามข้อกำหนดต่อไปนี้
- แหล่งที่มาของ Google Maps ต้องอยู่ต่อจากเนื้อหาที่สร้างขึ้นซึ่งแหล่งที่มานั้นรองรับทันที เนื้อหาที่สร้างขึ้นนี้เรียกอีกอย่างว่าเอาต์พุตที่มีที่มา
- แหล่งที่มาของ Google Maps ต้องดูได้ภายในการโต้ตอบของผู้ใช้ 1 ครั้ง
แหล่งที่มาของเครื่องมือค้นหาสถานที่
ช่องplacesของเครื่องมือ search_places จะแสดงแหล่งข้อมูลที่สนับสนุนsummary สำหรับ places ระบบจะแสดงผลข้อมูลเมตาต่อไปนี้
place(ชื่อทรัพยากร)idlocationgoogleMapsLinks
คุณต้องสร้างตัวอย่างลิงก์ที่ตรงตามข้อกำหนดต่อไปนี้สำหรับแต่ละสถานที่
- ระบุแหล่งที่มาแต่ละแหล่งเป็น Google Maps โดยทำตามหลักเกณฑ์การระบุแหล่งที่มาของข้อความ Maps Grounding Lite
- ลิงก์ไปยังแหล่งที่มาโดยใช้
places.googleMapsLinks.placeUrlจากการตอบกลับ
กำหนดค่า LLM ให้ใช้เซิร์ฟเวอร์ MCP
หากต้องการใช้ Maps Grounding Lite ก่อนอื่นคุณต้องมีโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud ที่เปิดใช้บริการ API Maps Grounding Lite รวมถึงคีย์ API หรือรหัสไคลเอ็นต์ OAuth จากนั้น คุณจะกำหนดค่า LLM ให้เข้าถึงเซิร์ฟเวอร์ MCP ได้ เซิร์ฟเวอร์ MCP ของ Grounding Lite ใช้การส่งผ่าน HTTP แบบสตรีมได้
เปิดใช้บริการ Maps Grounding Lite ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google
วิธีเปิดใช้ API ในโปรเจ็กต์
- ในคอนโซล Google Cloud ให้เลือกโปรเจ็กต์ที่ต้องการใช้สำหรับ Maps Grounding Lite
- เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ในคอนโซล Google Cloud
- เปิดใช้ Maps Grounding Lite ในไลบรารี API ของคอนโซล Google Cloud
ตรวจสอบสิทธิ์โดยใช้คีย์ API
คุณสามารถใช้คีย์ API ที่มีอยู่กับ Maps Grounding Lite หรือสร้างคีย์ใหม่ก็ได้ ตราบใดที่คุณเปิดใช้บริการ API ของ Maps Grounding Lite ทั้งในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google และคีย์
วิธีตรวจสอบสิทธิ์โดยใช้คีย์ API
- สร้างหรือกำหนดค่าคีย์ API โดยทำตามขั้นตอนในการเริ่มต้นใช้งาน Google Maps Platform
- ส่งคีย์ไปยังเซิร์ฟเวอร์ MCP โดยใช้ส่วนหัว
X-Goog-Api-Keyคุณต้องระบุส่วนหัวนี้เป็นส่วนหัว HTTP ที่กำหนดเองในการกำหนดค่าเครื่องมือ MCP ของ LLM
ตรวจสอบสิทธิ์โดยใช้ OAuth
คุณสามารถตรวจสอบสิทธิ์โดยใช้ OAuth ได้ด้วยการสร้างข้อมูลเข้าสู่ระบบ OAuth และส่งข้อมูลดังกล่าวไปยังโฮสต์ MCP หรือแอปพลิเคชันเซิร์ฟเวอร์ MCP
วิธีตรวจสอบสิทธิ์โดยใช้ OAuth
- ในคอนโซล Google Cloud ให้เลือกโปรเจ็กต์ที่ต้องการใช้สำหรับ Maps Grounding Lite
- ในเมนู API และบริการ ให้เลือกข้อมูลเข้าสู่ระบบ
- ในเมนูด้านบน ให้เลือกสร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
- หากโปรเจ็กต์ไม่มีหน้าจอขอความยินยอมที่กำหนดค่าไว้ ให้คลิกกำหนดค่าหน้าจอขอความยินยอม แล้วทำตามวิธีการบนหน้าจอ
- ในส่วนเมตริก ให้คลิกสร้างไคลเอ็นต์ OAuth
- ในหน้าจอสร้างรหัสไคลเอ็นต์ OAuth ให้เลือกประเภทแอปพลิเคชันและป้อนชื่อรหัสไคลเอ็นต์
- ระบุรายละเอียดเพิ่มเติมที่เกี่ยวข้องกับประเภทแอปพลิเคชันของคุณ เช่น หากคุณกำลังสร้างเว็บแอปพลิเคชัน ให้เพิ่ม URI ที่ได้รับอนุญาตสำหรับคำขอเบราว์เซอร์และเซิร์ฟเวอร์
- เมื่อสร้างไคลเอ็นต์แล้ว ให้บันทึกรหัสไคลเอ็นต์และรหัสลับ
- เมื่อกำหนดค่าโฮสต์ MCP หรือแอปพลิเคชันเซิร์ฟเวอร์ MCP เพื่อเข้าถึง Maps Grounding Lite ให้ส่งรหัสไคลเอ็นต์ OAuth และรหัสลับ คุณต้องขอขอบเขตต่อไปนี้ด้วย:
https://www.googleapis.com/auth/maps-platform.mapstools
ดูข้อมูลเพิ่มเติมได้ที่การใช้ OAuth 2.0 เพื่อเข้าถึง Google APIs
กำหนดค่า LLM ให้เข้าถึงเซิร์ฟเวอร์ Maps Grounding Lite MCP
เมื่อมีโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud ที่เปิดใช้บริการ Maps Grounding Lite API และข้อมูลเข้าสู่ระบบที่ถูกต้อง เช่น คีย์ API หรือรหัสไคลเอ็นต์ OAuth และข้อมูลลับไคลเอ็นต์ คุณสามารถกำหนดค่า LLM ให้เข้าถึงเซิร์ฟเวอร์ MCP ได้โดยทำตามเอกสารประกอบการกำหนดค่า MCP ที่เกี่ยวข้องและใช้ URL ของเซิร์ฟเวอร์ MCP ของ Maps Grounding Lite: https://mapstools.googleapis.com/mcp
ดูข้อมูลเพิ่มเติมได้ที่หัวข้อกำหนดค่า MCP ในแอปพลิเคชัน AI
กำหนดค่า Maps Grounding Lite ด้วย Gemini CLI
ส่วนนี้จะแสดงตัวอย่างวิธีกำหนดค่าเซิร์ฟเวอร์ MCP ของ Maps Grounding Lite โดยใช้ Gemini CLI ดูรายละเอียดเพิ่มเติมได้ที่เซิร์ฟเวอร์ MCP ที่มี Gemini CLI
เมื่อติดตั้ง Gemini CLI แล้ว คุณสามารถใช้คำสั่ง add เพื่อกำหนดค่าเซิร์ฟเวอร์ MCP ของ Maps Grounding Lite ได้ดังนี้
gemini mcp add -s user -t http -H 'X-Goog-Api-Key: API_KEY' maps-grounding-lite-mcp https://mapstools.googleapis.com/mcpหากการกำหนดค่าสำเร็จ คุณจะเห็นการยืนยันว่าได้เพิ่มเซิร์ฟเวอร์ลงในการตั้งค่าผู้ใช้แล้ว
หากต้องการตรวจสอบว่าเซิร์ฟเวอร์ทำงานอย่างถูกต้อง ให้เรียกใช้คำสั่ง
/mcp listดังนี้> /mcp list Configured MCP servers: maps-grounding-lite-mcp - Ready (5 tools) Tools: - compute_routes - lookup_weather - resolve_maps_urls - resolve_names - search_placesเริ่มถาม Maps ด้วย CLI เช่น ลองพูดว่า "แนะนำร้านอาหารใน Mountain View ให้หน่อย" ซึ่งควรเรียกใช้เครื่องมือ search_places ในนามของคุณ
กำหนดค่า Grounding Lite ด้วย Agent Development Kit (ADK)
ส่วนนี้แสดงตัวอย่างวิธีกำหนดค่าเซิร์ฟเวอร์ MCP ของ Grounding Lite โดยใช้ Agent Development Kit (ADK) และ Python, Java หรือ TypeScript
Python
คุณดูการใช้งานตัวอย่างนี้อย่างสมบูรณ์ได้ใน GitHub ในที่เก็บ adk-samples
ขั้นตอนที่ 1: กำหนด Agent ด้วย McpToolset สำหรับ Grounding Lite ของ Google Maps
แก้ไขไฟล์ agent.py แทนที่ YOUR_GOOGLE_MAPS_API_KEY ด้วยคีย์ API จริง
# ./adk_agent_samples/mcp_agent/agent.py import os from google.adk.agents.llm_agent import Agent from google.adk.tools.mcp_tool import McpToolset from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams # Retrieve the API key from an environment variable or directly insert it. GOOGLE_MAPS_API_KEY = os.getenv("GOOGLE_MAPS_API_KEY") if not GOOGLE_MAPS_API_KEY: GOOGLE_MAPS_API_KEY = "YOUR_GOOGLE_MAPS_API_KEY_HERE" if GOOGLE_MAPS_API_KEY == "YOUR_GOOGLE_MAPS_API_KEY_HERE": print("WARNING: GOOGLE_MAPS_API_KEY is not set.") root_agent = Agent( model='gemini-flash-latest', name='travel_planner_agent', description='A helpful assistant for planning travel routes.', tools=[ McpToolset( connection_params=StreamableHTTPConnectionParams( url="https://mapstools.googleapis.com/mcp", headers={ "X-Goog-Api-Key": GOOGLE_MAPS_API_KEY, "Content-Type": "application/json", "Accept": "application/json, text/event-stream" } ) ) ] )
ขั้นตอนที่ 2: ตรวจสอบว่ามี __init__.py อยู่
ตรวจสอบว่าคุณมี __init__.py ในไดเรกทอรีเดียวกับ agent.py ดังนี้
from . import agent
ขั้นตอนที่ 3: เรียกใช้ adk web และโต้ตอบ
- ตั้งค่าตัวแปรสภาพแวดล้อม:
ตั้งค่าคีย์ Google Maps API เป็นตัวแปรสภาพแวดล้อมในเทอร์มินัลโดยทำดังนี้export GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
- เรียกใช้
adk web:
เรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มอินเทอร์เฟซเว็บของ ADKadk web
- โต้ตอบใน UI:
- เลือก
travel_planner_agent - ลองใช้พรอมต์ต่อไปนี้
- "พรุ่งนี้ฉันจะไปซานฟรานซิสโก อากาศเป็นยังไงบ้าง"
- "หาร้านกาแฟใกล้สวนลุมพินี"
- "ขอเส้นทางจาก GooglePlex ไป SFO"
- เลือก
Java
กำหนด Agent ที่เริ่มต้น McpToolset ใน Java
แทนที่ YOUR_GOOGLE_MAPS_API_KEY_HERE ด้วยคีย์ API จริงที่คุณได้รับหากไม่ได้ใช้ตัวแปรสภาพแวดล้อม
package agents; import com.google.adk.agents.LlmAgent; import com.google.adk.runner.InMemoryRunner; import com.google.adk.sessions.SessionKey; import com.google.adk.tools.mcp.McpToolset; import com.google.adk.tools.mcp.StreamableHttpServerParameters; import com.google.genai.types.Content; import com.google.genai.types.Part; import java.util.HashMap; import java.util.Map; public class MapsAgentCreator { public static void main(String[] args) { String googleMapsApiKey = System.getenv("GOOGLE_MAPS_API_KEY"); if (googleMapsApiKey == null || googleMapsApiKey.trim().isEmpty()) { googleMapsApiKey = "YOUR_GOOGLE_MAPS_API_KEY_HERE"; if ("YOUR_GOOGLE_MAPS_API_KEY_HERE".equals(googleMapsApiKey)) { System.out.println("WARNING: GOOGLE_MAPS_API_KEY is not set."); } } Map<String, String> headers = new HashMap<>(); headers.put("X-Goog-Api-Key", googleMapsApiKey); headers.put("Content-Type", "application/json"); headers.put("Accept", "application/json, text/event-stream"); StreamableHttpServerParameters serverParams = StreamableHttpServerParameters.builder("https://mapstools.googleapis.com/mcp") .headers(headers) .build(); try (McpToolset toolset = new McpToolset(serverParams)) { LlmAgent agent = LlmAgent.builder() .model("gemini-flash-latest") .name("travel_planner_agent") .description("A helpful assistant for planning travel routes.") .tools(toolset) .build(); System.out.println("Agent created: " + agent.name()); InMemoryRunner runner = new InMemoryRunner(agent); String userId = "maps-user-" + System.currentTimeMillis(); String sessionId = "maps-session-" + System.currentTimeMillis(); String promptText = "Please give me directions to the nearest pharmacy to Madison Square Garden."; SessionKey sessionKey = runner.sessionService() .createSession(runner.appName(), userId, null, sessionId) .blockingGet() .sessionKey(); System.out.println("Session created: " + sessionId + " for user: " + userId); Content promptContent = Content.fromParts(Part.fromText(promptText)); System.out.println("\nSending prompt: \"" + promptText + "\" to agent...\n"); runner.runAsync(sessionKey, promptContent) .blockingForEach(event -> { System.out.println("Event received: " + event.toJson()); }); } catch (Exception e) { System.err.println("An error occurred: " + e.getMessage()); e.printStackTrace(); } } }
TypeScript
กำหนด Agent ที่เริ่มต้น MCPToolset ใน TypeScript:
import 'dotenv/config'; import {LlmAgent, MCPToolset} from "@google/adk"; const googleMapsApiKey = process.env.GOOGLE_MAPS_API_KEY; if (!googleMapsApiKey) { console.warn("WARNING: GOOGLE_MAPS_API_KEY is not set."); throw new Error( 'GOOGLE_MAPS_API_KEY is not provided, please run "export GOOGLE_MAPS_API_KEY=YOUR_ACTUAL_KEY" to add that.' ); } export const rootAgent = new LlmAgent({ model: "gemini-flash-latest", name: "travel_planner_agent", description: "A helpful assistant for planning travel.", tools: [ new MCPToolset({ type: "SseConnectionParams", url: "https://mapstools.googleapis.com/mcp", headers: { "X-Goog-Api-Key": googleMapsApiKey, "Content-Type": "application/json", "Accept": "application/json, text/event-stream" } }) ], });
การแชร์ความคิดเห็น
หากต้องการแชร์ความคิดเห็นเกี่ยวกับ Maps Grounding Lite ให้ใช้แบบฟอร์มต่อไปนี้