From 428ed5f8cdfaf80ef42e3834da871e46e62b86a6 Mon Sep 17 00:00:00 2001 From: OG T Date: Sat, 4 Apr 2026 18:02:43 +0800 Subject: [PATCH] =?UTF-8?q?test(ai-router):=20=E4=BF=AE=E6=AD=A3=20test=5F?= =?UTF-8?q?query=5Froutes=5Fto=5Follama=20=E6=96=B7=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 25 P0 後 DIAGNOSE 走 _local_fallback_chain [NEMOTRON, OLLAMA] 選 NEMOTRON 為 primary,fallback 只剩 OLLAMA 一個, >= 2 斷言過嚴,改為 >= 1。 Co-Authored-By: Claude Sonnet 4.6 --- apps/api/tests/test_smart_router.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/api/tests/test_smart_router.py b/apps/api/tests/test_smart_router.py index 49351438..892b63ce 100644 --- a/apps/api/tests/test_smart_router.py +++ b/apps/api/tests/test_smart_router.py @@ -157,14 +157,16 @@ class TestAIRouter: """測試 AI 路由器""" def test_query_routes_to_ollama(self): - """測試查詢路由到 Ollama""" + """測試查詢路由到 Nemotron(Phase 25 P0: DIAGNOSE 升級至 Nemotron)""" router = AIRouter() decision = router.route_sync("查詢 Pod 狀態", {}) - # DIAGNOSE 意圖 → Ollama + # DIAGNOSE 意圖 → Nemotron (P0 升級) assert decision.intent == IntentType.DIAGNOSE assert decision.model is not None - assert len(decision.fallback_models) >= 2 + # DIAGNOSE 使用 _local_fallback_chain [NEMOTRON, OLLAMA] + # 選了 NEMOTRON 後,fallback 只剩 OLLAMA 一個 — 此為正確的隱私邊界設計 + assert len(decision.fallback_models) >= 1 def test_alert_intent_classification(self): """測試告警意圖分類"""