前言¶
用 DSH(DeepSeek Harness)接 DeepSeek API 的开发者,大多要回答两个问题:账户里还剩多少额度,这段时间真实消耗了多少 token。前者要去 DeepSeek 平台控制台查,后者要么翻会话日志手动算,要么靠估算——而 DeepSeek 并没有公开的用量接口(/user/usage 实测返回 404),估算值并不可靠。
dsh-api-balance 把这两件事做成了 DSH 设置面板里的一个模块:余额与可用状态直接查官方接口,token 用量从本地会话日志里聚合每次调用的真实 usage。整个过程 API Key 只存在于后端,浏览器只会拿到余额数据。
下面介绍它的功能、原理、安装方式与注意事项。
这是什么¶
dsh-api-balance 是由 gaozhiwei521 维护的 DSH 插件,版本 0.1.0,MIT 许可证。它做的事情很集中:在 DSH「设置」面板新增「API 余额」模块,实时查询已配置供应商(DeepSeek)的账户余额、可用状态与真实 Token 用量,支持手动刷新。
核心功能¶
- 「设置 → API 余额」界面:可用额度大数字 + 可用状态徽章 + 用量卡片(累计/今日 Tokens、会话数、用量记录),支持手动刷新
- 用量为真实数据:消耗数据来自本地会话日志中每次调用的真实 token usage(输入/输出/缓存/推理),不是估算
- API Key 只存在于后端,浏览器只会拿到余额数据
- 账户无赠送余额(0)时自动隐藏赠送余额项
- 样式使用全局
--dsw-alias-*主题令牌,与暗色主题一致
工作原理¶
插件分前后端两层:
| 层 | 实现 |
|---|---|
后端 lib/index.js |
注册两条回环路由:GET /dsh-balance/query 通过 credentials.resolve() 读取 DEEPSEEK_API_KEY,调用 {baseURL}/user/balance;GET /dsh-balance/usage 聚合本地会话日志中的真实 token 用量,带 60s 缓存 |
前端 lib/client.js |
注册 settings.section 槽位(id 为 api-balance,label 为「API 余额」),渲染余额、状态与用量界面 |
baseURL 与 apiKeyEnv 跟随「设置 → 模型」中 llm-deepseek 配置段的覆盖。如果你在模型设置里改过 Key 引用或 baseURL,插件会自动跟随,不需要另外配置。
安装与启用¶
插件已声明为 DSH bundle(patch 指向 ./extensions/dsh/cordis.patch.yml,client 平台为 web),推荐用 DSH 原生插件指令从 GitHub 安装到 web profile:
dsh plugin --profile web add github:gaozhiwei521/Deepseek-Harness-Api-monitor
装完需要重启 DSH(退出「DSH 对话」再打开),然后在「设置 → API 余额」即可看到界面。
迁移注意:如果之前用过下面的手动 Copy-Item 安装方式,请先移除 cordis.patch.yml 中的 api-balance insert 块,并删除 ~\.dsh\profiles\node_modules\dsh-api-balance\,避免与 bundle 双份注册。
手动安装与卸载¶
DSH 升级后插件可能丢失,这时可以用旧方式手动安装:
# 1) 把包放到 profiles\node_modules
Copy-Item 'E:\deepseekwork1\dsh-api-balance\package.json' "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-api-balance\" -Force
Copy-Item 'E:\deepseekwork1\dsh-api-balance\lib' "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-api-balance\lib" -Recurse -Force
# 2) 确认 cordis.patch.yml 末尾有 api-balance insert 块(升级若覆盖则重新追加)
# 3) 重启 DSH(退出「DSH 对话」再打开;或杀掉后端进程由桌面壳看门狗自动拉起)
上面命令把 package.json 和 lib 目录复制到 DSH 的 profiles 目录,再手动确认补丁文件后重启生效。
卸载只需一条命令:
dsh plugin --profile web remove dsh-api-balance
如果是旧手动方式装的,卸载分三步:1. 删除 cordis.patch.yml 中 api-balance 的 insert 块;2. 删除 ~\.dsh\profiles\node_modules\dsh-api-balance\;3. 重启 DSH。
测试¶
源码目录下带两组测试,分别覆盖后端逻辑与前端模块结构:
node 'E:\deepseekwork1\dsh-api-balance\test\unit.test.mjs' # 后端逻辑(13 项)
node 'E:\deepseekwork1\dsh-api-balance\test\client-load.test.cjs' # 前端模块结构
适用场景与注意¶
适合的用户:在 DSH 里接 DeepSeek API,想在界面里直接看余额与消耗,不想登录平台控制台、也不信任估算值的开发者。
使用前注意:
- 仅支持 DeepSeek 官方账户余额接口,其他供应商的余额接口暂未接入
- 默认读取
DEEPSEEK_API_KEY;若在「设置 → 模型」中改过 Key 引用或 baseURL,插件自动跟随 - 安装后必须重启 DSH,才能在「设置 → API 余额」看到界面
- 插件以当前 dsh 进程权限运行,会读取本机凭据(如
DEEPSEEK_API_KEY)与本地会话日志。安装前建议自行查看源码与许可证(MIT),确认可靠后再装
小结¶
dsh-api-balance 解决的问题很具体:不离开 DSH 就能看到 DeepSeek 账户余额与真实 token 消耗,Key 不出后端。如果你在用 DSH 接 DeepSeek,可以装上试试。
- 目录页:https://www.skillhub.cn/plugins/linshufan21/dsh-Api-monitor
- GitHub:https://github.com/gaozhiwei521/Deepseek-Harness-Api-monitor
最后说明:上面的目录页是社区维护的独立站点,与 DeepSeek / 幻方没有官方从属关系。