Skip to content

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

Merged
EKKOLearnAI merged 6 commits into
EKKOLearnAI:mainfrom
hanzckernel:feat/model-alias-display
May 11, 2026
Merged

feat(models): 增加模型显示名重命名#614
EKKOLearnAI merged 6 commits into
EKKOLearnAI:mainfrom
hanzckernel:feat/model-alias-display

Conversation

@hanzckernel
Copy link
Copy Markdown
Collaborator

@hanzckernel hanzckernel commented May 10, 2026

为什么改

模型选择器展示的是 provider 返回的真实模型 ID。这个 ID 适合调用层,但日常识别不够友好;如果显示名、未列出的模型 ID、真实调用 ID 混在一起,用户也很难判断点选后实际调用哪个模型。

这个 PR 增加一个只影响界面展示的显示名层:可以把 deepseek-v4-flash 显示成 便宜,但切换模型和保存默认模型时仍然使用真实 provider + model ID。截图里 test 这类输入不是重命名功能,而是既有的“未列出的模型 ID”入口;这次把文案改清楚,并允许移除误加条目。

范围

固定边界:

  • 显示名按 (provider, model) 保存,只作用于界面侧 app config。
  • 选择模型、保存默认模型、发送到后端调用层时仍使用 provider + 真实模型 ID。
  • 有显示名时同时保留真实模型 ID 作为次级文本,避免无法追溯。
  • “未列出的模型 ID”只用于 provider 支持但发现接口没有返回的模型。

明确不包含:

  • 不修改 Hermes CLI 的模型命名规则。
  • 不改 config.yaml 里的 provider/model 真实 ID。
  • 不创建 provider 侧的新模型。
  • 不把显示名当作真实模型 ID 发送。

改动

  • 新增 modelAliases,按 provider/model 保存界面专用显示名。
  • 新增 PUT /api/hermes/model-alias,支持保存和清空显示名。
  • /api/hermes/available-models 返回 model_aliases,并在模型 metadata 附带 alias。
  • Chat 模型选择器显示 alias + 原始 ID,但不再在每一行露出“重命名”按钮文字。
  • Models 页 provider card 使用同一份 alias 状态,并提供 Display names 管理入口。
  • Provider card 的可点击 model chip 不再显示 Rename/重命名 文本。
  • Custom model name/自定义模型名称 改为 Unlisted model ID/未列出的模型 ID,并同步其它 locale 的对应文案,说明它不是重命名。
  • 误加的未列出模型(例如 test)现在可以从 picker 里移除;如果正在使用,会回退到同 provider 的已列出模型。
  • 修复 provider 作用域问题:相同 model ID 出现在不同 provider 时,某个 provider 的 alias 不会串到另一个 provider。
  • 页面重新加载后,如果当前默认模型是未列出的 ID,会重新作为可移除条目显示,避免用户被困在不可移除状态。

验证

  • 独立代码复审:通过;复审覆盖 provider 作用域、未列出模型删除/回退、locale 文案和真实模型 ID 边界。
  • npm test -- --run tests/client/app-store.test.ts tests/server/model-alias-controller.test.ts:通过,12 tests
  • npx vue-tsc -b:通过
  • npx tsc --noEmit -p packages/server/tsconfig.json:通过
  • npm run build:通过

备注

“未列出的模型 ID”入口不是本 PR 新增;它原本用于手动加载 provider 支持但列表没返回的模型。之前文案像“自定义模型名称”,容易被误解成显示名功能,所以这次一起收敛文案和删除能力。

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.
@hanzckernel hanzckernel changed the title feat(models): 增加 WUI-only 模型显示名重命名 feat(models): 增加模型显示名重命名 May 10, 2026
@EKKOLearnAI EKKOLearnAI merged commit b8be47d into EKKOLearnAI:main May 11, 2026
1 check passed
@hanzckernel hanzckernel deleted the feat/model-alias-display branch May 11, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants