@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.yamlonlyBuiltDependencies

安装完成后需要重启 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

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

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

小夜