@ztyss/dsh-llm-provider:接管 DSH 模型服务与设置界面

前言

在 DeepSeek Harness(DSH)里接多家模型供应商,通常要动 pi-ai 适配器、DeepSeek 适配器、模型选择器和 Models 设置页等多处能力;官方发版节奏与 @earendil-works/pi-ai 上新模型也不一定同步。若希望在同一套 Web 界面里改供应商、勾选模型、看额度,并在需要时用 npm 最新 pi-ai 而不等 dsh 升级,就需要把这几块能力集中替换并自行维护。下面介绍社区插件 @ztyss/dsh-llm-provider(维护者 Ztyss,分类:模型推理)如何全量接管上述模块,并提供配置与额度展示。

这是什么

@ztyss/dsh-llm-provider 是一个 DSH 插件:接管官方的 llm-pi-ai、llm-deepseek 适配器、ui-model-selection 模型选择器与 ui-settings-models Models 设置页,改为插件自维护的 pi-ai 桥接、模型选择器、额度查询与供应商管理界面。本仓库 fork 自 imchangchang/dsh-llm-provider,此后由 Ztyss 独立维护;README 标注当前版本 v0.2.6,安装走 main 分支。lib/ 构建产物随仓库分发,装完即用。

核心功能

pi-ai 桥接与「启用最新版」

设置页 Provider → pi-ai 桥接 提供 「启用最新版 pi-ai」 开关:让官方 pi-ai 适配器运行在从 npm 拉取的 @earendil-works/pi-ai 最新版上,替代 DSH 自带版本;pi-ai 支持新模型时可不必等待 dsh 发版。

拨 ON 时,从 npm registry 取 dist-tags.latest,经 sha512 校验、解压、依赖闭包与 import 体检后,落到安全区 $DSH_HOME/llm-provider-bridge/pi-ai/<版本>/;重启后桥接指向该副本,体检失败则自动回退,开关始终有兜底。拨 OFF 回退 DSH 自带版,已下载文件保留,再拨 ON 无需重下。开关偏好写在 $DSH_HOME/llm-provider-bridge/vendor-status.json,避免插件目录被包管理器整棵重建时偏好丢失。

触网仅与开关 ON 相关:拨开关时一次,以及每次启动检查一次(本地无就绪副本则补下载;已有副本也会查 npm 是否有更新)。拨 OFF 不触网。界面版本行展示当前在用版本及来源(DSH 自带 / npm 最新 / vendor),右侧在下载中、待重启等状态时给出说明;需重启由 piAiNeedsRestart 推导,下载中约 2s 轮询。

模型服务设置页

  • 中英双语:走 dsh 的 locale 机制,切换语言实时跟随。
  • 供应商卡就地编辑:显示名、API 地址、协议、凭据名在卡片上直接改;无改动时不显示编辑痕迹,有草稿才出现「保存修改 / 取消」。路由 ID 只读。
  • 模型清单即勾选:展开「模型(N)」勾选启用;保存走 POST /provider/set-models,服务端校验并拒绝内置路由;「跟随目录(还原)」即删除该键回到目录全量。
  • custom 路由候选:id 不在 pi-ai 目录里的路由,按 baseURL 映射到同端点目录 provider,候选来自目录模型;与手填同名以目录元数据为准。
  • 模型测试:未写 baseURL 的路由可回退 pi-ai 工厂官方默认端点(目录 id 才有)。
  • 保存即生效:新增、删除、勾选后本地详情索引、目录与额度快照同步更新,不必等宿主慢刷新。
  • 删除确认:含代价说明,并可「导出配置(YAML)」备份(密钥不导出)。
  • 能力徽章:支持 / 明确不支持 / 未知 三态;目录查不到的模型从路由声明与适配器补齐。

需要控制台会话的 provider(如 StepFun Step Plan 点数)将 Cookie 存在 $DSH_HOME/llm-provider-bridge/.cookies.yaml(单文件、点前缀),结构类似 credentials(version + 扁平键表),键为凭据 ref 名(如 STEPFUN_CONSOLE_COOKIE)。旧版 stepfun-console-session.json 首次读取会迁移并入新文件后移除。写盘时对种子指纹去重,避免静态凭据反复写回;种子须含 Oasis-Token 段,避免碎片覆盖已轮换的 jar。

模型选择器

官方模型选择器停用后,由本插件提供当前模型状态、/model 命令与模型目录状态机。/model 支持按供应商过滤、搜索,候选按供应商分组并显示额度/余额。modlens-<上游>、deepseek-modlens 等合成 provider 的 chip、输入框旁额度与 /model 面板按上游账户取数。选择器展开时会重拉模型详情,设置页新增的自定义模型可立即带上能力徽标。为实现官方 / 命令契约,插件提供 available(session):被寻址为子代理的会话不出现模型选择;实现不向外抛错,异常吞掉并放行。

稳定性与安全(摘要)

加载前校验 manifest、入口与官方 bundle 的 import 子路径;piAiCandidates() 按安全区 → vendor 遗留 → 内置 → dsh 自带顺序体检,第一个通过者入选。桥接工作区在包外 $DSH_HOME/llm-provider-bridge/,安装插件包内零链接(test/host-safety.mjs 回归)。宿主落在 app.asar 时,桥接副本内 specifier 改为归档入口的 file:// URL,避免 junction/symlink 进 asar 悬空;启用最新版 pi-ai 的 ON/OFF 两条路径均覆盖。

安装与启用

仓库为私有时需先配置 git 凭据(如 gh auth login)。安装命令如下(摘自 README):

dsh plugin --profile web add github:Ztyss/dsh-llm-provider   # 私有仓库,git 需凭据(gh auth login 即可)
dsh web     # 需要重启:插件树在进程启动时组装

装好后执行 dsh web;插件树在进程启动时组装,变更后需重启 Web 进程。若自行改源码,在仓库内执行 npm run build,并将 lib/ 与 src/ 一并提交(仓库刻意无 prepare 脚本,避免 pnpm 从 git 安装时失败)。

典型用法

  1. 安装插件并重启 dsh web,打开 Models / Provider 相关设置页。
  2. 在供应商卡片上就地填写 API 地址、协议与凭据名,保存后即生效。
  3. 展开某路由的「模型(N)」,勾选要启用的模型并保存;需要时用「测试」验证连通性。
  4. 若需 npm 最新 pi-ai,在 pi-ai 桥接 打开「启用最新版 pi-ai」,按界面提示完成下载后重启。
  5. 在会话中用 /model 按供应商浏览、搜索并切换模型,分组旁可查看额度/余额(依赖各 provider 的查询实现与凭据配置)。

仓库内自测(不需要运行 dsh):

npm test                      # 构建 + 18 步离线测试链
node test/host-safety.mjs     # junction 安全回归;建议在 node 24.14 与 DSH 自带运行时(≥24.15)各跑一遍

适用场景与注意

适合:希望在 DSH Web 侧统一管理多家 LLM 供应商与模型清单、查看额度,并可选跟踪 npm 最新 @earendil-works/pi-ai 的用户;接受用社区插件替换官方若干内置 UI 与适配器入口。

注意:插件以当前 dsh 进程权限运行,安装前应阅读 GitHub 仓库 源码与许可证,自行评估凭据、Cookie 与出站网络(pi-ai 最新版开关 ON 时会访问 npm)。DSH 社区插件目录为独立站点 SkillHub 插件页,与 DeepSeek / 幻方无官方从属关系;目录简介为「全量接管模型服务,并提供直观的配置方式与额度显示」,GitHub 星标数为 1(以目录/仓库公开信息为准)。

结尾

@ztyss/dsh-llm-provider 把 pi-ai / DeepSeek 适配、Models 设置与模型选择器收拢到一套自维护实现里,并补充额度展示与 pi-ai 版本桥接;安装与行为以 README 为准。更多信息见 SkillHub 目录页 与 GitHub:Ztyss/dsh-llm-provider。

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

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

小夜