dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness plugin: serve every gpt-load model from one provider group, each model on its own wire protocol (OpenAI Chat Completions or Anthropic Messages), synced from /api/models
把 gpt-load 的模型池接入 DeepSeek Harness (dsh):自动同步当前 AccessKey 可见的全部模型及其能力,注册成一个 provider 分组,每个模型各自使用 OpenAI 或 Anthropic 协议。
protocols 字段判定,也可以在设置里把任意模型单独固定为 OpenAI 或 Anthropic,或恢复自动判定。/api/models 拉取模型池,无需逐条手写。settings.yaml。gpt-load 配置节,不破坏其余配置与注释。为什么要插件自己实现? harness 的
llm-pi-ai把协议定在 provider 路由一级,模型条目上的协议会被忽略,所以「一个分组里混用两种协议」无法用settings.yaml表达。pi-ai 本身支持(createProvider接受以model.api为键的实现表),本插件据此构建 provider,并交给 harness 自带的适配器处理请求翻译。
cd ~/.dsh/profiles/web
npm install wesleyel/dsh-plugin-gpt-load
装进 harness profile(如 ~/.dsh/profiles/web)即可,重启后生效。也可以指定本地路径:npm install /path/to/dsh-plugin-gpt-load。
运行时依赖(@deepseek-ai/dsh-llm-pi-ai、@deepseek-ai/dsh-llm、@earendil-works/pi-ai)由 harness 提供,插件启动时自动从 harness 安装目录解析;npm install 的 prepare 会自动完成构建。
安装后重启 harness,在 设置 → GPT-Load 里填网关地址(例如 http://127.0.0.1:3001)与 AccessKey,点「立即同步模型」即可。
也可以在 profile 里预置:
plugins:
gpt-load-sync:
endpoint: http://127.0.0.1:3001 # 可留空,稍后在 Web UI 填
apiKey: gl-your-access-key # 可留空,稍后在 Web UI 填
displayName: GPT-Load # 分组显示名
defaultProtocol: auto # auto | openai-completions | anthropic-messages
syncOnStart: true
syncIntervalMinutes: 60
优先级从高到低:
protocol(设置里的显式选择,重启后保留);protocols 只允许一种可服务协议 → 直接采用;defaultProtocol 生效则用它,否则取上游列表第一个(auto);openai-completions。只有 openai-completions 与 anthropic-messages 两种协议可服务,上游声明的 openai-responses、gemini 等会被忽略。
实际部署中模型往往同时声明两种协议,
auto会按上游顺序取第一个。想让 Claude 之类走 Anthropic,请在模型列表里单独选择,或把默认协议设为anthropic-messages。
旧版本写入的 llm-pi-ai 路由(gpt-load / gpt-load-anthropic)会被自动接管:先还原 endpoint,再移除这两条路由。其余 provider 不受影响。
npm install
npm run build # tsc + 客户端 bundle
npm test # 构建 + 单元测试 + 产物冒烟
真实网关端到端测试(未设置密钥时自动跳过):
GPT_LOAD_API_KEY=gl-... npm test
MIT