dsh-provider-studio: DSH Supplier Management Page

前言

用 DSH(DeepSeek Harness)接第三方模型供应商时,很多人先会遇到两件小事:设置里的 Models 页只能写不能读,API Key 保存后不再回显;更麻烦的是保存动作走的是 schema 投影,模型上没有声明过的字段会被直接丢掉,于是想调一个 reasoningEfforts 或某个兼容开关,只能自己去翻 cordis.patch.yml 手写。

下面介绍的 realchendahuang/dsh-provider-studio 就是针对这个缺口做的第三方设置页。它不改变 DSH 本身的模型调用逻辑,而是在设置面板里另开一页,直接读写 llm-pi-ai.providers 和 DSH 凭据服务。

这是什么

dsh-provider-studio 由 realchendahuang 维护,是一个面向 DSH 的第三方供应商管理插件,分类属于模型推理。它把 DSH 自带的 Models 设置页换成自己的「供应商管理」页,界面分两级:一级是供应商列表,二级是所选供应商的编辑页。

它解决的问题很集中:让密钥可以看见和管理、让模型未声明的字段不被丢弃、让连通性测试跑的是真实请求路径,以及免去新建供应商时查 Base URL 和协议的功夫。

核心功能

下面这些能力都来自仓库 README。

密钥可见、可管。 官方面板只写不回显,这个插件默认掩码,点一下可显示,支持复制、更换、清除;清除前会弹确认。密钥只写入 DSH 凭据服务,不写进 llm-pi-ai 配置,也不落在插件自己的文件里。

参数按归属分开,且不被 schema 投影丢掉。 插件直接解析 profile 里的原始配置,而不是 schema 投影后的结果。模型自己的 reasoningEfforts(思考等级)和 compat(兼容开关)放在模型弹窗里,供应商自己的请求头、传输与重试、图片预算放在供应商页里。

一个页面管完供应商和模型。 可以新增、重命名、删除供应商,编辑 Base URL、协议、密钥,模型增删改,单模型连通性测试,以及从端点批量拉取模型。

新建即可读模型。 填好 Base URL 和密钥后点「读取模型」,插件会向端点要一份模型列表,从下拉里挑首个模型即可,不必先去别处查 model id。

配置可导出。 标题右侧 … →「复制配置」,导出一段可直接贴进 cordis.patch.yml 的 YAML,只带 apiKeyEnv 凭据名,不含密钥明文。

探针与真实请求一致。 测试和拉取按 pi-ai 的实际路径拼 URL,并把「请求设置 → 请求头」一起发出去,避免 DSH 能调通但插件报失败的情况。

内置供应商模板。 读入 models.dev 全量目录里的 223 个模板(常用 / 国内 / 海外 / 网关),带品牌 logo,选一下就把 Base URL、协议、环境变量名填好。

随时退回官方页。 官方 Models 页由 bundle patch 隐藏,改一行配置就能恢复,不删包、不影响 llm-pi-ai / llm-deepseek 适配器。

安装与启用

仓库里已经带有构建好的 client.js,安装不需要先构建。DSH 按 profile 隔离插件,命令里的 --profile 要和实际启动的那个一致。

dsh plugin --profile desktop add github:realchendahuang/dsh-provider-studio

完整地址写法是:git+https://github.com/realchendahuang/dsh-provider-studio.git。想固定版本可带 commit:github:realchendahuang/dsh-provider-studio#<commit-sha>。

安装后需要完整退出并重新启动 DSH,而不是只刷新窗口:Host 端代码只在 DSH 启动时加载,刷新窗口只会重载浏览器端的 client.js。首次安装后如果测试报 404 或 transport failure,说明 Host 端还是旧的,重启 DSH 即可。

确认是否安装成功:

dsh plugin --profile desktop why dsh-provider-studio

能列出这个包,说明依赖和 bundle 都注册了。

卸载则用:

dsh plugin --profile <profile> remove dsh-provider-studio

重启 DSH 后官方 Models 页会恢复。

