前言¶
DeepSeek Harness (DSH) 的架构允许通过插件扩展功能。在接入特定厂商的 LLM 服务时,往往需要处理多种情况:厂商可能需要特定的协议(如 OpenAI Responses 或 Anthropic Messages),模型列表可能不公开或动态获取不稳定,此外还需要显式声明兼容性字段以适配 DSH 的内部流程。
dsh-custom-provider 插件解决了这些问题。它通过静态配置提供路由和模型目录,支持多种协议,并重用了 DSH 的流式适配器。
插件介绍¶
该插件由 linziyanleo 维护,采用 MIT 许可证。它主要提供静态路由配置和模型目录管理,不依赖提供商的 /models 端点,能够将自定义的 LLM 提供商无缝接入 DSH 的模型选择器和标准流式/工具调用流程中。
安装与启用¶
插件需要安装在 DSH 的 Web profile 中。
1、执行以下命令安装插件包:
npx @deepseek-ai/dsh plugin --profile web add @linziyanleo/dsh-custom-provider
2、安装完成后,通过以下命令验证配置命名空间是否加载成功:
npx @deepseek-ai/dsh --profile web --dump-config
配置方法¶
插件支持通过 Web 界面和 settings.yaml 文件两种方式进行配置。
Web 设置页面¶
1、在 DSH Web 中打开 Settings → Custom Providers。
2、输入提供商 ID(必须以小写字母开头,仅包含小写字母、数字和连字符)、显示名称。
3、选择协议(如 openai-completions、openai-responses 或 anthropic-messages)。
4、输入符合协议要求的 API base URL 和凭证引用。
5、输入 API 密钥。该字段为只写,通过 DSH 凭证服务存储,不直接写入配置文件。
6、添加模型,设置上下文窗口、最大输出等参数。
7、保存配置,模型随即生效。
settings.yaml 配置示例¶
也可以直接在 settings.yaml 中编写 llm-custom.providers 配置。以下是一个基于 OpenAI Chat Completions 协议的示例:
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
协议与 BaseURL¶
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 |
核心功能¶
插件提供了以下能力:
- Web 管理界面:提供可视化的设置页面,用于添加、编辑和删除自定义提供商。
- 多协议支持:支持
openai-completions、openai-responses和anthropic-messages协议。 - 声明式配置:支持在
settings.yaml中通过llm-custom.providers进行声明式配置。 - 静态模型目录:提供静态模型列表,不依赖提供商的
/models端点。 - 按请求凭证解析:通过 DSH 凭证服务动态解析 API 密钥,不将密钥存储在配置文件中。
- 兼容性字段:支持 Provider 级默认值和每模型覆盖,主要用于
openai-completions协议。 - 流式适配器复用:重用 DSH 的
pi-ai流式适配器,确保文本流、工具调用、使用量统计等流程正常。 - 全配置验证:在路由注册替换前进行验证,避免无效配置部分激活。
注意事项¶
- 运行环境:需要 Node.js
^22.19.0或>=24.0.0。 - DSH 版本:需要 DSH
0.1.0-rc.7兼容包。 - Profile:必须使用 Web profile。
- ID 规则:Web UI 中的提供商 ID 必须以小写字母开头并仅包含小写字母、数字和连字符。
- BaseURL:
baseURL路径必须符合所选协议适配器的预期(例如 OpenAI 协议通常需要包含/v1)。 - 兼容性字段:
compat字段仅适用于openai-completions协议,切换到其他协议时该字段会被忽略。
结语¶
该插件为 DSH 增加了配置自定义 LLM 提供商的能力,通过静态配置解决了动态获取模型列表和协议适配的痛点。对于需要接入非标准或特定协议厂商的开发者,这是一个实用的工具。