前言¶
如果你在用 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