@superfish058/dsh-llm-proxy:按模型配置代理與失敗重試的 DSH 插件

前言

DSH 的擴展方式強調「一切皆插件」。在實際使用模型 API 時,常見的問題是網絡路徑不同:一部分模型 API 需要經過代理訪問,另一部分保持直連即可;與此同時,限流或服務端錯誤也可能打斷請求。

@superfish058/dsh-llm-proxy 是一個 DSH 模型代理插件,用於在 DSH 內按模型配置代理,並對失敗請求自動重試。它不要求全局開啓代理,而是讓選中的模型走代理,未選中的模型保持直連。

DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不是官方應用商店。

這是什麼

一句話定位:DSH 模型代理插件,按模型走代理(Clash 等)+ 失敗自動重試,設置頁即時生效。

維護者是 superfish058,許可證爲 MIT。package.json 聲明 engines.node 爲 >=24。

它主要解決以下幾類問題:

  • 只想讓部分模型走代理,不想全局代理影響其他模型;
  • 遇到斷連、HTTP 429、5xx 等錯誤時,希望自動重試;
  • 希望在 DSH 設置頁直接調整、驗證和查看模型代理狀態。

核心功能

按模型/目標域名分流

插件按模型 API 地址(baseURL host)生效路由:

  • 選中模型經 proxyHost:proxyPort 轉發;
  • 未選中模型直連;
  • 同一 API 地址下的模型會共享代理設置。

也就是說,路由粒度是「模型對應的 API 地址」,不是簡單的單個模型名。選中一個模型後,同一地址下的模型都會走代理。

失敗自動重試

插件支持對以下類型錯誤自動重試:

  • 斷連;
  • HTTP 429;
  • 5xx 錯誤。

默認重試 3 次,間隔 1s。設置卡片上的 retries / retryIntervalMs 會鏡像進被勾選 provider 的官方 retryPolicy。

模型列表同步

模型列表與 DSH 官方模型選擇器同步。對於未寫 models 的 provider,插件可回退到 pi-ai 內置目錄或官方目錄。

多模態模型鏡像

插件可爲「支持圖像識別但官方聲明/UI 沒有圖像輸入入口」的模型補充 image 輸入聲明。

需要注意:這個能力只對真正支持圖像輸入的模型有意義。純文本模型勾選後,DSH 雖可能放行,實際請求仍可能因模型不支持圖像而報錯。

測試連接

設置頁每行提供「測試連接」,可顯示:

  • HTTP 狀態;
  • 耗時;
  • 經代理/直連;
  • 多模態狀態;
  • 或提供方錯誤 body。

測試連接走已保存配置,並且只驗證一次非流式探測。流式或長對話仍建議用真實會話確認。

技術實現

插件使用 undici 全局 Dispatcher 注入:

  • RoutingDispatcher 按 hostname 路由;
  • RetryAgent 處理重試。

同時,插件通過 Cordis 插件註冊 llm-proxy 設置命名空間,並提供瀏覽器側設置卡片。

保存後,配置寫入 llm-proxy 命名空間,運行時整體替換 dispatcher,不修改 settings.yaml 裏的供應商配置。

安裝與啓用

推薦安裝 npm 包:

dsh plugin --profile web add @superfish058/dsh-llm-proxy

如果是本地源碼聯調,可以使用:

dsh plugin --profile web add C:/path/to/dsh-llm-proxy

修改源碼後需要重建:

npm run build

如果提示 build 授權,需要把 @superfish058/dsh-llm-proxy 加進 profile 的 pnpm-workspace.yaml → onlyBuiltDependencies。

安裝完成後需要重啓 dsh web:托盤退出,再啓動。

典型用法

1、進入 DSH 設置頁「插件 → 可配置插件 → 模型代理」。

2、勾選需要走代理的模型。默認代理地址爲 127.0.0.1:7897,可配置 proxyHost / proxyPort。

3、修改代理勾選或代理地址後,先點「保存」,再使用設置頁「測試連接」驗證。

4、重啓後在日誌中確認出現:

dsh-llm-proxy: global dispatcher → RetryAgent(RoutingDispatcher) (proxy=127.0.0.1:7897, ...)

之後可以使用已勾選模型發起真實請求,確認選中模型經代理、未選中模型直連。

適用場景與注意

適合以下情況:

  • 需要讓部分模型 API 走代理,其餘模型保持直連;
  • 請求可能因斷連、429、5xx 中斷,需要自動重試;
  • 希望按模型粒度配置代理,而不是全局開啓代理。

需要注意:

  • 路由按模型 API 地址(baseURL host)生效,同一地址下的模型會共享代理設置;
  • 多模態模型鏡像只對真正支持圖像輸入的模型有意義;
  • 「測試連接」走已保存配置,且只驗證一次非流式探測;
  • 插件會以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。該插件許可證爲 MIT。

鏈接

目錄頁:

https://www.skillhub.cn/plugins/superfish058/dsh-llm-proxy

GitHub:

https://github.com/superfish058/dsh-llm-proxy

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

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

小夜