dsh-model-meta-autofill:为 DSH 自定义供应商模型自动补全元数据

前言

在 DSH 的插件化扩展方式中,接入自定义供应商时,模型条目常常只有 id。若缺少上下文长度、输出上限、显示名和输入模态,界面展示和容量判断都会缺少依据。dsh-model-meta-autofill 面向这个场景,把目录里已知的模型元数据补填到 llm-pi-ai 设置区。

这是什么

dsh-model-meta-autofill 是 DSH 插件,用于为 llm-pi-ai 设置区中的自定义供应商模型自动预填 contextWindowmaxTokensnameinput。默认数据来源是 models.dev 的 Model Metadata Registry,也支持通过 sources 合并其他目录源。

仓库地址为 https://github.com/QJAG1024/dsh-model-meta-autofill。资料中的所有者线索为 QJAG1024,未明确声明维护者。许可证为 MIT

数据与匹配

  • 默认从 models.dev Model Metadata Registry 获取目录数据。
  • 构建时打包离线索引,离线可用。
  • 启动时可实时刷新 models.dev/api.json;实时刷新默认开启。
  • 各数据源独立失败隔离,单个源失败不影响其余源与离线索引。
  • 支持 sources 多目录源合并,兼容 models.dev、PublicProviderConf 名称或 http(s) URL。
  • 兼容数字或 K/M 后缀的容量字段写法。
  • 兼容模型 id 的精确、小写、provider/ 前缀剥除、~ 变体等别名。
  • 目录中未出现的新发布或小众模型不会被猜测,只填有目录依据的字段。

写入行为

  • 目标设置区固定为 llm-pi-ai
  • 插件监听 llm-pi-ai 设置区变化,对缺失字段生成补丁。
  • 只填充缺失字段,不覆盖已有设置。
  • 用户已有值始终优先,包括 modelOverrides
  • 只处理存在于用户设置层的 provider 路由;base-only provider 不会被物化进用户文档。
  • models 列表有改动时整表重述,写入幂等。
  • fillReasoning 为保留开关,默认关闭,当前恒为 false

宿主接口与操作入口

插件通过 ctx.modelMeta 暴露宿主接口,包括 lookupstatsrefreshbuildSectionPatch

设置页会提供「模型元数据」分区,支持:

  • 单模型「填充」
  • 「全部覆盖」入口
  • 「显示名称携带厂商名」开关
  • 「刷新」
  • 「获取网关模型」

插件还提供本机回环 HTTP API:

GET /model-meta-autofill/api/status
GET /model-meta-autofill/api/models
POST /model-meta-autofill/api/apply
POST /model-meta-autofill/api/apply-all
POST /model-meta-autofill/api/discover
POST /model-meta-autofill/api/discover/add

「获取网关模型」走网关的 OpenAI 兼容 /models 清单接口;与 llm-pi-aidiscoverModels 是两条独立通路。

安装与启用

插件需要装入运行 dsh web 的 profile,例如 ~/.dsh/profiles/web。运行环境要求 Node >=22.0.0

使用插件命令安装:

dsh plugin --profile web add dsh-model-meta-autofill

从源码安装时,先做本地构建,再安装 tarball:

pnpm install
pnpm build
npm pack
dsh plugin --profile web add dsh-model-meta-autofill@<tarball路径>

安装后,重启 dsh web 或对应管理面重载插件。首次运行时,如果 llm-pi-ai 已存在带模型的 provider,初始扫描会立即补填一次。

典型用法

在设置页操作

重启后,在设置页「模型元数据」分区中可使用:

  • 「填充」:对单个模型执行补填。
  • 「全部覆盖」:设置页列出的批量入口。
  • 「显示名称携带厂商名」:影响填充显示名的写法。
  • 「刷新」:刷新目录数据。
  • 「获取网关模型」:获取网关模型列表并添加。

使用本机回环 API

HTTP 端点运行在本机回环,可直接用 curl 或浏览器 console 调用。可用端点如下:

GET /model-meta-autofill/api/status
GET /model-meta-autofill/api/models
POST /model-meta-autofill/api/apply
POST /model-meta-autofill/api/apply-all
POST /model-meta-autofill/api/discover
POST /model-meta-autofill/api/discover/add

维护目录源

sources 支持多目录源合并,可写入 models.dev、PublicProviderConf 名称或 http(s) URL。

如需 PublicProviderConf 网关拼写兜底:

pnpm gen:data aihubmix

并将 aihubmix 加入 sources

更新默认打包源:

pnpm gen:data
pnpm build

pnpm gen:data 会拉取默认源并规整为 src/data/{source}.jsonpnpm build 会重新打包。

适用场景与注意

适合在 DSH 中使用自定义供应商模型的开发者:当模型条目只有 id,且需要从 models.dev 等目录补充 contextWindowmaxTokensnameinput 时,可以用这个插件减少手工维护。

使用前注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 目标设置区固定为 llm-pi-ai
  • 只填目录中有据可查的字段;目录未出现的新发布或小众模型不会被猜测。
  • 用户已有值优先,包括 modelOverrides
  • fillReasoning 当前恒为 false,不要把它当作可用开关。
  • 不要把插件目录理解为官方应用商店;安装对象以仓库与命令指向的包为准。

相关链接

  • GitHub:https://github.com/QJAG1024/dsh-model-meta-autofill
  • models.dev:https://models.dev/
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