File size: 5,674 Bytes
7e828dc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# Pydantic AI 整合說明文件
## 📋 概述
本次更新整合了 Pydantic AI 框架到 LineBot 專案中,主要解決商品查詢準確性問題,特別是像 "是否有推薦貓砂?" 這類自然語言查詢。
## 🎯 解決的問題
### 原有問題
- 用戶詢問 "是否有推薦貓砂?" 時,系統常常回答沒有相關資訊
- 商品查詢意圖識別不準確
- 缺乏智能推薦功能
### 解決方案
- 整合 Pydantic AI 框架,提供更精確的意圖識別
- 移植 inventory 專案的查詢功能,增強商品搜尋能力
- 新增智能商品推薦系統
## 🔧 技術架構變更
### 新增組件
1. **Pydantic AI 服務** (`backend/services/pydantic_ai_service.py`)
- 商品查詢意圖分析
- 智能推薦系統
- 結構化輸出驗證
2. **增強商品服務** (`backend/services/enhanced_product_service.py`)
- 進階商品搜尋
- 商品推薦功能
- 庫存狀態分析
3. **新增依賴**
- `pydantic-ai[groq]`: Pydantic AI 框架
### 修改組件
1. **訊息路由器** (`backend/services/message_router.py`)
- 新增商品查詢路由邏輯
- 整合 Pydantic AI 意圖分析
- 保留原有 `/chat` 和 `/search` 功能
2. **主應用** (`backend/main.py`)
- 新增 `/product-query` API 端點
## 🚀 功能特性
### 1. 智能意圖識別
```python
# 自動識別商品查詢意圖
"是否有推薦貓砂?" → 商品推薦查詢 (信心度: 0.8)
"有什麼狗糧推薦?" → 商品推薦查詢 (信心度: 0.9)
"查詢iPhone庫存" → 庫存查詢 (信心度: 0.7)
```
### 2. 智能商品推薦
- 基於關鍵字的商品匹配
- 優先顯示有庫存的商品
- 提供推薦原因說明
### 3. 增強的庫存資訊
- 實時庫存狀態顯示
- 庫存警告提醒
- 緊急程度分級
## 📱 使用指南
### LINE Bot 使用方式
#### 1. 指令模式(原有功能保留)
```
/chat 今天天氣如何? # 聊天模式
/search iPhone 15 Pro # 商品查詢模式
/help # 顯示幫助
```
#### 2. 智能模式(新增功能)
直接輸入訊息,系統自動判斷意圖:
```
是否有推薦貓砂? # → 智能商品推薦
有什麼狗糧推薦? # → 智能商品推薦
查詢寵物用品庫存 # → 庫存查詢
iPhone 還有庫存嗎? # → 庫存查詢
你好! # → 聊天模式
```
### API 端點
#### 1. 原有端點(保留)
- `POST /chat`: 直接聊天
- `POST /search`: 直接搜尋
- `POST /route`: 智能路由
#### 2. 新增端點
- `POST /product-query`: 專門的商品查詢
### API 使用範例
```bash
# 商品查詢 API
curl -X POST "http://localhost:7860/product-query" \
-H "Content-Type: application/json" \
-d '{
"message": "是否有推薦貓砂?",
"user_id": "test_user"
}'
# 智能路由 API
curl -X POST "http://localhost:7860/route" \
-H "Content-Type: application/json" \
-d '{
"message": "有什麼狗糧推薦?",
"user_id": "test_user"
}'
```
## ⚙️ 配置要求
### 環境變數
```env
# 必需
GROQ_API_KEY=your_groq_api_key_here
DB_HOST=your_database_host
DB_NAME=your_database_name
DB_USER=your_database_user
DB_PASSWORD=your_database_password
# LINE Bot (如果使用)
LINE_CHANNEL_ACCESS_TOKEN=your_line_token
LINE_CHANNEL_SECRET=your_line_secret
```
### 依賴安裝
```bash
pip install -r requirements.txt
```
## 🧪 測試
### 運行測試腳本
```bash
python test_pydantic_ai_integration.py
```
### 測試案例
1. 商品推薦查詢
2. 庫存查詢
3. 意圖分析準確性
4. 路由統計
## 📊 路由統計
系統會追蹤各種路由模式的使用情況:
- 💬 聊天模式
- 🔍 搜尋模式
- 🛍️ 商品查詢(新增)
- 🧠 智能路由
- ❓ 幫助模式
- ❌ 錯誤次數
查看統計:輸入 `統計` 或 `stats`
## 🔄 路由邏輯
```
用戶訊息
↓
是否有前綴?
├─ /chat → 聊天模式
├─ /search → 搜尋模式
├─ /help → 幫助模式
└─ 無前綴 → 智能路由
↓
Pydantic AI 意圖分析
↓
商品查詢?(信心度>0.6)
├─ 是 → 商品查詢模式
└─ 否 → 關鍵字分析
↓
搜尋關鍵字?
├─ 是 → 搜尋模式
└─ 否 → 聊天模式
```
## 🚨 注意事項
### LINE 群組使用
- **保留前綴設計**:在群組中使用 `/chat` 和 `/search` 前綴,避免所有訊息都觸發 AI
- **智能路由**:只在私聊或明確需要時使用無前綴訊息
### 效能考量
- Pydantic AI 查詢會消耗 Groq API token
- 建議在生產環境中監控 API 使用量
- 可以調整意圖識別的信心度閾值
### 錯誤處理
- 當 Pydantic AI 不可用時,會自動降級到原有的搜尋功能
- 完整的錯誤日誌記錄
## 📈 預期效果
### 查詢準確性提升
- **之前**:「是否有推薦貓砂?」→ 沒有相關資訊
- **現在**:「是否有推薦貓砂?」→ 顯示貓砂商品列表,包含庫存狀態
### 用戶體驗改善
- 更自然的對話方式
- 智能推薦功能
- 詳細的庫存資訊
### 系統可維護性
- 模組化設計
- 完整的測試覆蓋
- 清晰的錯誤處理
## 🔮 未來擴展
1. **多語言支援**:擴展到英文查詢
2. **個人化推薦**:基於用戶歷史的推薦
3. **語音查詢**:整合語音識別
4. **圖片查詢**:支援商品圖片搜尋
---
**版本**:v1.0
**更新日期**:2025-01-12
**作者**:Augment Agent
|