deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:QJAG1024/dsh-model-meta-autofill
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DSH 插件:为自定义供应商(llm-pi-ai 设置区)里配置的模型自动预填元数据——上下文长度(contextWindow)、输出上限(maxTokens)、显示名(name)与输入模态(input)——数据来源为 models.dev(Model Metadata Registry)。
在「Models」页从自定义网关发现(interrogation)出来的模型、或手工录入的模型,通常只有 id。本插件把目录里已知的元数据填回该模型的配置项,让界面可直接查看、也让上游据此做容量调度;已由你手动设置过的字段一律不被覆盖。
lib/data/models.dev.json),离线立即可用。llm-pi-ai 设置区的变化(模型被采纳/编辑),对「有缺的模型」生成补丁,通过设置管线的 update 写入——这就是「自动预填」。models 列表有改动时整表重述(设置合并对数组是整表替换语义,避免部分列表悄悄丢模型);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@<tarball路径>
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,初始扫描会立即补填一次。
插件同时带一个客户端 half(dsh.client 声明,走壳的 /plugins 动态加载协议,零改壳代码),样式沿用设置页的设计语言(720px 栏宽、border-l2 细线卡片、胶囊按钮、--dsw-alias-* 令牌)。重启后,设置页出现「模型元数据」分区:
xAI: Grok 4.5 这种厂商前缀形式;选择会记住),以及「刷新」与模型/匹配计数;同一能力也开放为 HTTP 端点(本机回环,可直接 curl / 浏览器 console 调用):
| 端点 | 方法 | 说明 |
|---|---|---|
/model-meta-autofill/api/status |
GET | 插件状态(源、索引条数) |
/model-meta-autofill/api/models |
GET | 全部供应商 + 模型的匹配状态与目录值 |
/model-meta-autofill/api/apply |
POST | {provider, modelId, overwrite?, nameStyle?} 单模型换用目录值;返回 {ok:true, applied} 或 {ok:false, reason:'no-match'\|...} |
/model-meta-autofill/api/apply-all |
POST | {nameStyle?} 全部覆盖(一个补丁覆盖所有已匹配模型);返回 {ok, filled, missed} |
/model-meta-autofill/api/discover |
POST | {provider, url?} 拉取网关模型列表。缺省 URL 启发式:baseURL 以 /v1 结尾则追加 /models,否则追加 /v1/models;可传 url 完全覆盖(指向任意返回 {data/models/results:[...]} 或顶层数组的清单)。宿主侧解析路由的 apiKeyEnv 凭证随请求发送,值不到达浏览器;返回 {ok, url, count, models:[{id, name?, catalog?}]} |
/model-meta-autofill/api/discover/add |
POST | {provider, modelIds} 把发现的模型追加到该供应商的 models 列表(已配置的自动跳过);返回 {ok, added} |
| 键 | 类型 | 默认 | 说明 |
|---|---|---|---|
enabled |
boolean | true |
总开关 |
sources |
string[] | [models.dev] |
要合并的目录源:models.dev(Model Metadata Registry,https://models.dev/api.json)、PublicProviderConf 的 dist/{name}.json 的 name(如 aihubmix,需先 pnpm gen:data <name> 生成快照),或直接给 http(s):// URL。后面的源对同一模型优先生效 |
refreshOnStart |
boolean | true |
启动时拉取一次实时目录 |
refreshIntervalMs |
number | 0 |
>0 时按此间隔定时刷新(毫秒) |
timeoutMs |
number | 15000 |
单次拉取超时 |
autoApply |
boolean | true |
是否把补丁写入设置区(关掉则插件只提供 ctx.modelMeta 查询) |
dryRun |
boolean | false |
试运行:只记录将补填的条目,不写设置(配合日志观察) |
fillName |
boolean | true |
补显示名 |
fillInput |
boolean | true |
补输入模态(text,视觉模型再加 image) |
fillReasoning |
boolean | false |
保留;当前恒为 false |
默认且唯一的打包上游是 models.dev(Model Metadata Registry,API 为 https://models.dev/api.json)——按厂商聚合的标准模型元数据目录:`limit.context/output一律为数字、字段口径统一(modalities.input/output、reasoning、知识截止日期、成本),覆盖包含最新型号的全量模型。如需 PublicProviderConf 网关拼写兜底,可用pnpm gen:data aihubmix生成快照并把aihubmix加进sources`。
pnpm gen:data # 拉取默认源并规整为 src/data/{source}.json(归一化逻辑即插件自身)
pnpm build # 重新打包
1048576)与带后缀字符串(128K/1M/256k,按 1024 进制换算);同一 base id 的多供应商记录自动去重并保留信息最全的一条。provider/ 前缀剥除、~ 变体,均可命中。所有开发期依赖(@deepseek-ai/cordis、dsh-settings、dsh-host-webserver、dsh-credentials 等)都从 npm 安装的发布版本解析,npm i 即可,无需 DeepSeek Harness 源码 checkout。
pnpm typecheck # tsc -p tsconfig.json(src + tests)
pnpm test # node 内置测试器 + tsx:dataset / enrich / api / 集成(真实 SettingsProvider)
pnpm build # tsc -p tsconfig.build.json + scripts/copy-data.mjs → lib/
集成测试(tests/integration/settings-autofill.spec.ts)用内存版 SettingsProvider(与 dsh 设置实现的加载/持久化接口一致)验证:初始扫描补填、事后采纳补填、用户值保留、幂等终止、dry-run 零写入、base-only provider 不被物化。
llm-pi-ai(自定义供应商)。/models 清单接口(可用覆盖 URL 指向任意兼容清单),与 llm-pi-ai 自带的协议级模型发现(discoverModels)是两条独立通路。modelOverrides)始终优先。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。