DeepSeek Harness Hub
← 返回列表

自定义模型提供方linziyanleo/dsh-custom-provider

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在设置页配置自定义 LLM 提供方路由与模型目录

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/19 · 已提供中文文档

在 DeepSeek Harness 中配置自定义 LLM 提供商。

综合分
27.9
GitHub 分
27.9
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add linziyanleo/dsh-custom-provider
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-credentials@deepseek-ai/dsh-credentials-local@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/dsh-settings@deepseek-ai/dsh-settings-file@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-custom-provider

一个用于在 Web 设置页或 settings.yaml 中配置静态提供方路由与模型目录的 DSH 插件。每条路由可选择 OpenAI Chat Completions、OpenAI Responses 或 Anthropic Messages。

解决的问题

模型接口往往不只需要 API 地址和密钥:还需要选择线协议,模型目录可能需要预先声明,模型容量需要明确配置,推理参数、消息回放等请求字段也可能有不同要求。

dsh-custom-provider 将这些信息注册为 DeepSeek Harness(DSH)可直接使用的提供方路由。配置后的模型会出现在 DSH 原生模型选择器中,并继续使用 DSH 标准的流式输出、工具调用、usage、finish reason、取消和推理档位流程。

提供的方案

- 中英双语 Web 设置页,可新增、编辑和删除自定义提供方。
- 每条路由可选择 openai-completions、openai-responses 或 anthropic-messages。
- 基于 settings.yaml 的声明式 llm-custom.providers 配置。
- 静态模型目录,不依赖提供方的 /models 接口。
- 每次请求通过 DSH 凭据服务解析密钥,API 密钥不会写入 settings.yaml。
- 支持提供方级默认值与模型级覆盖的 OpenAI Chat Completions 兼容字段。
- 复用 DSH 的 pi-ai 流适配器,完成各协议的请求序列化、文本与工具调用流、usage、finish reason、取消和回放。
- 替换路由注册前先校验完整配置,避免无效修改被部分应用。

安装

直接将已发布的包安装到 DSH Web profile:

npx @deepseek-ai/dsh plugin --profile web add @linziyanleo/dsh-custom-provider

检查 DSH 是否成功加载 bundle 及其配置命名空间:

npx @deepseek-ai/dsh --profile web --dump-config

如需可复现安装,请固定包版本,例如 @linziyanleo/dsh-custom-provider@0.1.1。

环境要求

- Node.js ^22.19.0 或 >=24.0.0(已验证的最低版本:22.19.0)
- 启用了 Web profile 的 DeepSeek Harness
- 与 DSH 0.1.0-rc.7 兼容的相关包;完整契约见 peerDependencies

实际截图

Web 设置页

可在 DSH Web 中管理提供方凭据、接口地址、模型、容量和高级兼容字段。

自定义提供方设置页

YAML 配置

同一份提供方和模型目录也可以直接通过 settings.yaml 管理。

settings.yaml 中的 llm-custom 配置

配置

Web 设置页

在 DSH Web 中打开 设置 → 自定义提供方,然后:

1. 填写 Provider ID 和显示名称,然后选择接口的线协议。
2. 填写符合该协议要求的 API 地址和凭据引用,详见协议与 API 地址。
3. 输入 API 密钥。该字段只写,通过 DSH 凭据服务保存,不会回显已存储的值。
4. 添加一个或多个模型,填写模型 ID、显示名称、上下文窗口和最大输出。容量字段支持整数以及 200K、1m 等 K/M 后缀。
5. 仅在模型需要时展开高级字段,配置自定义推理档位映射;Chat Completions 路由还会显示请求兼容性覆盖。
6. 保存提供方。设置变更应用后,模型会立即出现在模型选择器中。

settings.yaml

llm-custom:
providers:
example:
displayName: Example Provider
apiKeyEnv: EXAMPLE_API_KEY
api: openai-completions
baseURL: https://api.example.com/v1
compat:
supportsStore: false
supportsDeveloperRole: false
thinkingFormat: deepseek
supportsReasoningEffort: true
maxTokensField: max_tokens
requiresReasoningContentOnAssistantMessages: true
models:
- id: example-model
name: Example Model
contextWindow: 262144
maxTokens: 32768
reasoningEfforts:
off:
high: high
max: max

apiKeyEnv 是凭据引用,不是密钥本身。请通过 DSH 凭据服务或 Web 设置页为该引用配置值。

协议与 API 地址

插件会把 baseURL 交给选中的协议适配器。地址应配置到该适配器期望的层级:

| api | 适配器追加的请求路径 | 常见 baseURL |
| --- | --- | --- |
| openai-completions | /chat/completions | https://api.example.com/v1 |
| openai-responses | /responses | https://api.example.com/v1 |
| anthropic-messages | /v1/messages | https://api.example.com |

对兼容网关,应选择能让最终请求路径正确命中的基础地址。插件会去除末尾斜杠,但不会探测或改写端点。

