在 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 版本驗證。