在 DSH 的使用场景中,有时需要屏蔽特定的模型或提供者路由,但不希望修改底层的提供者配置或凭据。dsh-model-gate 提供了一个非破坏性的覆盖层,用于实现这一需求。
核心功能¶
该插件通过拦截 DSH 的发现路径,将被禁用的模型从所有可见列表中移除。同时,它确保任何尝试调用这些模型的调度请求在协议层面返回 MODEL_DISABLED 错误,从而阻断后续的网络请求。它由 OPaimon 维护,采用 MIT 许可证。
安装与启用¶
使用官方安装命令即可添加该插件:
dsh plugin --profile web add dsh-model-gate
或者,如果从 Release 下载了 tarball 包,可以先解压再安装:
tar -xzf dsh-model-gate-0.1.2.tgz # 解压得到 ./package/
dsh plugin --profile web add ./package
安装后重启 DSH 一次,使新的插件层生效。后续对黑名单的编辑通过设置页面热应用,无需再次重启。
配置与用法¶
编辑配置文件 ~/.dsh/settings.yaml,在 llm-model-gate 节点下定义 disabledProviders 和 disabledModels。修改会立即生效。
llm-model-gate:
disabledProviders:
- openrouter
disabledModels:
- "*/kimi-k2.7-code" # 禁用所有提供者上的该模型 ID
- "token-rhythm/glm-5" # 禁用特定 provider/model 对
匹配规则是精确且区分大小写的。在 disabledModels 中使用 */model 前缀可以匹配该模型在所有提供者上的路由。
发现与调度行为¶
- 发现路径:被禁用的模型会从 Web 选择器、目录列表和 API 请求验证中完全消失,表现得从未被配置过。
- 调度拦截:任何仍然尝试调度禁用模型的路径(例如子代理、会话标题、自定义路由或显式 ID),都会在
llm/stream水流中停止。此时返回finish{kind:"error", code:"MODEL_DISABLED"}错误块,且不会发起任何网络请求。
界面与限制¶
DSH 的 Web 设置面板提供了一个“模型门禁”区域。该区域通过插件自身的 typert 服务读取未过滤的目录,因此你可以看到所有模型及其开关状态,并将禁用的模型重新启用。
- 非破坏性:插件不会触碰任何提供者的配置文件或凭据。提供者保持安装状态,仅其公共列表被过滤。
- 路由区分:视觉路由克隆(如
openrouter-vision)是独立的路由键,需要分别屏蔽。 - 卸载残留:卸载插件后,残留的
llm-model-gate配置块是无害的,不会影响系统运行。
插件已针对 DSH 0.1.x-rc 版本验证。