使用 OpenAI Responses 时,路由协议改为以下值,并保留 OpenAI 风格的 /v1 基础地址:

api: openai-responses
baseURL: https://api.example.com/v1

使用 Anthropic Messages 时,填写 /v1/messages 之前的接口根地址:

api: anthropic-messages
baseURL: https://api.example.com

配置字段

以下字段路径均相对于 llm-custom.providers.。

在 Web 设置页中,Provider ID 必须以小写字母开头,且只能包含小写字母、数字和连字符。

提供方字段

| 字段 | 必填 | 说明 |
| --- | --- | --- |
| displayName | 否 | 模型选择器中显示的名称;默认使用 Provider ID。 |
| apiKeyEnv | 是 | DSH 凭据引用,每次请求前解析。 |
| api | 是 | 线协议:openai-completions、openai-responses 或 anthropic-messages。 |
| baseURL | 是 | 所选协议期望层级的绝对 HTTP(S) 地址;末尾斜杠会被规范化。 |
| compat | 否 | 该路由下所有模型继承的 Chat Completions 兼容性默认值;其他协议会拒绝该字段。 |
| models | 是 | 至少包含一个模型的静态目录;同一提供方内的模型 ID 不可重复。 |

模型字段

| 字段 | 必填 | 说明 |
| --- | --- | --- |
| id | 是 | 发送给提供方的模型 ID。 |
| name | 否 | 模型选择器中显示的名称;默认使用 id。 |
| contextWindow | 是 | 上下文窗口 token 数,必须为正整数。 |
| maxTokens | 是 | 单次响应最大输出 token 数,必须为正整数。 |
| reasoningEfforts | 否 | DSH 推理档位到提供方线值的映射;设为 false 可禁用推理控件。 |
| compat | 否 | 模型级 Chat Completions 兼容字段;其他协议会拒绝该字段;声明值逐项覆盖提供方级值。 |

兼容字段

openai-completions 的提供方级与模型级 compat 支持相同字段。OpenAI Responses 与 Anthropic Messages 路由不使用这些字段;从 Chat Completions 切换协议时,Web UI 会清除它们。

| 字段 | 可选值 | 作用 |
| --- | --- | --- |
| supportsStore | true / false | 请求是否可以发送 OpenAI store 参数。 |
| supportsDeveloperRole | true / false | 系统提示是否可以使用 developer 角色。 |
| thinkingFormat | openai、deepseek、openrouter、together、zai、qwen、string-thinking、ant-ling | 接口能够识别的推理内容格式。 |
| supportsReasoningEffort | true / false | 请求是否可以发送推理档位参数。 |
| maxTokensField | max_completion_tokens / max_tokens | 请求中承载最大输出上限的字段。 |
| requiresReasoningContentOnAssistantMessages | true / false | 回放助手消息时是否保留 reasoning_content。 |

只需声明接口实际需要的兼容字段;模型级未声明字段会继承提供方级值。

推理档位映射

DSH 支持的档位为 off、minimal、low、medium、high、xhigh 和 max。映射值是提供方接口实际接收的字符串。只有 off 可以为空(在 YAML 中为 null),且映射中至少需要一个非 off 档位。未声明的档位不会出现在选择器中。

reasoningEfforts:
off:
medium: medium
high: high

模型不提供推理控件时,可设置 reasoningEfforts: false。

安全与生命周期

- 使用已配置模型时,DSH 会按照所选协议,将模型请求和解析出的 API 凭据发送到该路由由用户配置的 baseURL。
- 插件本身不添加遥测,也不申请工作区文件、Shell 或浏览器访问;其 Web UI 只管理 llm-custom 设置和引用的 DSH 凭据。
- API 密钥在每次请求时解析,不会写入 llm-custom 设置。
- 在 Web 设置页替换密钥只会更新对应凭据,不会显示已存储的值。
- 删除提供方或卸载插件不会删除对应凭据,也不会自动删除 llm-custom 配置;不再使用时需要分别清理。

当前支持范围

- 支持 OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages 接口
- 仅支持静态、文本输入模型目录
- 不自动发现远端模型
- 不自动注入特定提供方默认值;Chat Completions 兼容字段均为显式配置

卸载

npx @deepseek-ai/dsh plugin --profile web remove @linziyanleo/dsh-custom-provider

该命令只会移除插件 bundle;设置与凭据的清理方式见上方“安全与生命周期”。

开发与验证

pnpm install --frozen-lockfile
pnpm check

pnpm check 会执行离线测试、服务端与客户端类型检查、生产构建和客户端 bundle 断言。真实提供方验收为显式 opt-in,不属于默认检查。

推送到 main 后,只有对应 CI 成功才会进入 npm 发布。发布流水线把 package.json 中的版本作为最低版本:当它高于 npm 已发布版本时直接使用,否则自动递增 npm 最新版本的 patch 位。prepublishOnly 会在 npm 接收发布前再次执行完整检查并校验包内容。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群