dsh-plugin-gpt-load:将 gpt-load 模型池接入 DeepSeek Harness

前言

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 的配置与注释。

安装与启用

  1. 进入目标 DSH profile 目录(例如 ~/.dsh/profiles/web)。
  2. 运行安装命令:
cd ~/.dsh/profiles/web && npm install wesleyel/dsh-plugin-gpt-load
  1. 安装完成后重启 DSH 进程,插件即生效。

典型用法

安装并重启后,可在 Web UI 中进行配置:

  1. 进入 设置 → GPT-Load。
  2. 填写网关地址(例如 http://127.0.0.1:3001)与 AccessKey。
  3. 点击「立即同步模型」。

也可以在 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 自带的适配器处理请求翻译。

协议判定优先级

  1. 模型自身的 protocol(在设置里显式选择,重启后保留)。
  2. 上游 protocols 只允许一种可服务协议 → 直接采用。
  3. 上游允许两种 → 全局 defaultProtocol 生效则用它,否则取上游列表第一个(auto)。
  4. 上游未声明 → 使用 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 协议的开发者。使用时请确保安装前已阅读源码与许可证。

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

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

小夜