diff --git a/apps/api/models.json b/apps/api/models.json index ebc953181..a4251abd7 100644 --- a/apps/api/models.json +++ b/apps/api/models.json @@ -119,11 +119,11 @@ "temperature": 0.0, "max_tokens": 1024 }, - "timeout_seconds": 60, + "timeout_seconds": 30, "cost": { "per_1k_tokens": 0, "currency": "USD", - "notes": "Free tier (2026-03-29)" + "notes": "Free tier (2026-03-29) - timeout 30s,失敗後轉 Gemini" }, "auth": { "type": "header", diff --git a/apps/api/src/services/nvidia_provider.py b/apps/api/src/services/nvidia_provider.py index c820849b6..0de045605 100644 --- a/apps/api/src/services/nvidia_provider.py +++ b/apps/api/src/services/nvidia_provider.py @@ -117,8 +117,9 @@ NVIDIA_API_URL = "https://integrate.api.nvidia.com/v1/chat/completions" # 預設模型 (2026-03-31 ogt: 恢復為 nemotron-mini-4b-instruct) NVIDIA_DEFAULT_MODEL = "nvidia/nemotron-mini-4b-instruct" -# 請求超時 (秒) - Nemotron 延遲 11-45s -NVIDIA_TIMEOUT = 60.0 +# 請求超時 (秒) - 2026-04-01 ogt: 30s 讓 Nemo 有機會回應,失敗後轉 Gemini +# 原 60s 太長;15s 太短 (Nemo 有時需 20-40s);30s 是實用平衡點 +NVIDIA_TIMEOUT = 30.0 # 重試次數 MAX_RETRIES = 2 diff --git a/k8s/awoooi-prod/04-configmap.yaml b/k8s/awoooi-prod/04-configmap.yaml index dc5631be1..1d7b9909e 100644 --- a/k8s/awoooi-prod/04-configmap.yaml +++ b/k8s/awoooi-prod/04-configmap.yaml @@ -35,9 +35,9 @@ data: CORS_ORIGINS: '["https://awoooi.wooo.work","http://localhost:3000","http://localhost:3001"]' # AI 配置 (JSON array 格式 for pydantic-settings) - # 2026-04-01 ogt: Gemini 優先 (快速,~100ms) → Ollama(本地備援) → NVIDIA(60s timeout,降為最後) - # NVIDIA 降序原因: free tier 固定 60s timeout,阻塞整條 fallback 鏈 - AI_FALLBACK_ORDER: '["gemini","ollama","nvidia","claude"]' + # 2026-04-01 ogt: NVIDIA 第一 (免費) → Gemini(備援 ~100ms) → Ollama(本地) → Claude + # NVIDIA timeout 降為 15s,快速失敗後轉 Gemini,避免免費 tier 阻塞整條鏈 + AI_FALLBACK_ORDER: '["nvidia","gemini","ollama","claude"]' AI_CACHE_TTL: "3600" # ============================================================================ @@ -45,7 +45,7 @@ data: # 2026-03-31 ogt: 統帥需求 - @tsenyangbot 對話 + Incident 雙軌 # ============================================================================ ENABLE_NEMOTRON_COLLABORATION: "true" - NEMOTRON_TIMEOUT_SECONDS: "45" + NEMOTRON_TIMEOUT_SECONDS: "30" NEMOTRON_ASYNC_UPDATE: "true" # ============================================================================