前言¶
DeepSeek Harness (DSH) 采取“一切皆插件”的架构。如果你使用 gpt-load 管理模型池,并希望将其接入 DSH,dsh-plugin-gpt-load 提供了一个直接的方案。该插件解决了 DSH 原生 llm-pi-ai 在 provider 路由一级处理协议的限制,允许在一个分组内混用 OpenAI 和 Anthropic 协议,无需在配置文件中为每种协议单独建立 provider。
核心功能¶
- 单一分组:在模型选择器中只显示一个 “GPT-Load” 分组,不再按协议拆分。
- 每模型可选协议:默认依据 gpt-load 返回的
protocols字段判定,也可在设置中将任意模型单独固定为 OpenAI 或 Anthropic 协议,或恢复自动判定。 - 自动同步:启动时与定时从
/api/models拉取模型池,无需手动维护配置列表。 - 能力自动填充:自动读取上下文窗口、最大输出、多模态输入能力以及 Thinking 思考档位(low/medium/high)。
- 密钥安全:AccessKey 交由 DSH 的 credentials 服务保存,不写入
settings.yaml。 - 无损写入:同步操作只更新自身的
gpt-load配置节,不影响其他 provider 的配置与注释。
安装与启用¶
- 进入目标 DSH profile 目录(例如
~/.dsh/profiles/web)。 - 运行安装命令:
cd ~/.dsh/profiles/web && npm install wesleyel/dsh-plugin-gpt-load
- 安装完成后重启 DSH 进程,插件即生效。
典型用法¶
安装并重启后,可在 Web UI 中进行配置:
- 进入 设置 → GPT-Load。
- 填写网关地址(例如
http://127.0.0.1:3001)与 AccessKey。 - 点击「立即同步模型」。
也可以在 profile 的 YAML 配置中预置:
plugins:
gpt-load-sync:
endpoint: http://127.0.0.1:3001
apiKey: gl-your-access-key
displayName: GPT-Load
defaultProtocol: auto
syncOnStart: true
syncIntervalMinutes: 60
技术说明¶
实现原理¶
Harness 的 llm-pi-ai 组件将协议定在 provider 路由一级,模型条目上的协议会被忽略。因此,在 settings.yaml 中无法表达“一个分组里混用两种协议”。该插件据此构建 provider,并交给 harness 自带的适配器处理请求翻译。
协议判定优先级¶
- 模型自身的
protocol(在设置里显式选择,重启后保留)。 - 上游
protocols只允许一种可服务协议 → 直接采用。 - 上游允许两种 → 全局
defaultProtocol生效则用它,否则取上游列表第一个(auto)。 - 上游未声明 → 使用
openai-completions。
只有 openai-completions 与 anthropic-messages 两种协议可服务,上游声明的 openai-responses、gemini 等会被忽略。
版本升级¶
旧版本在 llm-pi-ai 路由中写入的 gpt-load / gpt-load-anthropic 会被自动接管:插件会先还原 endpoint,再移除这两条路由。其余 provider 不受影响。
适用场景¶
该插件适合需要通过 gpt-load 管理模型池,并希望在一个 DSH provider 分组内灵活切换 OpenAI 或 Anthropic 协议的开发者。使用时请确保安装前已阅读源码与许可证。