제목
🌤️ Gemini 기반 대화형 날씨 에이전트 구축과 Maxim 로깅 활용
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
- 대상자: AI 에이전트 개발자, 대화형 애플리케이션 개발자
- 난이도: 중간 (Python 및 REST API 기초 지식 필요)
핵심 요약
- Gemini AI를 활용한 대화형 날씨 에이전트 구현
- TavilyClient로 실시간 날씨 데이터 수집
- Maxim SDK로 대화 흐름, 지연 시간, 도구 사용 기록
- GeminiGeminiClient로 로깅 레이어 통합
섹션별 세부 요약
1. 환경 설정 및 의존성 설치
- Python 3.8 이상과
google-generativeai
,maxim-py
,tavily-python
,python-dotenv
라이브러리 설치 .env
파일을 통해GEMINI_API_KEY
,MAXIM_API_KEY
,TAVILY_API_KEY
설정- API 키 누락 시
❌
로 경고 표시
2. Maxim 로깅 초기화
Maxim().logger()
로 로거 초기화TraceConfig
를 통해 트레이스 ID 생성 및 관리MaximGeminiClient
로 Gemini API 요청/응답 자동 로깅
3. 날씨 데이터 수집 기능 구현
TavilyClient
로current weather in {location}
검색temperature
,degrees
,°
키워드로 날씨 정보 필터링- 예외 처리를 통해 오류 시 메시지 반환 (
Error: Could not retrieve weather for {location} — {e}
)
4. 대화형 에이전트 클래스 정의
ConversationalAgent
클래스에서gemini_client
,logger
,weather_function
초기화chat()
메서드로 사용자 메시지 처리 및Gemini
모델(gemini-2.0-flash
) 호출use_external_trace
플래그로 자동/수동 트레이스 관리 가능get_history()
로 대화 기록 확인,clear_history()
로 기록 초기화
5. 대화 인터페이스 구현
interactive_chat()
함수로 CLI 기반 대화 테스트exit
,history
,clear
명령어 지원- Maxim 대시보드에서
Tokens used
,Response latency
,Tool call usage
분석 가능
결론
- Maxim SDK로 에이전트의 모든 상호작용 기록하여 성능 모니터링 가능
- TavilyClient와 GeminiGeminiClient 통합으로 모듈화된 아키텍처 구현
weather_function
대체하여 검색, 주식 정보, RAG 파이프라인 등 다양한 도구 연동 가능- 핵심 팁: 자동 로깅 기능 활용 시
use_external_trace=False
설정 권장