dsh-rely:在 DSH 输入框上方常驻显示中转站余额

前言

在 DeepSeek Harness(DSH)里长时间对话时,API 中转站的余额往往要另开页面或手动 curl 才能看到。余额见底才发现限流或 402,是常见体验。社区插件 dsh-rely(维护者 xiaoming132887,分类:客户端)把「站点名 + 余额」收成聊天输入框上方一行状态条,数字颜色即阈值灯;余额由宿主进程定时拉取,Key 不进浏览器页面。

这是什么

dsh-rely 是面向 DeepSeek Harness 的客户端插件:在聊天输入框正上方独占一行,显示写死的中转站名称(默认「绿萝」)与当前余额。点击状态条打开底部设置抽屉,可配置 API Key、服务端刷新间隔与绿/黄线阈值(USD)。不挤占输入框,也不占用 token / 上下文条的位置。

仓库:https://github.com/xiaoming132887/dsh-rely
目录页:https://www.skillhub.cn/plugins/xiaoming132887/dsh-rely
许可证:MIT(见仓库 LICENSE);当前 package 版本 0.1.0。

核心功能

界面与交互

状态条极简:中转站名字 + 余额;余额数字颜色表示状态(高于绿线阈值 → 绿,介于绿线与黄线 → 黄,更低 → 红)。点状态条展开抽屉,三个主要输入:API Key、服务端刷新(秒)、绿线 / 黄线阈值 (USD)。

拉取与安全模型

余额由宿主进程(Node 侧 src/index.js)按间隔请求中转站,结果写入缓存;浏览器半区只读缓存,因此目标站点无需为页面开 CORS,API Key 也不进入前端 DOM。站点显示名与 base URL 在代码中写死(默认 绿萝 / https://zdxjl.com),界面不能改;Key 在抽屉保存一次后会锁定,持久化在 $DSH_HOME/rely/state.json(权限 0600),重启不变。

支持的余额接口

按顺序探测,第一个能解析出数字的胜出;全部失败则显示「查询失败」,不伪造数字。认证均为 Authorization: Bearer <sk-…>。

中转站类型 请求 取的字段
Sub2API GET {base}/v1/usage?start_date=&end_date=&timezone= remaining / quota.remaining(币种取 unit)
new-api POST {base}/api/user/self data.available_balance(美元)或 data.quota(500000 ≈ $1)
one-api GET {base}/api/user/balance balance
OpenAI 兼容额度 GET {base}/v1/dashboard/billing/credit_grants total_available

说明:hard_limit_usd 不是余额,插件不会用它顶替真实余额。

Key 来源顺序

  1. 抽屉里保存过的 Key(锁定后空保存不会清掉);
  2. 未保存时回退 DSH 凭据中的 ZDXJL_API_KEY($DSH_HOME/.credentials.yaml 的 refs,或同名环境变量)。

安装与启用

DeepSeek Harness 生态强调「一切皆插件」;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。安装前建议浏览仓库源码与 MIT 许可证——插件以当前 DSH 进程权限运行,会持有你配置的 API Key。

从 GitHub 安装

dsh plugin --profile <你的 profile 名> add github:xiaoming132887/dsh-rely

桌面端 profile 常见为 desktop,DSH Web 端一般为 web,以 $DSH_HOME/profiles/ 下实际目录为准。

装完后必须重启一次 DSH:宿主半区在进程启动时只加载一次,仅停用/启用插件不会重新导入 Node 模块。

典型用法

  1. 安装并重启 DSH 后,在聊天页输入框上方应出现状态条。
  2. 点击状态条,在抽屉填写 sk-… 的 API Key(或事先在 DSH 凭据中配置 ZDXJL_API_KEY)。
  3. 设置 服务端刷新(秒)(1–60,文档建议 30 秒以上,避免频繁拉用量被限流)。
  4. 设置 绿线阈值、黄线阈值(USD),保存后观察数字颜色变化。

需要立刻刷新余额时,浏览器会经宿主路由拉缓存;宿主提供 GET/POST /rely/balances(?force=1 或 POST 可现拉,有 1.5s 节流)。配置读写为 GET/POST /rely/config(Key 回传仅为打码预览)。

若使用非默认中转站,需改 src/index.js 中写死常量后重启:

const RELAY_NAME_LOCKED = '绿萝'
const RELAY_BASE_LOCKED = 'https://zdxjl.com'
const RELAY_KEY_ENV = 'ZDXJL_API_KEY'

RELAY_KEY_ENV 应对应你在 DSH 凭据里存的 Key 名称。

适用场景与注意

适合谁: 固定使用某一中转站(默认绿萝 / zdxjl.com)、希望在 DSH 对话界面内一眼看到余额与阈值告警的开发者。

注意:

  • 站点名与 URL 不可在 UI 修改,换站要改源码并重启。
  • 已锁定的 Key 需通过抽屉「更换 Key」流程更新;不带 unlockKey: true 的覆盖请求会被忽略。
  • 改 client/client.js 刷新页面即可;改 src/index.js 必须重启 DSH。
  • 排查:「查询失败」看抽屉红字(401/403 多为 Key 问题);「未配置」表示无可用 Key;/rely/* 全 404 多为宿主未加载,确认插件启用后重启 DSH。

结尾

dsh-rely 把中转站余额收到输入框上方一行,用宿主拉取、前端只读缓存的方式兼顾展示与安全。需要安装命令、接口表与排查表时,以 GitHub README 为准。

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

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

Xiaoye