dsh-model-context-catalog
已验证dsh-model-context-catalog · v0.3.0 · MIT · Web 界面
Maintain deployment-specific context windows for custom DeepSeek Harness model routes.
安装
dsh plugin add dsh-model-context-catalog 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
标签
说明文档
dsh-model-context-catalog 按 provider / model 路由保存上下文窗口,并自动同步到 DeepSeek Harness 的模型配置,适用于手动接入的模型服务、中转站和模型别名。
首次安装时列表为空,插件不提供默认容量。添加模型并填写窗口后,通过 启用 开关决定是否持续管理。升级会保留已有条目和启停状态。
自定义模型的实际设置界面:填写窗口大小,通过开关启用管理。
适用场景
| 场景 | 插件用途 |
|---|---|
| 手动接入模型服务,使用自定义 provider,而非内置 provider | 为该服务下的各个模型填写准确窗口,补充内置目录无法提供的容量信息 |
| 通过中转站调用模型,接口未提供窗口大小,或模型 ID 使用别名 | 按中转站对该模型的实际限制填写窗口,并自动同步到模型配置 |
| 同一个模型接入不同服务、套餐或部署,各自的容量限制不同 | 按 provider / model 分别维护窗口,避免将一条路由的限制套用到另一条路由 |
| 使用内置 provider,且内置窗口与实际服务限制一致 | 可直接使用 DSH 的容量信息,通常无需插件重复维护 |
| 已准确配置多个模型的窗口,希望统一查看和修改 | 在插件中集中维护并持续同步;容量相同时不重复写入 |
工作方式
在插件中选择已经配置的模型,填写窗口大小并启用条目。插件会将目录中的容量同步到该模型的 contextWindow;之后修改目录,模型配置也会随之更新。

同步只修改上下文窗口,保留模型的 API 地址、凭据、名称和输出上限。容量声明错误可能导致上下文超限误判,相关原理见 ROOT_CAUSE.md。
安装与使用
安装
安装到 DSH Web profile:
dsh plugin --profile web add dsh-model-context-catalog
安装后,在 DSH 插件管理器中确认插件已启用。若尚未加载,重启 DSH 并刷新 Web 页面。
使用
为模型设置窗口
- 在 DSH 模型设置中完成模型接入,包括模型服务的 API 地址、调用协议、凭据和模型列表。插件只能选择这里已经添加的模型。
- 打开 设置 → 上下文窗口。如果页面已有这个模型的条目,点击 编辑;如果没有,点击 添加模型。
- 新增条目时,从对应服务商的分组中选择模型。同名模型可能属于不同服务,请核对所选服务商和模型 ID。
- 在 上下文窗口中填写服务商确认的 token 数,使用正整数。例如,文档写明窗口为 128,000 tokens,就填写
128000。容量来源链接和备注可选,用来记录数值依据。 - 点击 保存。新条目默认启用,插件随后将窗口写入 DSH 的模型配置。编辑已有条目时,保存会保留原来的启停状态。
修改窗口或停止同步
条目启用期间,应在本插件中修改窗口。若直接修改 DSH 模型设置中的窗口,插件会再次将它同步为本插件保存的值。
| 操作 | 结果 |
|---|---|
| 编辑 → 保存 | 保存新窗口,保留原来的启停状态;已启用的条目会自动同步 |
| 关闭启用开关 | 保留插件条目,停止同步;DSH 模型配置中已有的窗口保持原值 |
| 打开启用开关 | 恢复同步,将该条目保存的窗口写入模型配置 |
| 删除 | 移除插件条目并停止同步;不会删除 DSH 中的模型,也不会清除已经写入的窗口 |
如果以后希望直接在 DSH 模型设置中管理窗口,先关闭插件中的 启用 开关,再去修改模型配置。
同步提示
正常条目只显示窗口与启用开关。启用表示插件正在管理该条目;如果模型配置尚未与保存的窗口一致,页面会提示 模型配置尚未同步。保存后可稍候查看,持续未同步时检查插件是否运行及 DSH 日志。
如果模型已从 DSH 中移除,页面会提示重新添加模型或删除该条目。保存或切换开关失败时,页面会显示写入错误。停用条目不提示同步问题。
中转站 API
使用中转站不等于一定要手动填写;关键是它是否提供准确、可读取的容量元数据。
如果中转站的 /models 接口提供窗口大小,可以通过 DSH 模型发现导入,再在插件中集中维护。
如果接口只返回模型 ID、名称或价格,DSH 无法据此知道实际窗口。此时需要查中转站该路由的文档或控制台,在插件里手动填写一次。插件负责保存和持续同步,不自动探测上限,也不把原厂窗口套用到模型别名。
查询容量时,应以中转站的模型文档、控制台或套餐说明为准。模型名称相同,不代表中转站提供的窗口与原厂上限相同。
同一中转站下的不同模型可能有不同限制,应分别维护各模型的窗口。
同步范围
- 管理
llm-pi-ai中已经添加的服务与显式模型列表,按 provider / model 匹配并同步窗口。 - 使用内置目录、未显式列出模型的路由,以及
modelOverrides,不在当前同步范围内。 - 插件负责容量配置的维护,响应分类、摘要和自动压缩仍由 DSH 处理。
窗口由用户按对应部署的限制填写;插件不内置任何模型的容量目录。
开发
npm ci
npm run check
npm test
npm pack --dry-run
本地开发时,可将源码目录链接到 DSH:
dsh plugin --profile web add -w /absolute/path/to/dsh-model-context-catalog
测试覆盖目录同步、配置冲突、其他模型字段保留和设置页保存行为。
源码位于 index.js、catalog.js、client.js;lib/ 是构建产物。贡献规则见 CONTRIBUTING.md,版本记录见 CHANGELOG.md。问题可提交到 GitHub Issues。