diff --git a/apps/api/src/services/ai_router.py b/apps/api/src/services/ai_router.py index 3c8b9db5..0e4dea2d 100644 --- a/apps/api/src/services/ai_router.py +++ b/apps/api/src/services/ai_router.py @@ -180,11 +180,12 @@ class AIRouter: } # 完整 Fallback 鏈 (Provider, Model) - # 2026-03-29 ogt: NVIDIA 不在一般 Fallback 鏈 (僅用於 Tool Calling) + # 2026-03-30 ogt: NVIDIA 成為首選仲裁,加入 Fallback 鏈首位 self._full_fallback_chain: list[tuple[AIProvider, str]] = [ - (AIProvider.OLLAMA, self._ollama_default), + (AIProvider.NVIDIA, self._nvidia_default), (AIProvider.GEMINI, self._gemini_default), (AIProvider.CLAUDE, self._claude_default), + (AIProvider.OLLAMA, self._ollama_default), ] # Tool Calling 專用 Fallback 鏈 (ADR-036) @@ -351,12 +352,12 @@ class AIRouter: return provider, model, reason # ======================================================================= - # 規則 4: 複雜度 4-5 或 HIGH 風險 → Gemini + # 規則 4: 複雜度 4-5 或 HIGH 風險 → Nvidia Nemotron # ======================================================================= if score >= 4 or risk == RiskLevel.HIGH: - provider = AIProvider.GEMINI - model = self._gemini_default - reason = f"複雜度={score}/5, 風險={risk.value} → Gemini (fallback Claude)" + provider = AIProvider.NVIDIA + model = self._nvidia_default + reason = f"複雜度={score}/5, 風險={risk.value} → Nvidia (fallback Gemini)" return provider, model, reason # ======================================================================= @@ -556,8 +557,8 @@ class AIRouter: { "rule": 4, "condition": "complexity >= 4 OR HIGH risk", - "provider": "gemini", - "reason": "高複雜度需要雲端能力", + "provider": "nvidia", + "reason": "高複雜度需要 Nvidia Nemotron 強大推理能力", }, { "rule": 5,