From 6e3a7fca20907eb6cd548204433a2a7408e55ad5 Mon Sep 17 00:00:00 2001 From: OG T Date: Thu, 26 Mar 2026 18:16:45 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20ADR-006=20v1.2=20Rate=20Limiter=20+=20L?= =?UTF-8?q?OGBOOK=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ADR-006: 新增 Rate Limiter 實作章節 (v1.2) - LOGBOOK: 記錄 Gemini 切換 + Rate Limiter 上線 Co-Authored-By: Claude Opus 4.5 --- docs/LOGBOOK.md | 49 ++++++++++++++++++++---- docs/adr/ADR-006-ai-fallback-strategy.md | 48 +++++++++++++++++++++++ 2 files changed, 89 insertions(+), 8 deletions(-) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 1daacda30..5a827cf8d 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -5,19 +5,38 @@ --- -## 📍 當前狀態 (2026-03-26 18:30 台北) +## 📍 當前狀態 (2026-03-26 23:45 台北) | 項目 | 狀態 | |------|------| -| **當前 Phase** | **Phase 18 失敗自動修復閉環** | +| **當前 Phase** | **Phase 13.2 #84 RAG Tool** | | **Day** | Day 9 | -| **Phase 17** | ✅ **UI/UX 修復 (ApprovalModal + 導航)** | -| **Phase 18** | 📋 **失敗閉環架構設計 - 待統帥批准** | -| **Phase 13.3** | ✅ **#85-88 全部完成** | -| **Phase 14.2** | ✅ **dependency-cruiser + CI 整合** | +| **AI Fallback** | ✅ **Gemini 優先 (Rate Limiter 保護)** | +| **Phase 13.2** | 🔄 **#84 RAG Tool 進行中** | | **Phase 16** | 🔄 R1.3 驗證期至 2026-03-27 16:04 | -| **架構審查** | ✅ **Phase 8/10/11/12 + ADR-022/023/024** | -| **Skills** | ✅ **Skill 08 + 09 新增** | +| **架構審查** | ✅ **ADR-025 CI/CD AI 整合** | +| **Skills** | ✅ **Skill 07 v1.3 更新** | + +### ✅ 2026-03-26 Gemini API 切換 + Rate Limiter (Day 9 晚間 23:45) + +**統帥決策**: 臨時切換 Gemini API 排除 Ollama CPU 推論問題 + +**實作內容**: +- `ai_rate_limiter.py`: RPM/Daily/Token 三層閥值 +- `openclaw.py`: 整合 rate limit,超限自動降級 Ollama +- `health.py`: `/health/ai-usage` 監控端點 +- Lint 錯誤全面修復 (32 errors → 0) + +**閥值設定**: +| 類型 | Gemini | Claude | +|------|--------|--------| +| RPM | 10/min | 5/min | +| Daily | 500 | 200 | +| Tokens | 100K | 50K | + +**Commits**: bf32c4b, e26ea52, 3015349 + +**預計切回 Ollama**: 2026-03-27 ### 📋 2026-03-26 Phase 18 失敗自動修復閉環 (Day 9 晚間 18:30) @@ -55,6 +74,20 @@ Trust Engine 風險評估 **預估**: 5 天 (Phase 18.1-18.6) **狀態**: ✅ **統帥批准,開始實作** +### 📅 2026-03-26 首席架構師審查排程 (Day 9 晚間 20:00) + +**審查時間表已建立**: +| 時間點 | 審查項目 | +|--------|---------| +| 2026-03-27 09:00 | Phase 16 R1 驗證結果 | +| 2026-03-27 16:04 | Phase 16 R1→R2 Gate | +| 每週五 16:00 | 週度架構審查 | + +**文檔更新**: +- ✅ `ADR-025-cicd-ai-integration.md` - Phase 13.1 架構決策 +- ✅ `Skill 07 v1.3` - Grafana MCP + SignOz query_logs +- ✅ `project_arch_review_schedule.md` - 審查排程 Memory + ### 🚀 2026-03-26 Phase 18.1 AuditLog 擴展 (Day 9 晚間 19:00) **開始實作 P0 任務** diff --git a/docs/adr/ADR-006-ai-fallback-strategy.md b/docs/adr/ADR-006-ai-fallback-strategy.md index d54499e93..34918da84 100644 --- a/docs/adr/ADR-006-ai-fallback-strategy.md +++ b/docs/adr/ADR-006-ai-fallback-strategy.md @@ -358,12 +358,60 @@ apps/api/src/services/ --- +## 7. Rate Limiter 實作 (v1.2) + +### 背景 + +2026-03-26 統帥決策:Ollama CPU 推論問題導致 mock_fallback,臨時切換 Gemini 需成本保護。 + +### 實作 + +```python +# apps/api/src/services/ai_rate_limiter.py + +RATE_LIMITS = { + "gemini": { + "rpm": 10, # 每分鐘 + "daily_requests": 500, # 每日 + "daily_tokens": 100_000, + }, + "claude": { + "rpm": 5, + "daily_requests": 200, + "daily_tokens": 50_000, + }, +} +``` + +### 整合位置 + +```python +# apps/api/src/services/openclaw.py + +for provider in settings.AI_FALLBACK_ORDER: + if provider in ("gemini", "claude"): + allowed, reason = await rate_limiter.check_and_increment(provider) + if not allowed: + continue # 自動降級到下一個 provider +``` + +### 監控端點 + +``` +GET /api/v1/health/ai-usage +``` + +返回各 provider 的 RPM/Daily/Token 用量統計。 + +--- + ## 變更記錄 | 日期 | 版本 | 變更 | 作者 | |------|------|------|------| | 2026-03-20 | v1.0 | 初版建立 | CTO | | 2026-03-26 | v1.1 | 新增智能路由整合章節 (Phase 13.3) | 首席架構師 | +| 2026-03-26 | v1.2 | 新增 Rate Limiter 實作章節 | 首席架構師 | ---