From b8be47d8d6edb001bce3e79a0bf2b20077be2ada Mon Sep 17 00:00:00 2001 From: Zhicheng Han <43314240+hanzckernel@users.noreply.github.com> Date: Mon, 11 May 2026 16:18:13 +0200 Subject: [PATCH] =?UTF-8?q?feat(models):=20=E5=A2=9E=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=98=BE=E7=A4=BA=E5=90=8D=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=20(#614)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(models): add WUI model display aliases Persist display-only model aliases in Web UI app config, surface them in the model selector/search, and keep canonical model IDs for Hermes calls. * fix(models): improve WUI model alias editing * fix(models): clarify unlisted model picker * fix(models): scope aliases to providers --- packages/client/src/api/hermes/system.ts | 17 +- .../components/hermes/models/ProviderCard.vue | 208 +++++++++++++++++- .../src/components/layout/ModelSelector.vue | 89 +++++++- packages/client/src/i18n/locales/de.ts | 4 +- packages/client/src/i18n/locales/en.ts | 15 +- packages/client/src/i18n/locales/es.ts | 4 +- packages/client/src/i18n/locales/fr.ts | 4 +- packages/client/src/i18n/locales/ja.ts | 4 +- packages/client/src/i18n/locales/ko.ts | 4 +- packages/client/src/i18n/locales/pt.ts | 4 +- packages/client/src/i18n/locales/zh.ts | 15 +- packages/client/src/stores/hermes/app.ts | 120 +++++++++- .../client/src/views/hermes/ModelsView.vue | 4 +- .../server/src/controllers/hermes/models.ts | 114 +++++++++- packages/server/src/routes/hermes/models.ts | 1 + packages/server/src/services/app-config.ts | 4 + .../server/src/services/hermes/plugins.ts | 2 +- tests/client/app-store.test.ts | 173 ++++++++++++++- tests/server/model-alias-controller.test.ts | 130 +++++++++++ .../model-visibility-controller.test.ts | 39 +++- 20 files changed, 898 insertions(+), 57 deletions(-) create mode 100644 tests/server/model-alias-controller.test.ts diff --git a/packages/client/src/api/hermes/system.ts b/packages/client/src/api/hermes/system.ts index 5e2fe0aa..3c927289 100644 --- a/packages/client/src/api/hermes/system.ts +++ b/packages/client/src/api/hermes/system.ts @@ -41,8 +41,8 @@ export interface AvailableModelGroup { available_models?: string[] api_key: string builtin?: boolean - /** 可选:模型 ID -> 元数据(preview/disabled)。目前仅 Copilot 提供。 */ - model_meta?: Record + /** 可选:模型 ID -> 元数据(preview/disabled/alias)。alias 仅用于 Web UI 展示。 */ + model_meta?: Record } export interface AvailableModelsResponse { @@ -50,6 +50,8 @@ export interface AvailableModelsResponse { default_provider: string groups: AvailableModelGroup[] allProviders: AvailableModelGroup[] + /** Web UI-only display aliases keyed by provider -> canonical model ID. */ + model_aliases?: Record> model_visibility?: ModelVisibility } @@ -90,6 +92,17 @@ export async function updateDefaultModel(data: { }) } +export async function updateModelAlias(data: { + provider: string + model: string + alias: string +}): Promise { + await request('/api/hermes/model-alias', { + method: 'PUT', + body: JSON.stringify(data), + }) +} + export async function addCustomProvider(data: CustomProvider): Promise { await request('/api/hermes/config/providers', { method: 'POST', diff --git a/packages/client/src/components/hermes/models/ProviderCard.vue b/packages/client/src/components/hermes/models/ProviderCard.vue index 7e20ddd1..3db43aed 100644 --- a/packages/client/src/components/hermes/models/ProviderCard.vue +++ b/packages/client/src/components/hermes/models/ProviderCard.vue @@ -1,6 +1,6 @@