DSH Web 的 DeepSeek API 用量仪表盘:基于会话日志统计每日缓存命中/未命中输入与输出 Token,并展示分模型费用估算、账户余额、7 日趋势和 composer 用量摘要。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:izz-BLUE/dsh-deepseek-usage-dashboard
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
简体中文 | English
一个独立、可安装的 DeepSeek Harness(DSH)Web UI 插件,用于:
- 从会话日志统计本 DSH 实例每日 DeepSeek Token 用量(仅精确 usage:缓存命中/未命中输入、输出、推理);
- 基于用户可编辑的分模型价格表估算今日费用;
- 监控 DeepSeek 账户余额(仅 Host 端调用,默认每 10 分钟刷新,支持手动刷新);
- 在 Web GUI 中以仪表盘、composer 底部统计行与设置卡片展示。
效果预览

仅基于官方 @deepseek-ai/* NPM SDK 开发;不修改任何 DSH 源码;通过 cordis.patch.yml + profile 插件机制安装。插件全程不调用任何 LLM 接口:统计、刷新、展示、余额查询零模型调用,空闲运行与刷新页面产生的 Token 为 0。
功能
- 每日统计(Asia/Shanghai 自然日):缓存命中输入、缓存未命中输入、输出、推理(存在时)、输入合计、Token 合计、请求数、失败请求数、缓存命中率。
- 只统计真实的 DeepSeek 流量:provider 路由为
deepseek-official(可配置)且有效 base URL 主机为api.deepseek.com——自定义网关不会污染统计。 - 流式安全:只有最终 usage 到达才落库;流式估算值从不写入每日精确统计。
- 幂等 + 持久化:SQLite(Node 24 运行时内置
node:sqlite),UNIQUE (session_id, turn, step)约束 +INSERT OR IGNORE——投影重放、流式 usage 重复到达、重启后重扫、重复提交均不会重复累计;跨重启保留;损坏文件自动移出并重建。 - Decimal 金额:费用以整数最小单位(1e-6 币种单位)BigInt 累计,禁止浮点直接累计。价格按模型配置(
cacheHitInputPricePerMillion/cacheMissInputPricePerMillion/outputPricePerMillion/currency/effectiveFrom),支持*兜底,设置页可改;界面显示价格版本与更新时间,所有金额明确标注为「估算费用,非官方账单」。 - 余额:仅 Host 端
GET https://api.deepseek.com/user/balance(base URL 固定、10 秒超时、401/402/429/5xx/超时/畸形响应分别处理);失败时保留最后一次成功数据并显示 stale 状态;支持手动刷新。API Key 绝不进入浏览器、日志或请求参数。 - Host HTTP 接口:
/api/deepseek-usage/stats与/api/deepseek-usage/refresh,复用 DSH 浏览器信任篱笆(Host / Origin / Sec-Fetch-Site 校验,按官方 api-request-trust 语义实现)+ loopback 套接字校验;余额明细仅限 loopback;POST 要求application/json;限制请求体大小;不提供任意 URL/文件/命令代理。 - Web UI:侧边栏「API 用量」入口;仪表盘(今日卡片、缓存命中/未命中对比条、命中率、今日估算费用、余额(总额/赠送/充值)、最近 7 天趋势、最后更新时间、数据来源说明);
conversation.composer.dock紧凑统计行(今日:命中 X · 未命中 X · 输出 X · 估算 ¥X · 余额 ¥X);完整中英文 locale;仅使用 DSH CSS Token(适配亮/暗主题);不使用dangerouslySetInnerHTML。
安装
dsh plugin --profile web add https://github.com/izz-BLUE/dsh-deepseek-usage-dashboard.git
重启 dsh web 后,侧边栏出现「API 用量」入口,composer 下方出现今日统计行。
本地开发可安装仓库检出目录:
dsh plugin --profile web add link:<本仓库路径>
如需纳入
dsh-web-ui-all聚合包:把本包追加到packages/dsh-web-ui-all/aggregate.yml(patchFrom与deps两段),再运行node scripts/aggregate.mjs。
验证
pnpm typecheck
pnpm test
pnpm build
配置
设置命名空间 deepseek-usage(设置页 → 插件配置,或直接编辑 ~/.dsh/settings.yaml):
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
providerId |
deepseek-official |
被统计为 DeepSeek 的 provider 路由 |
balanceRefreshMinutes |
10 |
余额刷新间隔(分钟) |
prices |
见 DEFAULT_PRICE_ENTRIES |
分模型价格表 |
数据保存在 ~/.dsh/deepseek-usage/usage.db(SQLite)。API Key 通过 @deepseek-ai/dsh-credentials 解析 llm-deepseek 的凭据引用(默认 DEEPSEEK_API_KEY),以 Host 进程环境变量作为明确 fallback。
数据来源与字段映射
统计来自会话事件日志:官方可重放投影注册表(ctx.sessionProjections,与 @linxin666/dsh-live-stats 同一扩展点)+ 启动时经 ctx.sessionQuery 的补扫。官方 DeepSeek 适配器(@deepseek-ai/dsh-llm-deepseek)的 wire→TokenUsage 映射(translate.mapUsage):
| DeepSeek wire 字段 | harness TokenUsage |
仪表盘桶 |
|---|---|---|
prompt_cache_hit_tokens(或 prompt_tokens_details.cached_tokens) |
cacheReadTokens |
cacheHitInputTokens |
prompt_tokens - cacheRead(不相交;即 prompt_cache_miss_tokens) |
inputTokens |
cacheMissInputTokens |
completion_tokens |
outputTokens |
outputTokens |
completion_tokens_details.reasoning_tokens |
reasoningTokens |
reasoningTokens |
| (DeepSeek 不上报) | cacheWriteTokens(缺省) |
计 0 |
等价性由 tests/mapping.spec.ts 钉死。
安全
- API Key 只存在于 Host 进程(凭据服务优先,环境变量兜底);不写日志、不进浏览器、不接受请求参数传入。
- 余额响应只保留
is_available与balance_infos[].{currency,total_balance,granted_balance,topped_up_balance};内部错误体、Header 与凭据不越过边界。 - 路由仅 loopback 可访问并带 DSH 浏览器信任篱笆;无任意 URL/文件/命令代理能力。
已知限制
- 官方 SDK 未导出
isTrustedApiRequest,篱笆按其文档语义在本地等价实现(相同 Host/Origin/Sec-Fetch-Site 规则,不声明 trustedHosts)。 - provider 未上报 usage 且 turn 正常结束时该步骤不落行(用量未知);失败请求按「无 usage 且 turn 以 error/aborted 结束」统计。
- 步骤按开始时生效的 request/header 归属模型;turn 中途改 header 影响后续步骤。
- 余额端点固定为
https://api.deepseek.com,不可配置(按需求)。 - 费用为基于配置价格表的估算,官方账单才是权威。
- SQLite 使用 Node 内置
node:sqlite;数据库为~/.dsh/deepseek-usage/下的单机级存储。
License
BSD-3-Clause
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2314
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 1071
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 945
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 175
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 143
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 95
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。