DSH 余额面板插件:实时监控 OpenCode Go 与通用配额

在使用 DeepSeek Harness (DSH) Web UI 进行开发时,需要频繁确认当前会话的 Provider 配额或现金余额。手动切换页面或查看控制台既低效又不直观。该插件在 DSH Web 界面右侧边缘添加了一个常驻浮动卡片,根据当前会话的 Provider 自动切换数据源。

插件定位

这是由 MST19711 维护的客户端插件,核心是一个可扩展的后端架构。它不仅支持 OpenCode Go 的订阅配额,还兼容 Zhipu 和 DeepSeek 的按量计费余额。当当前会话使用的模型命中某个已接入后端时,会在右侧边缘显示一张常驻小窗;切换到未接入的 provider 时自动隐藏。

核心功能

  1. 浮动卡片
    显示在 DSH Web UI 右侧边缘。面板内容按当前 Provider 自动选择,同一时刻只显示一张。卡片包含标题、当前模型名、数据行以及更新时间戳。

  2. 自动选择机制
    插件内置 OpenCode Go、Zhipu、DeepSeek 三种后端。根据当前会话的 Provider ID 或 BaseURL 自动匹配对应后端。

  3. OpenCode Go 订阅配额
    支持订阅配额展示,包含 5h 滚动、本周、本月三个维度的窗口。
    * 展示内容:剩余百分比、重置倒计时、进度条。
    * 颜色提示:剩余比例 ≤30% 显示橙色,≤10% 显示红色。

  4. 通用余额后端
    * Zhipu:支持按量计费现金余额(可用余额、累计充值、累计消费)。赠送和冻结余额在非零时出现。徽章圆点按绝对余额提醒(<¥10 红色,<¥50 橙色)。
    * DeepSeek:支持按量计费现金余额。展示可用余额、其中充值、其中赠送。当账户不可用(is_available: false)时,会追加状态行。徽章圆点按币种阈值提醒(CNY <¥10 / <¥50,USD <\(2 / <\)10)。

安装与验证

安装

使用官方提供的安装脚本,默认安装到 web profile:

bash install.sh

验证

运行验证脚本可以测试后端逻辑。脚本支持离线模式(使用假上下文和假上游)和在线模式(读取 ~/.dsh/.credentials.yaml):

node test-deepseek-backend.mjs          # 离线验证
node test-deepseek-backend.mjs --live   # 在线验证

扩展与安全

扩展新供应商

插件采用多后端可扩展架构,客户端无需改动即可扩展。在 lib/index.js 的 BACKENDS 数组中添加后端对象即可:

{
  id: 'my-provider',
  displayName: 'My Provider',
  cache: new TTLCache(60_000),
  matchesProvider(id, node) { ... },
  async resolvePanel(ctx, providerId, node) {
    return {
      ok: true,
      panel: {
        title: 'My Provider',
        rows: [ { label: '剩余', value: '…', bar: { fill: 42, tone: 'warn' } } ],
        chip: { text: '…', tone: 'ok' },
        foot: '…',
      },
    };
  },
}

安全与防护

  • API Key 安全:API key 仅经 DSH credentials 服务在服务端进程内解析,key 永不进入浏览器、不写入日志。
  • 独立缓存:各后端独立缓存。OpenCode Go 缓存 15s,Zhipu 和 DeepSeek 各缓存 5min。失败不缓存,下次轮询重试。
  • 路由防护:路由具备同源/loopback 防护,跨站读取返回 403。

升级说明

从旧版本升级时,需先移除旧包名,并替换 dsh.profile.bundles 中的包名,重启 DSH 后生效。

总结

该插件为 DSH 用户提供了直观的实时数据反馈,解决了在 Web UI 中监控配额和余额的痛点。更多细节请参考 GitHub 或 社区目录。

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

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

小夜