Replies: 1 comment
|
补充一条对齐证据:官方 Web UI 的 Models 设置页( 也就是说:Web 端早已支持给自定义服务商起中文名,TUI 侧只是补齐同一个字段的采集。本 PR 的交互与之不同的是「一个问题 + 自动派生路由名」而不是两个独立输入框——如果维护者更希望严格对齐 Web 的两框形态(路由名手输 + 显示名可选),改动也很小,听指示。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
痛点
/provider添加自定义 API 端点时,「输入路由名」只接受小写字母/数字/连字符(PROVIDER_ROUTE_ID = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/)。输入中文直接被拒、重试 3 次后整个向导取消——中文用户想给自己的网关起个中文名(如「予之网关」)无路可走。关键发现:上游早已就绪,缺的只是向导采集
@deepseek-ai/dsh-llm-pi-ai的 provider profile schema 原生支持displayName?: string(注释原文:"Name shown by configuration surfaces; defaults to the route key"),校验仅要求非空、无字符集限制;其listProviders()返回的name即displayName ?? route。而 TUI 的/model两级选择器的 provider 组标签已经用providerInfos[].name ?? provider渲染(src/modelGroups.ts)。实测:手动在
~/.dsh/settings.yaml的llm-pi-ai.providers.<route>下加一行displayName: 中文名,重启后/model组名即显示中文。显示链路零改动,缺的只是/provider向导不询问、不写入这个字段。方案
自定义端点路径把「输入路由名」换成「给这个服务商起个名字(支持中文)」:
displayName写入 profile(/model组标签直接生效);routeFromName确定性派生:my-gateway)→ 原样用作路由名,不写 displayName(行为与现状逐字节一致);My Gateway)→ 取 ASCII slug(my-gateway);予之网关)→ 哈希回退gw-<fnv1a8>;已有完整实现
fork 分支
feat/provider-display-name(见关联 PR):scripts/verify-provider-wizard.mjs60 项检查全过(新增中文名 / 混合名 / 空名重问三场景;既有场景兼容性钉死);pnpm verify:build全部门禁 ALL PASS;与 #602 的关系
注意到 #602(/provider 编辑与删除)在同一个 wizard 文件上有大改动。本实现只动了自定义路径的一个问题与两个纯函数,冲突面很小;可等 #602 合并后 rebase,或其编辑菜单里顺带支持修改 displayName——听维护者安排。
实现已提交:PR #671 — #671 (CodeRabbit 评审 Low risk,两条意见均已闭环)
All reactions