diff --git a/api/insurance/admin/ppt_admin_service.py b/api/insurance/admin/ppt_admin_service.py index 6cec844..c738f8b 100644 --- a/api/insurance/admin/ppt_admin_service.py +++ b/api/insurance/admin/ppt_admin_service.py @@ -496,6 +496,28 @@ class PptAdminService: return {"code": 0, "data": {"models": dify_models, "source": "dify"}} return {"code": 0, "data": {"models": self._BUILTIN_MODELS, "source": "builtin"}} + # 模型名前缀 → 品牌名映射(Dify 用 openai_api_compatible 统一接口,需要从模型名推断品牌) + _MODEL_BRAND_MAP = { + "deepseek": "DeepSeek", + "gpt": "OpenAI", + "o1": "OpenAI", + "o3": "OpenAI", + "o4": "OpenAI", + "claude": "Anthropic", + "gemini": "Google", + "qwen": "通义千问", + "glm": "智谱", + "MiniMax": "MiniMax", + "moonshot": "月之暗面", + } + + def _infer_brand(self, model_name: str) -> str: + """从模型名推断品牌名。""" + for prefix, brand in self._MODEL_BRAND_MAP.items(): + if model_name.lower().startswith(prefix.lower()): + return brand + return "其他" + def _fetch_dify_models(self) -> list | None: """从 Dify 数据库直接查询已配置的 LLM 模型列表。""" try: @@ -511,12 +533,11 @@ class PptAdminService: for row in rows: model_name = row[0] provider_name = row[1] - # 从插件标识中提取简短供应商名 - short_provider = provider_name.split("/")[-1] if "/" in provider_name else provider_name + brand = self._infer_brand(model_name) models.append({ - "provider": short_provider, + "provider": brand, "model": model_name, - "label": f"{model_name}", + "label": f"{brand} / {model_name}", }) return models except Exception as e: