前言¶
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 提供商的能力,通過靜態配置解決了動態獲取模型列表和協議適配的痛點。對於需要接入非標準或特定協議廠商的開發者,這是一個實用的工具。