DeepSeek Harness (DSH) 自定義 LLM 提供商插件

前言

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

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

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

小夜