DeepSeek Harness 插件:dsh-plugin-model-proxy

在 DSH 環境中使用模型時,有時會遇到特定模型端點受網絡區域限制,需要通過代理訪問,而同一提供者的其他模型直連正常的情況。若通過全局環境變量配置代理,會影響所有請求;若直接修改 baseURL,則可能隱藏真實上游。dsh-plugin-model-proxy 解決了這一問題,它允許在傳輸層對特定的提供者/模型對進行代理路由,其他請求保持直連,且不會修改配置中的 baseURL。

這是一個社區 DSH 插件,由 biyuhao 維護。它提供了一套規則系統,用於將特定的模型請求路由到指定的代理服務器,並內置了設置界面以支持批量與分組管理。

核心功能

插件支持基於規則的精細化路由,匹配優先級爲:精確模型 > 前綴匹配 > 通配符。

  • 路由規則:支持 {provider, model, proxyUrl, enabled} 格式配置,精確模型匹配優先級最高。
  • 目的過濾:支持在規則中添加 purpose 字段,例如 compaction,讓特定類型的請求走代理,而對話等請求保持直連。
  • 憑據集成:支持通過 credentialRef 引用 DSH 憑據服務中的 user:password 條目,將代理密碼與配置解耦。
  • 連通性測試:新增代理規則後會自動進行探測,檢查 CONNECT 或 SOCKS 握手是否成功,結果記錄在主機日誌中。
  • 協議支持:支持 http://、https://、socks5:// 和 socks5h://。
  • 實時生效:修改規則後,下一次 llm/stream 調用即可生效,無需重啓進程。
  • 設置界面:通過 Settings → Plugins → Model Proxy 訪問,提供提供者選擇器(下拉菜單或自定義文本)和批量管理功能。

安裝

推薦使用 DSH 的 profile 管理方式安裝,該方式會自動處理依賴並注入加載條目。

dsh plugin --profile <name> add dsh-plugin-model-proxy

配置

通過 UI 配置

進入 Settings → Plugins → Model Proxy 頁面,通過界面選擇提供者、模型、代理地址並啓用規則。

通過文件配置

在 ~/.dsh/settings.yaml 中添加 model-proxy 配置段。配置項 proxyUrl: "" 表示直連(免代理)。

model-proxy:
  enabled: true
  debug: false
  defaultProxy: ""
  rules:
    - provider: opencode
      model: muse-spark-1.2-contributor
      proxyUrl: socks5://127.0.0.1:1080
      enabled: true
    - provider: opencode
      model: "*"
      proxyUrl: ""
      enabled: true

注意事項與手動安裝

插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。

  • 手動安裝:如果需要手動管理配置,需先在 profile 目錄安裝依賴,然後創建或修改 ~/.dsh/cordis.patch.yml,插入一行 loader 條目。
  # ~/.dsh/cordis.patch.yml
  - insert:
      - id: model-proxy/host
        name: dsh-plugin-model-proxy
        config: {}
  • 字段名與嵌套:loader-entry 的標識字段爲 name:,而非 module:。新插入的行必須嵌套在 insert: 下。注意,僅主機半部分是 loader entry,瀏覽器半部分由 dsh.client 自動發現。
  • 避免衝突:不要手動添加 model-proxy/client 行,這會導致瀏覽器代碼在 Node 進程中運行。此外,不要將手動配置路徑與上述推薦的 profile 管理安裝方式混合使用,否則會在啓動時產生衝突。

該插件通過劫持 fetch 並監聽 llm/stream 事件實現路由,不修改 baseURL,保持了配置的原貌。完整源碼與目錄可查看 GitHub。

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

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

小夜