피드로 돌아가기
Dev.toBackend
원문 읽기
Google이 Gemini API에 Tool Combinations 기능을 추가해 Maps Grounding과 Places API를 단일 API 호출로 결합 가능하게 함
Gemini Tool Combo: Building a LINE Meetup Helper with Maps Grounding and Places API in a Single API Call
AI 요약
Context
기존 Gemini API는 Google Maps 맥락 정보와 Places API 실시간 데이터를 동시에 활용하려면 두 번의 API 호출이 필요했거나 수동으로 연결해야 했다. Maps Grounding만 사용하면 위치 맥락은 있지만 평점 정보가 AI의 설명에 의존해 정확도가 낮았고, Places API만 사용하면 실제 평점과 리뷰는 얻지만 지도 맥락이 부족했다.
Technical Solution
- Google Maps Grounding과 Places API 함수 선언을 단일 types.Tool 객체에 통합:
types.Tool(google_maps=types.GoogleMaps(), function_declarations=[SEARCH_NEARBY_RESTAURANTS_FN])으로 두 도구를 동시에 사용 - Agentic Loop 구현: generate_content() 호출 → function_call 감지 → Places API 실행 → FunctionResponse 생성 → 히스토리에 추가 → 두 번째 generate_content() 호출로 맵 맥락과 API 데이터 통합
- 세션 메타데이터에서 GPS 좌표 주입: Gemini가 근사 위치로 추측하는 대신 사용자의 정확한 GPS 좌표를 _execute_function()에서 직접 추출하여 Places API 호출 시 전달
- Quick Reply로 사용자 입력 흐름 관리: GPS 위치 수신 후 식당/주유소/주차장 등 카테고리별 빠른 응답 제공
- FunctionResponse 구성: 실행 결과를 Content(role="user") 형태로 히스토리에 추가하여 컨텍스트 순환(Context Circulation) 보장
Impact
응답의 토큰 소비량이 단일 호출 대비 약 1.5~2배 증가 (두 번의 generate_content 호출 필요)
Key Takeaway
LINE Bot 같은 채팅 기반 애플리케이션에서 지도 맥락과 구조화된 외부 API 데이터가 모두 필요할 때, Tool Combinations를 사용하면 "근사 위치 추측" 대신 세션의 정확한 좌표를 주입하고 Agentic Loop를 통해 두 데이터 소스를 동기화하여 신뢰할 수 있는 답변을 생성할 수 있다.
실천 포인트
LINE Bot이나 위치 기반 챗봇을 구축하는 팀에서 Gemini API를 사용할 때, Google Maps 그라운딩과 Places API 함수를 단일 Tool 객체로 구성하고 세션 메타데이터의 GPS 좌표를 직접 주입하면, 사용자의 실제 위치에서 실시간 평점과 리뷰를 포함한 정확한 장소 정보를 한 번의 자연어 질문으로 제공할 수 있다.