From 4c382f27f2f49d324d59536e0e74c6f4ea0e9aeb Mon Sep 17 00:00:00 2001 From: qixinbo Date: Tue, 17 Mar 2026 16:55:41 +0800 Subject: [PATCH] fix model config --- backend/app/api/llm.py | 9 ----- frontend/src/pages/ModelConfigs.tsx | 53 ++++------------------------- 2 files changed, 7 insertions(+), 55 deletions(-) diff --git a/backend/app/api/llm.py b/backend/app/api/llm.py index ea8661d..039f8a4 100644 --- a/backend/app/api/llm.py +++ b/backend/app/api/llm.py @@ -24,9 +24,6 @@ class LLMConfig(BaseModel): name: Optional[str] = Field(None, description="Display name") provider: str = Field(..., description="Provider name (e.g., openai, azure, anthropic)") model: str = Field(..., description="Model name (e.g., gpt-4, claude-3-opus)") - model_type: Optional[str] = Field(None, description="Model type") - base_model: Optional[str] = Field(None, description="Base model") - protocol_type: Optional[str] = Field(None, description="Protocol type") api_key: Optional[str] = Field(None, description="API Key for the provider") api_base: Optional[str] = Field(None, description="Base URL for the API") extra_headers: Optional[Dict[str, str]] = Field(None, description="Extra headers for the request") @@ -37,9 +34,6 @@ class LLMConfigCreate(BaseModel): name: Optional[str] = None provider: str model: str - model_type: Optional[str] = None - base_model: Optional[str] = None - protocol_type: Optional[str] = None api_key: Optional[str] = None api_base: Optional[str] = None extra_headers: Optional[Dict[str, str]] = None @@ -49,9 +43,6 @@ class LLMConfigUpdate(BaseModel): name: Optional[str] = None provider: Optional[str] = None model: Optional[str] = None - model_type: Optional[str] = None - base_model: Optional[str] = None - protocol_type: Optional[str] = None api_key: Optional[str] = None api_base: Optional[str] = None extra_headers: Optional[Dict[str, str]] = None diff --git a/frontend/src/pages/ModelConfigs.tsx b/frontend/src/pages/ModelConfigs.tsx index e91e211..a80fd7f 100644 --- a/frontend/src/pages/ModelConfigs.tsx +++ b/frontend/src/pages/ModelConfigs.tsx @@ -15,9 +15,6 @@ interface ModelConfig { name?: string; provider: string; model: string; - model_type?: string; - base_model?: string; - protocol_type?: string; api_key?: string; api_base?: string; extra_headers?: Record; @@ -28,9 +25,6 @@ const defaultForm: Omit = { name: "", provider: "openai", model: "", - model_type: "LLM", - base_model: "", - protocol_type: "OpenAI", api_key: "", api_base: "", extra_headers: {}, @@ -71,7 +65,7 @@ export function ModelConfigs() { const value = keyword.trim().toLowerCase(); if (!value) return configs; return configs.filter((item) => - [item.name, item.model, item.provider, item.base_model].filter(Boolean).some((v) => String(v).toLowerCase().includes(value)) + [item.name, item.model, item.provider].filter(Boolean).some((v) => String(v).toLowerCase().includes(value)) ); }, [configs, keyword]); @@ -90,9 +84,6 @@ export function ModelConfigs() { name: item.name || "", provider: item.provider || "openai", model: item.model || "", - model_type: item.model_type || "LLM", - base_model: item.base_model || "", - protocol_type: item.protocol_type || "OpenAI", api_key: item.api_key || "", api_base: item.api_base || "", extra_headers: item.extra_headers || {}, @@ -107,8 +98,8 @@ export function ModelConfigs() { const [isTesting, setIsTesting] = useState(false); const handleTestConnection = async () => { - if (!form.model || !form.provider || !form.api_base) { - setError("请先填写必要信息(供应商、模型ID、API域名)"); + if (!form.model || !form.provider) { + setError("请先填写必要信息(供应商、模型ID)"); return; } setIsTesting(true); @@ -145,7 +136,7 @@ export function ModelConfigs() { const handleSave = async (e?: React.FormEvent) => { if (e) e.preventDefault(); - if (!form.model || !form.provider || !form.api_base) { + if (!form.model || !form.provider) { setError("请填写必填项"); return; } @@ -167,9 +158,6 @@ export function ModelConfigs() { ...form, extra_headers: extraHeaders, name: form.name || form.model, - model_type: form.model_type || "大语言模型", - base_model: form.base_model || form.model, - protocol_type: form.protocol_type || "OpenAI", }; if (editingId) { await api.put(`/api/v1/llm/${editingId}`, payload); @@ -249,7 +237,6 @@ export function ModelConfigs() { 模型名称 供应商 模型标识 - 模型类型 状态 操作 @@ -257,7 +244,7 @@ export function ModelConfigs() { {filteredConfigs.length === 0 ? ( - + 暂无模型数据 @@ -269,7 +256,6 @@ export function ModelConfigs() { {item.provider} {item.model} - {item.model_type || "大语言模型"} handleSetDefault(item)} @@ -354,36 +340,11 @@ export function ModelConfigs() { setForm((p) => ({ ...p, model: e.target.value }))} placeholder="如:gpt-4-turbo" required />
- - + + setForm((p) => ({ ...p, api_base: e.target.value }))} placeholder="如:https://api.openai.com/v1" />
-
-
- - -
-
- -
- - setForm((p) => ({ ...p, api_base: e.target.value }))} placeholder="如:https://api.openai.com/v1" required /> -
-