feat(ai-router): DIAGNOSE intent override 升級至 Nemotron (P0)
This commit is contained in:
@@ -260,9 +260,9 @@ class AIRouter:
|
||||
IntentType.RESTART: None, # 依複雜度
|
||||
IntentType.SCALE: None, # 依複雜度
|
||||
IntentType.CONFIG: None, # 依複雜度 (但 HIGH 會升級)
|
||||
# 2026-04-04 ogt: Phase 25 P0 — DIAGNOSE 改為 NEMOTRON (NIM 188)
|
||||
# 原因: 零費用本地 NIM + 高能力; 搭配 _local_fallback_chain 保證不觸碰雲端
|
||||
IntentType.DIAGNOSE: AIProviderEnum.NEMOTRON, # 診斷優先 NIM 本地 (隱私)
|
||||
# P0 2026-04-04 Claude Code: DIAGNOSE 升級至 Nemotron(高能力雲端)
|
||||
# 注意: FORCE_LOCAL 情境由 require_local=True + privacy 過濾保護,Nemotron 會被正確跳過
|
||||
IntentType.DIAGNOSE: AIProviderEnum.NEMOTRON,
|
||||
# 輔助意圖
|
||||
IntentType.DELETE: AIProviderEnum.CLAUDE, # CRITICAL → 強制 Claude
|
||||
IntentType.ROLLBACK: None, # 依複雜度
|
||||
|
||||
@@ -136,3 +136,18 @@ class TestLocalFallbackChain:
|
||||
|
||||
assert result.success is False
|
||||
assert result.error == "local_providers_unavailable"
|
||||
|
||||
|
||||
class TestDiagnoseIntentOverride:
|
||||
"""DIAGNOSE intent 應優先路由至 Nemotron(非 FORCE_LOCAL 情境)"""
|
||||
|
||||
def test_diagnose_override_is_nemotron(self):
|
||||
"""_intent_provider_overrides[DIAGNOSE] 應為 NEMOTRON"""
|
||||
from src.services.ai_router import AIRouter, AIProviderEnum
|
||||
from src.services.intent_classifier import IntentType
|
||||
|
||||
router = AIRouter()
|
||||
override = router._intent_provider_overrides.get(IntentType.DIAGNOSE)
|
||||
assert override == AIProviderEnum.NEMOTRON, (
|
||||
f"DIAGNOSE 應路由至 NEMOTRON,實際為 {override}"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user