From 8fdb119dcfc9f720445b06081193ef0bd6e0f1df Mon Sep 17 00:00:00 2001 From: ViperEkura <3081035982@qq.com> Date: Tue, 24 Mar 2026 16:25:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes.py | 20 +++++++++++++++----- frontend/src/api/index.js | 6 ++++++ frontend/src/components/SettingsPanel.vue | 22 ++++++++++++++++++---- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/backend/routes.py b/backend/routes.py index 44f300f..0407a7e 100644 --- a/backend/routes.py +++ b/backend/routes.py @@ -11,8 +11,10 @@ from . import load_config bp = Blueprint("api", __name__) cfg = load_config() -GLM_API_URL = cfg.get("api_url") -GLM_API_KEY = cfg["api_key"] +API_URL = cfg.get("api_url") +API_KEY = cfg["api_key"] +MODELS = cfg.get("models", []) +DEFAULT_MODEL = cfg.get("default_model", "glm-5") # -- Helpers ---------------------------------------------- @@ -57,6 +59,14 @@ def build_glm_messages(conv): return msgs +# -- Models API ------------------------------------------- + +@bp.route("/api/models", methods=["GET"]) +def list_models(): + """获取可用模型列表""" + return ok(MODELS) + + # -- Conversation CRUD ------------------------------------ @bp.route("/api/conversations", methods=["GET", "POST"]) @@ -68,7 +78,7 @@ def conversation_list(): id=str(uuid.uuid4()), user_id=user.id, title=d.get("title", ""), - model=d.get("model", "glm-5"), + model=d.get("model", DEFAULT_MODEL), system_prompt=d.get("system_prompt", ""), temperature=d.get("temperature", 1.0), max_tokens=d.get("max_tokens", 65536), @@ -183,8 +193,8 @@ def _call_glm(conv, stream=False): if stream: body["stream"] = True return requests.post( - GLM_API_URL, - headers={"Content-Type": "application/json", "Authorization": f"Bearer {GLM_API_KEY}"}, + API_URL, + headers={"Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}"}, json=body, stream=stream, timeout=120, ) diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index 0b2a704..9388149 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -13,6 +13,12 @@ async function request(url, options = {}) { return data } +export const modelApi = { + list() { + return request('/models') + }, +} + export const conversationApi = { list(cursor, limit = 20) { const params = new URLSearchParams() diff --git a/frontend/src/components/SettingsPanel.vue b/frontend/src/components/SettingsPanel.vue index fae4f09..49841ca 100644 --- a/frontend/src/components/SettingsPanel.vue +++ b/frontend/src/components/SettingsPanel.vue @@ -21,7 +21,7 @@