前言¶
如果你在用 DeepSeek Harness(dsh)的 web profile,希望把 NewAPI 這類 OpenAI 兼容網關接進來,但不想改 dsh 本體,可以看一下這個插件。
DSH 的理念是「一切皆插件」;社區目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係。dsh-llm-newapi 是一個 LLM Provider 插件,爲 dsh 增加一個 NewAPI 提供方,provider route id 爲 newapi,顯示名爲 NewAPI。README 描述它爲 “zero modifications to dsh itself”。
這是什麼¶
- 倉庫路徑:
wenzetan/dsh-llm-newapi - 許可證:
MIT - 插件類別:LLM Provider
- 定位:爲 dsh 增加 NewAPI 提供方,不改 dsh 本體
- 接口形態:實現
@deepseek-ai/dsh-llm中的LlmAdapterseam,用於 OpenAI-compatible gateway - 調用地址:
POST {baseURL}/chat/completionsGET {baseURL}/modelsbaseURL需要包含/v1- 結構:host-side adapter、chat-only model discovery,以及 dsh web 中的
NewAPI設置頁 - 安裝渠道:npm registry、versioned GitHub tags、release tarball、local link development
- API key:通過 web settings page 配置,固定 credentials reference 名稱爲
newapi,不從環境變量讀取
核心功能¶
-
增加 NewAPI 提供方
插件在 dsh 中註冊 provider route idnewapi,顯示名NewAPI。 -
接入 OpenAI-compatible gateway
它實現LlmAdapterseam,使用POST {baseURL}/chat/completions和GET {baseURL}/models。baseURL需要包含/v1。 -
雙端結構
host 側提供 LLM adapter 和 chat-only model discovery;browser 側在 dsh web 的設置面板中提供NewAPI頁面。 -
模型發現
通過GET {baseURL}/models獲取模型列表,只採納可服務chat-completions的模型。embedding、rerank、ranker類模型按命名約定過濾,除非通過配置調整。 -
Web 設置頁配置
安裝後可在 dsh web 中打開NewAPI設置頁,填入 API key 和 gateway 地址,使用Fetch model info拉取模型列表,選擇 chat models 後保存。 -
可配置項
配置可以定義:
-baseURL
-models
-modelExcludePatterns
-defaultContextWindow
-maxTokens
-providerHints -
寫入校驗
在 settings 寫入時,配置校驗會拒絕非http(s)的baseURL,以及空的 filter 條目。 -
API key 行爲
API key 不讀環境變量。沒有 key 時,第一次請求會失敗,錯誤爲MISSING_CREDENTIAL,並指向 settings page。
安裝與啓用¶
README 要求 dsh 版本不低於:
dsh ≥ 0.1.0-rc
下面以 dsh web profile 爲例。
安裝 stable 版本¶
使用 npm registry:
dsh plugin --profile web add dsh-llm-newapi
然後編輯:
$DSH_HOME/profiles/web/package.json
在 dsh.profile.bundles 數組中加入:
"dsh-llm-newapi"
最後重啓 dsh web。
安裝 stable GitHub tag¶
使用 moving GitHub tag:
dsh plugin --profile web add "github:wenzetan/dsh-llm-newapi#latest"
安裝後同樣需要把 dsh-llm-newapi 加入 dsh.profile.bundles,並重啓 dsh web。
安裝 prerelease 版本¶
使用 npm next channel:
dsh plugin --profile web add dsh-llm-newapi@next
安裝後同樣需要註冊 bundle 並重啓 dsh web。
README 還支持 release tarball 或 local link development 方式,但安裝後的 bundle 註冊和重啓步驟一致。
安裝時可能出現的 missing-peer warning¶
安裝時看到 missing-peer warnings 是預期情況。react、cordis、dsh-llm、dsh-settings、schemastery 等 runtime peers 由 dsh host app 在運行時提供。
不要手動安裝這些 peers,也不要啓用 autoInstallPeers。這樣做可能導致 duplicate cordis services,並造成插件失敗。
不要使用無 tag 的 GitHub shorthand¶
github:wenzetan/dsh-llm-newapi 這種無 tag 形式會安裝 main HEAD。README 標記其不推薦用於 release use。
典型用法¶
安裝並完成 bundle 註冊後,打開 dsh web 的 NewAPI 設置頁:
- 填入 API key。
- 填入 gateway 地址,地址中需要包含
/v1。 - 點擊
Fetch model info,拉取GET {baseURL}/models的模型列表。 - 選擇需要使用的 chat models。
- 保存。
保存後,newapi 提供方下的模型可在 dsh web 中作爲該 provider 的模型使用。
配置項示例如下,實際填寫時按你的網關地址和模型目錄調整:
- id: llm-newapi
name: dsh-llm-newapi
config:
baseURL: http://gateway.local:3000/v1
# models: []
# modelExcludePatterns:
# - embed
# - rerank
# - ranker
# defaultContextWindow: 128000
# maxTokens: 8192
# providerHints: {}
其中:
baseURL必須包含/v1。models是 suggested catalog。modelExcludePatterns用於 chat-only model discovery 的過濾。defaultContextWindow用於目錄中沒有對應模型條目時的 context window。maxTokens用於模型調用參數。providerHints用於 provider hints 配置。
API key 不在配置項中填寫。它位於固定 credentials reference newapi 下,唯一配置入口是 web settings page。
適用場景與注意¶
適合以下情況:
- 使用 dsh web profile。
- 需要接入 NewAPI 或兼容 OpenAI-compatible gateway 的模型服務。
- 希望通過 dsh 插件機制增加 provider route,而不是改 dsh 本體。
- 希望 API key 通過 web settings page 管理,而不是環境變量。
使用前注意:
- dsh 版本需要滿足 README 要求:
dsh ≥ 0.1.0-rc。 - 安裝後需要把插件加入
$DSH_HOME/profiles/web/package.json的dsh.profile.bundles,並重啓 dsh web。 - missing-peer warnings 是預期情況,不要手動補裝 peers,也不要啓用
autoInstallPeers。 - 無 tag 的
github:wenzetan/dsh-llm-newapi會安裝mainHEAD,不推薦用於 release use。 - API key 不讀環境變量;沒有 key 時,首次請求會返回
MISSING_CREDENTIAL。 - 模型發現只採納可服務
chat-completions的模型;embedding、rerank、ranker類模型默認按命名約定過濾。 - 它會作爲 dsh web profile 的 bundle 被加載運行;安裝前應檢查源碼與
MIT許可證。
鏈接¶
- 社區目錄頁:https://www.skillhub.cn/plugins/wenzetan/dsh-llm-newapi
- GitHub:https://github.com/wenzetan/dsh-llm-newapi