feat(ai): ADR-036 NVIDIA Nemotron Tool Calling 整合

Phase 20 - 提升 Tool Calling 精準度 50% → 83.3%

新增:
- src/models/nvidia.py: Pydantic Schema
- src/services/nvidia_provider.py: NvidiaProvider 類別
- tests/test_nvidia_provider.py: 15 項單元測試 (全部通過)

修改:
- ai_router.py: AIProvider.NVIDIA + route_tool_calling()
- ai_rate_limiter.py: NVIDIA 限制 (5 RPM, 100/day)
- models.json: NVIDIA 配置
- cd.yaml: Secrets 注入 NVIDIA_API_KEY

路由策略:
- Tool Calling: Nemotron → Gemini → Claude
- 一般對話: Ollama → Gemini → Claude (不變)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-03-29 00:00:08 +08:00
parent dc7daf5d81
commit b77e151387
11 changed files with 1083 additions and 16 deletions

View File

@@ -60,15 +60,36 @@ Elapsed: 28.71ms (< 50ms 目標)
Method: httpx_native
```
## 五主機架構
## 五主機架構 (2026-03-28 K-HA 更新)
| 主機 | IP | 角色 | 服務 |
|-----|-----|------|------|
| DevOps | 192.168.0.110 | CI/CD | Harbor, GH Runner |
| Security | 192.168.0.112 | 安全掃描 | Kali Scanner |
| K3s Master | 192.168.0.120 | 容器編排 | K3s API Server |
| K3s Worker | 192.168.0.121 | 工作負載 | App Pods |
| AI+Web | 192.168.0.188 | AI/DB/Web | Ollama, PostgreSQL, Redis, SignOz |
| DevOps | 192.168.0.110 | CI/CD + 監控 | Harbor:5000, GH Runner, Sentry:9000, Langfuse:3100 |
| Security | 192.168.0.112 | 安全掃描 | Kali Scanner:8080 |
| K3s Server #1 | 192.168.0.120 | **Control-Plane MASTER** | keepalived (priority=101) |
| K3s Server #2 | 192.168.0.121 | **Control-Plane BACKUP** | keepalived (priority=100) |
| **VIP** | **192.168.0.125** | **HA Endpoint** | **K3s API:6443 + NodePort (32334/32335)** |
| AI+Web | 192.168.0.188 | AI/DB/Web | Ollama:11434, OpenClaw:8089, **PostgreSQL:5432 (K3s Datastore)**, Redis:6380, SignOz:3301 |
## K3s 高可用架構 (ADR-033)
```
VIP 192.168.0.125 (keepalived)
┌──────────────┼──────────────┐
▼ ▼ ▼
mon(120) mon1(121) PostgreSQL(188)
K3s MASTER K3s BACKUP K3s Datastore
priority=101 priority=100 (Kine protocol)
```
### 關鍵變更 (2026-03-28)
- ✅ 雙 Control-Plane (120+121)
- ✅ 外接 PostgreSQL Datastore (188:5432)
- ✅ VIP 192.168.0.125 (keepalived VRRP)
- ✅ CI/CD kubeconfig 指向 VIP
- ✅ 故障轉移 < 3 秒
## SignOz 整合架構
@@ -93,8 +114,9 @@ Method: httpx_native
└─────────────────────────────────────────────┘
```
## AI Fallback 策略 (ADR-006)
## AI Fallback 策略 (ADR-006 v1.3 + ADR-036)
### 一般對話任務
```
Ollama (local) → Gemini (cloud) → Claude (cloud) → mock_fallback
↓ ↓ ↓ ↓
@@ -102,6 +124,24 @@ Ollama (local) → Gemini (cloud) → Claude (cloud) → mock_fallback
188:11434 API Key API Key 無 LLM
```
### Tool Calling 任務 (ADR-036 - 待批准)
```
Nemotron (cloud) → Gemini (cloud) → Claude (cloud) → 拒絕執行
↓ ↓ ↓
免費 tier $0.001/1K $0.003/1K
精準度 83% API Key API Key
延遲 11-45s
```
### Provider 對照表
| Provider | 用途 | 延遲 | 精準度 | 成本 |
|----------|------|------|--------|------|
| **Ollama** | 即時對話、簡單查詢 | < 5s | 中 | $0 |
| **Nemotron** | Tool Calling、K8s 操作 | 11-45s | 高 (83%) | 免費 tier |
| **Gemini** | 通用備援 | 2-5s | 中高 | 低 |
| **Claude** | 複雜推理、CRITICAL | 2-5s | 最高 | 高 |
## Phase 7: 視覺主權組件
### 已完成組件