dsh-model-gate:DSH 单模型禁用门禁

在 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 版本验证。

插件地址:GitHub - OPaimon/dsh-model-gate

羽毛球分组比赛记分
小程序二维码

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

小夜