QJAG1024/dsh-model-meta-autofill ↗★ 0
dsh-model-meta-autofill
DSH plugin: auto-fill metadata (context length, output cap, display name, input modalities) for custom-provider models from the Model Metadata Registry (models.dev).
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:QJAG1024/dsh-model-meta-autofill说明文档
阅读完整 README ↗dsh-model-meta-autofill
DSH 插件:为自定义供应商(llm-pi-ai 设置区)里配置的模型自动预填元数据——上下文长度(contextWindow)、输出上限(maxTokens)、显示名(name)与输入模态(input)——数据来源为 models.dev(Model Metadata Registry)。
在「Models」页从自定义网关发现(interrogation)出来的模型、或手工录入的模型,通常只有 id。本插件把目录里已知的元数据填回该模型的配置项,让界面可直接查看、也让上游据此做容量调度;已由你手动设置过的字段一律不被覆盖。
工作原理
- 离线索引:构建时把 models.dev 目录归一化去重后打进包内(
lib/data/models.dev.json),离线立即可用。 - 实时刷新(可选,默认开):启动时(及可选定时)拉取最新目录(models.dev/api.json)并合并到索引之上;每个数据源独立失败隔离,失败不影响其余源与离线索引。
- 设置写入:插件监听
llm-pi-ai设置区的变化(模型被采纳/编辑),对「有缺的模型」生成补丁,通过设置管线的update写入——这就是「自动预填」。- 只填缺失字段,绝不覆盖你设置过的值;
- 只处理存在于你自己设置层的 provider 路由(组合 base 里仅有的 provider 不会被物化进用户文档);
models列表有改动时整表重述(设置合并对数组是整表替换语义,避免部分列表悄悄丢模型);- 写出的文档是幂等的:填完之后没有缺失项,因此不会循环写。
- Host 服务:
ctx.modelMeta向其他插件暴露索引与纯函数助手(lookup / stats / refresh / buildSectionPatch)。
说明:
fillReasoning(推理属性)为保留开关,默认关闭——各供应商对推理模式的 wire 拼写不同,目录数据没有可移植的通用表达,宁可不动。
安装
插件是**宿主侧(host)**插件,需装入运行 dsh web 的 profile(例如 ~/.dsh/profiles/web)。
从 npm 安装(发布版):
dsh plugin --profile web add dsh-model-meta-autofill
或从源码安装(本地构建):
pnpm install # 依赖解析需要 ../deepseek-harness checkout(见「开发」)
pnpm build # 生成 lib/(含打包的 lib/data/*.json)
npm pack # 产出 tarball
dsh plugin --profile web add dsh-model-meta-autofill@
cordis.patch.yml(dsh.bundle.patch)会在安装时自动插入一行配置到 profile 的补丁层:
- insert:
- id: model-meta-autofill
name: 'dsh-model-meta-autofill'
config:
sources: [models.dev]
refreshOnStart: true
refreshIntervalMs: 0
timeoutMs: 15000
autoApply: true
dryRun: false
fillName: true
fillInput: true
fillReasoning: false
重启 dsh web(或对应管理面重载插件)后生效。首次运行时若 llm-pi-ai 已存在带模型的 provider,初始扫描会立即补填一次。
Web 界面操作(插件自带)
插件同时带一个客户端 half(dsh.client 声明,走壳的 /plugins 动态加载协议,零改壳代码),样式沿用设置页的设计语言(720px 栏宽、border-l2 细线卡片、胶囊按钮、--dsw-alias-* 令牌)。重启后,设置页出现「」分区: