feat(models): 增加模型显示名重命名 (#614)

* 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
This commit is contained in:
Zhicheng Han
2026-05-11 16:18:13 +02:00
committed by GitHub
parent 7b781b4f42
commit b8be47d8d6
20 changed files with 898 additions and 57 deletions
+2 -2
View File
@@ -419,8 +419,8 @@ jobTriggered: 'Job ausgelost',
previewBadge: 'VORSCHAU',
disabledBadge: 'NICHT VERFÜGBAR',
disabledTooltip: "Dieses Modell ist für Ihr Konto derzeit nicht verfügbar.",
customModelPlaceholder: 'Benutzerdefinierter Modellname',
customModelHint: 'Enter zum Laden',
customModelPlaceholder: 'Nicht gelistete Modell-ID',
customModelHint: 'Für vom Provider unterstützte Modelle, die die API nicht zurückgibt; keine Anzeige-Umbenennung. Enter zum Laden.',
noProviders: 'Keine Anbieter gefunden. Fugen Sie einen benutzerdefinierten Anbieter hinzu, um zu beginnen.',
builtIn: 'Integriert',
customType: 'Benutzerdefiniert',
+13 -2
View File
@@ -547,12 +547,23 @@ export default {
previewBadge: 'PREVIEW',
disabledBadge: 'UNAVAILABLE',
disabledTooltip: "This model is currently unavailable for your account.",
customModelPlaceholder: 'Custom model name',
customModelHint: 'Enter to load',
customModelPlaceholder: 'Unlisted model ID',
customModelHint: 'For provider-supported models not returned by the API; not a display rename. Press Enter to load.',
removeCustomModel: 'Remove this unlisted model',
noProviders: 'No providers found. Add a custom provider to get started.',
models: 'Models',
count: 'models',
more: 'more',
aliasEdit: 'Rename',
aliasTitle: 'Model display name',
aliasTitleFor: 'Display name for {model}',
aliasPlaceholder: 'Leave empty to use original model ID',
aliasHint: 'Display-only alias. Hermes still receives the canonical model ID.',
aliasCanonical: 'Original ID: {model}',
aliasUseOriginal: 'Use original ID',
aliasManage: 'Display names',
aliasManageFor: 'Display names for {provider}',
aliasSaveFailed: 'Failed to save display name',
manageVisibleModels: 'Manage visible models',
manageVisibleModelsFor: 'Manage visible models for {name}',
visibilityHint: 'Only affects the Web UI model picker and Models page. Hermes CLI provider/model config is not rewritten; calls still use canonical model IDs.',
+2 -2
View File
@@ -419,8 +419,8 @@ jobTriggered: 'Job ejecutado',
previewBadge: 'VISTA PREVIA',
disabledBadge: 'NO DISPONIBLE',
disabledTooltip: "Este modelo no está disponible para tu cuenta.",
customModelPlaceholder: 'Nombre del modelo personalizado',
customModelHint: 'Enter para cargar',
customModelPlaceholder: 'ID de modelo no listado',
customModelHint: 'Para modelos compatibles con el proveedor que la API no devuelve; no es un cambio de nombre visible. Enter para cargar.',
noProviders: 'No se encontraron proveedores. Anade un proveedor personalizado para comenzar.',
builtIn: 'Integrado',
customType: 'Personalizado',
+2 -2
View File
@@ -419,8 +419,8 @@ jobTriggered: 'Job declenche',
previewBadge: 'APERÇU',
disabledBadge: 'INDISPONIBLE',
disabledTooltip: "Ce modèle n'est pas disponible pour votre compte.",
customModelPlaceholder: 'Nom du modèle personnalisé',
customModelHint: 'Entrée pour charger',
customModelPlaceholder: 'ID de modèle non listé',
customModelHint: 'Pour les modèles pris en charge par le fournisseur mais non renvoyés par lAPI ; ce nest pas un renommage affiché. Entrée pour charger.',
noProviders: 'Aucun fournisseur trouve. Ajoutez un fournisseur personnalise pour commencer.',
builtIn: 'Integre',
customType: 'Personnalise',
+2 -2
View File
@@ -419,8 +419,8 @@ export default {
previewBadge: 'プレビュー',
disabledBadge: '利用不可',
disabledTooltip: "このモデルは現在のアカウントでは利用できません。",
customModelPlaceholder: 'カスタムモデル名',
customModelHint: 'Enterで読み込み',
customModelPlaceholder: '未掲載のモデル ID',
customModelHint: 'プロバイダーは対応しているが API が返さないモデル用です。表示名の変更ではありません。Enter で読み込み',
noProviders: 'プロバイダーがありません。カスタムプロバイダーを追加して始めましょう。',
builtIn: '組み込み',
customType: 'カスタム',
+2 -2
View File
@@ -419,8 +419,8 @@ export default {
previewBadge: '프리뷰',
disabledBadge: '사용 불가',
disabledTooltip: "이 모델은 현재 계정에서 사용할 수 없습니다.",
customModelPlaceholder: '사용자 지정 모델 이름',
customModelHint: 'Enter로 불러오기',
customModelPlaceholder: '목록에 없는 모델 ID',
customModelHint: '제공자는 지원하지만 API가 반환하지 않는 모델용입니다. 표시 이름 변경이 아닙니다. Enter로 불러옵니다.',
noProviders: 'Provider가 없습니다. 사용자 지정 Provider를 추가하여 시작하세요.',
builtIn: '내장',
customType: '사용자 지정',
+2 -2
View File
@@ -419,8 +419,8 @@ jobTriggered: 'Job acionado',
previewBadge: 'PRÉVIA',
disabledBadge: 'INDISPONÍVEL',
disabledTooltip: "Este modelo não está disponível para sua conta.",
customModelPlaceholder: 'Nome do modelo personalizado',
customModelHint: 'Enter para carregar',
customModelPlaceholder: 'ID de modelo não listado',
customModelHint: 'Para modelos compatíveis com o provedor que a API não retorna; não é uma renomeação de exibição. Enter para carregar.',
noProviders: 'Nenhum provedor encontrado. Adicione um provedor personalizado para comecar.',
builtIn: 'Integrado',
customType: 'Personalizado',
+13 -2
View File
@@ -547,12 +547,23 @@ export default {
previewBadge: '预览',
disabledBadge: '不可用',
disabledTooltip: "此模型当前账号不可用",
customModelPlaceholder: '自定义模型名称',
customModelHint: '按回车加载',
customModelPlaceholder: '未列出的模型 ID',
customModelHint: '仅用于 provider 支持但未返回的模型;不是重命名。按回车加载',
removeCustomModel: '移除这个未列出的模型',
noProviders: '暂无 Provider,添加一个开始吧。',
models: '模型列表',
count: '个模型',
more: '个更多',
aliasEdit: '重命名',
aliasTitle: '模型显示名',
aliasTitleFor: '{model} 的显示名',
aliasPlaceholder: '留空则使用原始模型 ID',
aliasHint: '仅修改 Web UI 显示名,发送给 Hermes 的仍是原始模型 ID。',
aliasCanonical: '原始 ID{model}',
aliasUseOriginal: '恢复原始 ID',
aliasManage: '显示名',
aliasManageFor: '{provider} 的显示名',
aliasSaveFailed: '保存显示名失败',
manageVisibleModels: '管理可见模型',
manageVisibleModelsFor: '管理 {name} 可见模型',
visibilityHint: '仅影响 Web UI 的模型选择器和模型页展示,不会改写 Hermes CLI 的 provider/model 配置。实际调用仍使用原始模型 ID。',