diff --git a/apps/api/src/core/config.py b/apps/api/src/core/config.py index 1a8f18af..dc73049b 100644 --- a/apps/api/src/core/config.py +++ b/apps/api/src/core/config.py @@ -214,7 +214,26 @@ class Settings(BaseSettings): @field_validator("AI_FALLBACK_ORDER", mode="before") @classmethod def parse_ai_fallback(cls, v: str | list[str]) -> list[str]: + """ + 解析 AI_FALLBACK_ORDER,支援三種格式: + 1. JSON: '["gemini","ollama","claude"]' + 2. CSV: 'gemini,ollama,claude' + 3. List: ["gemini", "ollama", "claude"] + + 2026-03-27 修復: ConfigMap 用 JSON 格式,原本只支援 CSV + """ + import json + if isinstance(v, str): + v = v.strip() + # 嘗試 JSON 解析 (ConfigMap 格式) + if v.startswith("["): + try: + parsed = json.loads(v) + return [p.strip().lower() for p in parsed] + except json.JSONDecodeError: + pass # 降級到 CSV 解析 + # CSV 格式 return [provider.strip().lower() for provider in v.split(",")] return [p.lower() for p in v]