dsh-plugin-ds-api-usage
DeepSeek Harness plugin: real-time DeepSeek API balance and usage timeline (cost / tokens / request count), rendered in a settings page.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Sev7een/ds-api-usage说明文档
阅读完整 README ↗DHS API Usage — DeepSeek Harness 插件
English | 简体中文
安装后,打开 DeepSeek Harness 的设置 → API用量页面,即可查看 DeepSeek API 用量。页面展示账户余额、最近 24 小时的估算消费金额、Token 数量与 API 请求次数,并以类似 DeepSeek 官方平台用量页的时间线柱状图呈现。
功能特性
- 💰 余额卡片 — 总余额(赠送 / 充值分项)+ 可用状态徽标,数据来自官方
GET /user/balance接口。 - 📊 指标卡片 — 24h 估算消费(人民币 CNY)、Token 数量(输入 / 输出分项)、API 请求次数。
- 📈 时间线图表 — 最近 24 小时按小时聚合的消费金额柱状图(悬停查看精确数值)。
- 🔄 实时刷新 — Host 端每 60 秒刷新余额;页面每 30 秒轮询,并提供手动刷新按钮。
- 🔑 无需额外配置密钥 — 复用部署中已有的
DEEPSEEK_API_KEY凭证(通过 harness 的credentials服务)。
架构
┌─────────────────────────────── Host(Node.js)───────────────────────────────┐
│ src/index.js │
│ • ctx.on('llm/stream', ...) ← waterfall:将每次真实模型调用的 │
│ provider 上报的 TokenUsage(输入/输出/缓存命中/缓存未命中, │
│ 已是互斥分项,与 DeepSeek 计费口径一致) │
│ 折叠进内存中的按小时 + 按天桶 │
│ • fetchBalance() ← credentials.resolve('DEEPSEEK_API_KEY') │
│ → subprocess curl → https://api.deepseek.com/user/balance │
│ (web.fetch 无法携带 Authorization 头,故用 curl) │
│ • webServer.register('/ds-api-usage/snapshot') ← 供 Client 读取的 JSON 端点 │
└──────────────────────────────────────────────────────────────────────────────┘
│ fetch('/ds-api-usage/snapshot')
▼
┌────────────────────────────── Client(浏览器)───────────────────────────────┐
│ client/bundle.js(web bundle;client/index.js 为动态插件源码) │
│ • slots.inject('settings.section') → 新增设置页「API用量」 │
│ • 余额卡片 + 3 张指标卡 + 24h 时间线柱状图 │
│ • 每 30 秒通过 ctx.interval 自动刷新 │
└──────────────────────────────────────────────────────────────────────────────┘
数据说明
- Token 数量是真实的 — 来自每次流式模型调用的
usagechunk(StreamChunk的type: 'usage'、TokenUsage),与 harness 自身用于会话统计的 provider 上报数据完全一致。 - 消费金额为估算 — 人民币(CNY)按 DeepSeek 官方公开价(中文文档,模型 & 价格)在 ()中按模型计算: