Skip to content

v0.5.0 — 把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness

Choose a tag to compare

@che246 che246 released this 19 Oct 13:35
· 2 commits to main since this release

v0.5.0

加了路由就能直接拉模型:填好 URL 与 Key,点「拉取模型」就地请求网关;拉不到就把原因写在卡片里。

新增:按当前 URL / Key 现拉清单

  • 新接口 POST /probe:用界面此刻的 baseURL / apiKey 请求 …/models,不落盘、不注册,只看
    一眼能不能拉到
  • 新建路由时卡片里是 「拉取模型(按当前 URL / Key 去网关取)」;拉到后标题变成
    「模型选择(启用 N / 共 M)」并直接列出模型,可以立刻勾选
  • 已保存的路由不必重填 Key:界面只回传 id,宿主自己按凭据名去凭据库 / 环境变量取
  • 另有 重新拉取;现拉成功会标一句「清单来自 …(现拉,尚未保存)」
  • 改了 URL 或 Key,之前现拉的清单自动作废——不让旧清单冒充新地址的结果

错误一律说清楚

以前拉不到只是「空表」,现在是具体原因(probeErrorText):

情况 卡片上看到的
401/403 HTTP 401 Unauthorized——网关拒绝了这把 Key(不对、过期或没有权限):…
端口没开 端口没有在监听(ECONNREFUSED)——检查地址与端口
域名解析失败 解析不了 … 的主机名(ENOTFOUND)——检查域名或网络
没响应 超时(网关没有响应)
404 这个地址下没有 /models,确认 URL 是否指到网关的 /v1 根
Fetch 规范禁用端口 这个端口被 Fetch 规范列为禁用端口(bad port)——换一个端口
通了但没模型 通了,但没有解析出任何模型(返回里没有 data/models 数组)
URL 本身不合法 请先填 URL… / URL 不合法:… / URL 只支持 http/https,收到 ftp:

Node 的 fetch 在双栈下会抛 AggregateError(v4/v6 各一条),错误码埋在 errors[] 里——这里会把
各层 code 都翻出来,必要时退回底层 message,而不是只留一句 fetch failed。同一套文本也用在后台
刷新上,所以状态行里的错误同样更具体。

验证

node test/verify.mjs → 141/141(新增 19 项):

  • /probe:用 URL+Key 拉到清单、条目与 /status 同形、回报请求地址
  • 错误分支:错 Key(401)、端口没开(ECONNREFUSED)、非 http(s)、没填 URL
  • 已保存路由不带 Key 也能拉(自动用凭据库那把)
  • 界面:新路由显示「拉取模型」、没填 URL 点它显示原因、填 URL 后拉到 2 个模型并列出、标题变成
    「启用 2 / 共 2」、标记「现拉,尚未保存」、401 时把原文显示在卡片里、失败不残留旧清单、换 URL 后回到「拉取模型」

node test/verify.mjs --offline → 28/28。

顺带修的一处测试基础设施

React 桩的 useEffect 之前忽略依赖数组,导致每次渲染都重跑「拉 /status」,异步回来会把用户
刚编辑的草稿覆盖掉(表现为「加了一行又消失」)。现在按 deps 做浅比较,与真实 React 一致——这类
假阴性不会再出现。

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.0/dsh-workbuddy2api-connect-0.5.0.tgz
copy dsh-workbuddy2api-connect-0.5.0.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.5.0.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.0/dsh-workbuddy2api-connect-0.5.0.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。