Dsh-OtherAPI:在 DSH 0.1.7 下一键接入 OpenAI 兼容 API

前言

DeepSeek Harness(DSH)把模型、工具、界面拆成可插拔模块。实际开发里,除了官方通道,还常要把第三方 OpenAI 兼容端点接进 Harness,并区分「普通对话」和带 reasoning/thinking 的模型。手工改 YAML、对齐 DSH 各版本的 settings 协议,容易踩坑:保存失败无提示、密钥写进配置、旧版 installSection 与新版 entry-config 不兼容等。

下面介绍社区插件 Dsh-OtherAPI(维护者 ShukebtAb,分类:模型推理)。它在 Web 设置里提供 OtherAPI 面板,面向 DSH 0.1.7-rc.2 的 entry-config 设置模型,一键配置任意 OpenAI 兼容 API,并支持思考模式相关选项;实现上基于 dsh-plugin-thinking-api@0.1.8(MIT,作者 qjf44)改造。插件目录页:SkillHub - Dsh-OtherAPI;源码与说明:GitHub - ShukebtAb/Dsh-OtherAPI。

这是什么

Dsh-OtherAPI(npm 包名 dsh-other-api,当前版本 0.1.0)是 DeepSeek Harness 的 Web 侧插件:在设置中集中管理多个 OpenAI 兼容 provider(base URL、模型列表、是否启用、是否走思考模式),并把配置写入 DSH 0.1.7 要求的 entry-config 形态。package 描述中还提到:在接入第三方端点时,会规避 developer 角色被端点以 content_filter 等原因拒绝的问题。

与 0.1.5/0.1.6 时代手写 patch 或旧 thinking-api 插件不同,本仓库明确移除了已废弃的 installSection / setSource / onChange 兼容层,改用 Config schema、settings.configure({ auto: false }),以及 loader/volatile-update 事件;远端 settings/mutate 按 0.1.7 协议补齐第三参 expectedRevision,并对保存/删除/探测做了完整的 try/catch/finally,避免远端抛错时界面按钮一直灰、无反馈。

核心功能

设置面板(Web → 设置 → OtherAPI)

README 在仓库 docs/ 下提供了设置面板截图(不随 npm 包发布)。面板侧能力包括:

  1. Provider 管理:配置 OpenAI 兼容 API 的接入信息;模型行使用两个复选框——「启用」决定是否写入配置,「思考」标记该模型是否按思考模式处理。
  2. 列表内复制 provider:一键复制已有 provider;route 自动追加 -copy 并递增避让,apiKeyEnv 沿用源项。
  3. 密钥与配置分离:配置 YAML 里只保存环境变量引用名(如 apiKeyEnv: GOODAPI_API_KEY),不在文件里写明文 key;实际密钥在 OtherAPI 面板填写,由 credentials 服务写入 $DSH_HOME/.credentials.yaml 的 refs 段。引用名由 route 自动派生(例如 goodAPI → GOODAPI_API_KEY)。

相对上游 thinking-api 的适配要点

  • 设置接入改为 0.1.7 的 entry-config 模型。
  • 内联 deepEqualJson,不再依赖 dsh-util-values 运行时。
  • 密钥解析:在有 credentials 服务时只走 credentials,不会「失败再读环境变量」;无 credentials 服务时才从 launch environment 读环境变量。这是有意设计,避免在生产部署里用环境变量覆盖面板写入的密钥。

安装与启用

DSH 生态强调「一切皆插件」;SkillHub 等目录是社区站点,与 DeepSeek / 幻方无官方从属关系。安装前建议浏览仓库源码与 MIT 许可证,并理解插件以当前 DSH 进程权限运行。

从 GitHub 安装(README 推荐):

dsh plugin --profile web add github:ShukebtAb/Dsh-OtherAPI

本地目录调试:

dsh plugin --profile web add file:/绝对路径/Dsh-OtherAPI

运行环境要求 Node.js >= 20;peerDependencies 指向 DSH 0.1.7-rc.x 系列(<0.1.8)。

典型用法

1. 安装插件并打开 Web 设置

执行上述 dsh plugin --profile web add ... 后,在 Web 界面进入 设置 → OtherAPI,新增或编辑 provider(base URL、模型等)。

2. 在面板填写 API Key

不要把密钥写进 provider 的静态配置。在 OtherAPI 面板填写 key;保存后由 credentials 服务按引用名写入 $DSH_HOME/.credentials.yaml。

配置文件中仅保留引用,例如:

providers:
  goodAPI:
    apiKeyEnv: GOODAPI_API_KEY    # 引用名,不是密钥本身

3. 勾选模型并保存

对每个模型勾选「启用」;需要 reasoning/thinking 行为时勾选「思考」。保存、删除、探测会走远端 settings API;0.1.7 下若 mutate 参数不全,会收到明确协议错误(本插件已按三参协议实现)。

4. 在 Harness 中选择模型

经过上面的步骤,模型选择器应能列出已启用的第三方模型,与 DSH 内置流程一并使用(具体 UI 以当前 DSH Web 版本为准)。

版本兼容与注意事项

插件版本 DSH 版本 状态
0.1.0 0.1.7-rc.2 运行时验证通过(启动、设置面板、模型选择器)
0.1.0 0.1.5 – 0.1.6 不支持(缺少 volatile、settings.configure 等 API)
0.1.0 0.1.8-rc.1 及以后 未验证(peer 上界 <0.1.8,需时再放宽)

适合谁:已在或计划使用 DSH 0.1.7-rc.2、需要快速挂多个 OpenAI 兼容端点,并要在 UI 里区分普通模型与思考模型的开发者。

注意:

  • 0.1.5/0.1.6 安装会报 volatile is not a function 或 child.settings.configure is not a function,应升级 DSH 或换用对应版本的其它插件。
  • 正常带 credentials 服务的部署下,不要指望用同名环境变量覆盖面板密钥。
  • 问题反馈可走 GitHub Issues:https://github.com/ShukebtAb/Dsh-OtherAPI/issues

结尾

Dsh-OtherAPI 把「OpenAI 兼容 API + 思考模式 + 0.1.7 entry-config」收成 Web 里的一键配置流程,并修正了旧实现在 settings 失败时的 UI 卡死问题。若你的 Harness 运行在 0.1.7-rc.2,可从 SkillHub 目录页或 GitHub README 按官方命令安装,在 OtherAPI 面板完成 provider 与密钥管理后再选模型推理。

  • 目录页:https://www.skillhub.cn/plugins/ShukebtAb/Dsh-OtherAPI
  • GitHub:https://github.com/ShukebtAb/Dsh-OtherAPI
羽毛球分组比赛记分
小程序二维码

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

小夜