仓库 package.json 显示的版本是 1.1.2,engines.dsh 要求 >=0.2.1-rc.5,许可证为 MIT。README 注明该插件在 DSH 0.2.1-rc.5 与 0.2.2-rc.1 上实测。

典型用法

打开后,设置 →「供应商管理」。页面列出当前 profile 的所有 llm-pi-ai 供应商,另有一个内置的 DeepSeek 官方行(来自 llm-deepseek,可编辑、不可删除)。

新建供应商的步骤:

  1. 列表底部点「+ 新增供应商」。
  2. 选模板(按分组浏览或搜索名称 / 域名),或选「自定义供应商」从空白开始。
  3. 填写表单,注意 Base URL 的填法随协议变化:
OpenAI 兼容      /chat/completions      填到 /v1,如 https://api.openai.com/v1
OpenAI Responses  /responses             填到 /v1
Anthropic Messages /v1/messages          填根地址,如 https://api.anthropic.com,/v1/messages 由客户端补

Python 式的误填 …/v1 会在输入框下方提示。API Key 可以留空稍后补,但填了才能用「读取模型」。

  1. 点「创建」,成功后自动进入详情页。

拉取模型时,插件用当前 Base URL + 密钥 + 请求设置里的自定义请求头去取列表(OpenAI 系 GET {baseURL}/models,Anthropic 为 GET {root}/v1/models)。弹窗里可搜索、全选或逐个勾选,点「加入所选」并入模型表。注意这时还只是草稿,点「保存」才写盘。

模型行右侧的「测试」会发一个真实最小请求:聊天类协议发 max_tokens: 1,Responses 类发 max_output_tokens: 16,20 秒超时。成功显示 ✓ 延迟,失败显示红色徽章,鼠标悬停看具体 HTTP 错误,结果约 6 秒后自动消失。

模型高级参数里,思考能力三选一:继承内置目录(默认,不在配置里声明)、不支持思考(写 reasoningEfforts: false)、自定义等级(逐条声明「等级 → 实际发送值」)。至少要保留一个 off 以外的等级,否则保存会被拦下。兼容开关 compat 的字段随协议变化,OpenAI 兼容 19 项、Responses 4 项、Anthropic 7 项,不设置就交给 pi-ai 自动判断。

导出配置得到的是这种形状:

- id: llm-pi-ai
  name: "@deepseek-ai/dsh-llm-pi-ai"
  config:
    providers:
      my-gateway:
        displayName: My Gateway
        api: openai-completions
        baseURL: https://api.example.com/v1
        apiKeyEnv: MY_GATEWAY_API_KEY
        models: ...

内容取自 profile 的 patch 文档而不是 schema 投影,手写的 reasoningEfforts、compat、请求头都会原样带出来;内置 DeepSeek 行同样可导出,形状是 - id: llm-deepseek。本机已有同名条目时需要手动合并。

适用场景与注意

适合的场景大致是:需要接多个第三方供应商或网关、依赖未在 schema 里声明的模型字段、希望密钥在界面上可管理、以及不想反复手改 cordis.patch.yml 的 DSH 用户。

使用时需要注意几点。插件是第三方页面,替代的是官方 Models 页而不是适配器本身,卸载后官方面板即可恢复。它以当前 DSH 进程的权限运行,能读取配置、凭据服务并发起模型请求,因此安装前应打开仓库核对源码,确认 index.js、client.js、cordis.patch.yml 的行为与预期一致,并留意许可证(仓库标注 MIT)。安装和更新都要求完整重启 DSH。

结尾

dsh-provider-studio 的价值在于把供应商、密钥、模型这三类日常改动收进一个页面,同时保留配置文件里的原始字段。它没有改变 DSH 的插件机制,只是把原来需要手改 patch 的工作接进了设置界面。

目录页:https://www.skillhub.cn/plugins/realchendahuang/dsh-provider-studio

仓库:https://github.com/realchendahuang/dsh-provider-studio

社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

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

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

Xiaoye