Back to home

chenzhexii

dsh-api-usage

在 DSH Web 界面侧边栏底部提供常驻小部件,实时展示 DeepSeek API 的当前余额、今日消费、Token 用量与请求次数,并附 24 小时消费柱状图,点击即可直达 DeepSeek 充值页。

Stars
1
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

dsh-api-usage

DeepSeek Harness (DSH) 插件:实时 DeepSeek API 余额与用量面板。

在 DSH Web 界面的**侧边栏底部(设置按钮上方)**提供一个常驻小部件:当前余额、今日消费(余额实测)、今日 Tokens、请求数、24h 消费柱状图,点击展开/收起,一键直达 DeepSeek 充值页。

特色

  • 余额差值计费:每 60 秒查询一次 /user/balance,相邻两次余额之差即真实消费(不再依赖价格表估算),精度 ¥0.01
  • 刷新即同步:点「↻」强制刷新余额的同时,立即结算差值更新今日消费(无需等下一个轮询周期)
  • 持久化:今日消费 / Tokens / 请求数 / 余额基准全部落盘($DSH_HOME/.ds-api-usage-state.json),跨进程重启与插件重挂载都不清零;仅本地 0 点按"今日"语义归零
  • 响应式小部件:侧边栏宽/折叠(rail)两态自适应;窄窗口(<768px)自动精简
  • 失败兜底:余额查询失败时显示最近一次余额(缓存标记),10 秒内自动重试,不显示吓人的报错
  • 充值直达:蓝色实心「充值」按钮,直接调用 window.open 打开 DeepSeek 充值页(绕过侧边栏的链接拦截)
  • 路由保护/ds-api-usage/snapshot 仅限环回地址访问

安装

dsh plugin --profile web add github:chenzhexii/dsh-api-usage

重启 dsh web 后,刷新页面即可在侧边栏底部看到小部件。

功能

  • 💰 余额 — 总余额 + 可用状态徽标,每 60 秒自动刷新,来源:官方 GET /user/balance
  • 📊 今日消费 — 本地 0 点起,按余额差值实测(误差 ≤ ¥0.01),非估算
  • 🔢 今日 Tokens / 请求 — 来自每次模型调用的 usage 上报(输入/输出分项)
  • 📈 24h 柱状图 — 按小时汇总的真实消费(悬停看精确值)
  • 🎨 响应式 — 折叠成 56px 窄栏时只显示余额;窄屏隐藏"今日"文字
  • 🔄 手动刷新 — 同步更新余额与今日消费
  • 💳 充值 — 蓝色实心按钮直达 https://platform.deepseek.com/top_up

工作原理

Host (Node.js)                              Browser
  llm/stream 瀑布监听 → 小时/天 token 桶 ─┐
  每 60s 轮询 /user/balance              │  fetch('/ds-api-usage/snapshot')
  相邻余额差 → 今日消费 + 按小时归集 ────┤→  侧边栏小部件渲染
  状态落盘(token 桶 + 消费 + 基准)──────┘  (每 60s 自动轮询 + 手动刷新)
  • Token 计数:来自 provider 上报的 usage chunk(输入/输出/缓存命中/缓存未命中已是互斥分项)
  • 消费金额:余额实测上次余额 − 当前余额 累加),价格表估算保留为 estimatedCny 参考
  • 数据保留:小时桶 48h、天桶 14 天,自动滚动淘汰

配置

无需配置,开箱即用(复用部署已有的 DEEPSEEK_API_KEY 凭据)。可选调整:

  • 轮询间隔:改 src/index.jsctx.interval(..., 60000)
  • 状态文件位置:$DSH_HOME/.ds-api-usage-state.json

环境要求

  • DeepSeek Harness Web profile(dsh web),dsh plugin 可用 pnpm
  • Node ≥ 20(宿主侧)
  • 已配置 DEEPSEEK_API_KEY 凭据
  • Host 上可用 curl(用于余额接口,经 subprocess seam 调用)

开发

npm run check   # 语法检查宿主与客户端两端

许可证

MIT