talk 0.1.1

A Rust library for creating controlled LLM agents with behavioral guidelines, tool integration, and multi-step conversation journeys
Documentation
# 실시간 날씨 에이전트 데모

이 예제는 실제 OpenWeatherMap API를 사용하여 날씨 정보를 가져오는 AI 에이전트를 보여줍니다.

## 준비 사항

### 1. OpenWeatherMap API 키 받기

1. https://openweathermap.org/api 방문
2. 무료 계정 생성
3. API 키 받기 (무료 tier는 하루 1,000회 호출 가능)

### 2. OpenAI API 키 받기

1. https://platform.openai.com/ 방문
2. API 키 생성

## 실행 방법

### 환경 변수 설정

```bash
# OpenWeather API 키 설정
export OPENWEATHER_API_KEY=your_openweather_api_key_here

# OpenAI API 키 설정
export OPENAI_API_KEY=your_openai_api_key_here
```

### 예제 실행

```bash
# 실시간 날씨 API 사용
cargo run --example weather_agent_live

# Mock 데이터 사용 (API 키 불필요)
cargo run --example weather_agent
```

## 동작 방식

1. **사용자 입력**: "What's the weather in Seoul?"
2. **가이드라인 매칭**: regex 패턴으로 날씨 질문 감지
3. **도구 실행**: OpenWeatherMap API 호출
4. **LLM 응답**: OpenAI GPT가 날씨 데이터를 자연스러운 문장으로 변환
5. **사용자에게 응답**: "Seoul is currently 15°C with clear skies..."

## 지원되는 질문 패턴

- "What's the weather in [도시]?"
- "How's the weather in [도시]?"
- "Tell me about the weather in [도시]"
- "weather in [도시]" (regex 패턴 매칭)

## 예제 출력

```
🌤️  Live Weather Agent Example
================================

✅ API keys configured
✅ Live weather tool registered
✅ Weather guideline registered

📝 Created session: 01234567-89ab-cdef-0123-456789abcdef

👤 User: What's the weather in Seoul?
   🌐 Fetching weather data for: Seoul
   ✅ Weather data fetched successfully
🤖 Agent: The current weather in Seoul is 15.3°C (59.5°F) with clear sky.
   The humidity is at 45% and there's a light wind at 6.7 mph.

   🔧 Tools used: 1 tool(s)
      - Tool ID: get_weather (took 342ms)
   📊 Confidence: 90.00%
```

## 기술 스택

- **Rust**: 시스템 언어
- **Tokio**: 비동기 런타임
- **reqwest**: HTTP 클라이언트
- **OpenWeatherMap API**: 날씨 데이터
- **LLM**: OpenAI GPT-3.5 또는 Anthropic Claude Sonnet 4.5

## 특징

### ✅ 실제 API 통합
- OpenWeatherMap으로부터 실시간 날씨 데이터
- 섭씨/화씨 온도 변환
- 습도, 풍속 정보

### ✅ 에러 처리
- API 키 검증
- 도시명 오류 처리
- 네트워크 오류 처리
- 타임아웃 처리 (30초)

### ✅ 재시도 로직
- 지수 백오프를 사용한 자동 재시도
- 최대 3회 재시도
- 실패 시 명확한 에러 메시지

### ✅ 로깅
- 상세한 실행 로그
- 도구 실행 시간 측정
- 설명 가능한 AI 응답

## 다음 단계

1. **다른 도시 시도**: 전 세계 어떤 도시든 가능
2. **추가 기능**: 일기 예보, 공기 질, UV 지수 등
3. **다른 도구 추가**: 뉴스, 번역, 계산기 등
4. **대화 여정**: 다단계 대화 흐름 구현

## 문제 해결

### API 키 오류
```
❌ OPENWEATHER_API_KEY not set!
```
→ 환경 변수가 제대로 설정되었는지 확인

### 도시를 찾을 수 없음
```
Weather API returned error: 404 - City 'XYZ' not found
```
→ 올바른 도시명 사용 (영어로)

### 네트워크 오류
```
Failed to fetch weather data: connection timeout
```
→ 인터넷 연결 확인

## 라이센스

MIT OR Apache-2.0