dsh-token-stats:面向 DSH Web 的全局 Token 用量统计插件

前言

在 DSH Web 中使用模型时,调用可能来自不同供应商、不同模型和不同会话。只看单次回答,很难判断当月用量、缓存命中、费用估算和延迟变化。dsh-token-stats 是面向 DeepSeek Harness / DSH Web 的插件,用于把 llm/stream 调用的真实 usage 记入账本,并在界面上提供全局统计。

下面介绍它的功能、安装命令和常用入口。

这是什么

dsh-token-stats 是一个全局 Token 用量统计插件。资料页显示 owner 为 1148281964,许可证为 MIT;GitHub 与社区目录链接见文末。由于已抓取资料中 package.json 的 repository 字段为占位符,本文不把 owner 字段当作完全确认的维护者归属。

它主要用于集中展示 DSH Web 中的 token 用量:记录真实 usage,聚合供应商、模型、会话、日期维度,估算费用,并给出缓存命中率、成功率、平均耗时、首字延迟等指标。

核心功能

真实 usage 与账本

  • llm/stream 调用采集真实 usage:输入、输出、缓存读、缓存写、推理 tokens。
  • 构建跨重启持久的 JSONL 账本,启动/热重载时从账本重建。
  • 默认账本目录为 <profile>/data/token-stats/,可用 DSH_TOKEN_STATS_DIR 覆盖。
  • 统计口径为真实 usage;输入 = 未缓存 + 缓存读 + 缓存写。这与 DSH 内置 token-meter 的估算口径不同。

聚合与指标

  • 按供应商、模型、会话、日期聚合,支持当月和近 31 天趋势。
  • 统计缓存命中率、成功率、平均耗时、首字延迟(TTFT)。
  • 会话维度的分布基于最近 500 条保留窗口聚合,总量 totals 为完整账本。

费用估算

  • 提供费用估算。
  • 可从 OpenRouter 拉取最新模型价格,并重算历史费用。
  • 可用 DSH_TOKEN_STATS_PRICES 覆盖价格 JSON。
  • 费用为估算值,实际结算以网关/厂商账单为准。

界面展示

  • 右下角可拖动 FAB 悬浮球;点击展开面板,支持「全局 | 当前会话」切换。
  • 点击面板右上角的全屏入口,可打开居中大屏弹窗。
  • 大屏弹窗展示 KPI、环形图、趋势、供应商/模型表格、近期调用明细。
  • 当前会话跟随基于 DOM 探测 UI 选中会话行并匹配标题;会话列表不可见或标题歧义时,回退到最近活跃会话。

模型工具与 HTTP API

  • 提供模型工具 token_stats,支持可选 sessionId 参数。
  • 提供以下 HTTP 端点:
GET /token-stats/api/query
GET /token-stats/api/sessions
POST /token-stats/api/refresh-prices

所有端点校验 Origin(仅本机),HEAD 不返回 body。

历史回扫

  • 提供 backfill-history.mjs 脚本,可幂等补录插件安装前调用。
  • 仅补录成功且带 usage 的调用;耗时/首字延迟无法回补。
  • 费用按当前价格表重算。
  • 导入前自动备份账本。

安装与启用

插件面向 DSH Web profile。资料给出的 CLI 安装命令是:

dsh plugin --profile web add dsh-token-stats

资料显示 peerDependencies 要求 @deepseek-ai/cordis ^4.0.1。该包为纯 JavaScript,无 prepare 构建脚本;资料还说明 github: 安装无需 allowedBuilds 配置。

安装前建议检查源码与 MIT 许可证。插件会以当前 dsh 进程权限运行,因此只在你信任其代码的 DSH 实例中启用。

典型用法

浏览器面板

1、在右下角点击 FAB 展开面板,可拖动位置。

2、在面板中切换「全局 | 当前会话」统计范围。

3、点击面板右上角的全屏入口,打开居中大屏弹窗。

4、在大屏弹窗中查看 KPI、环形图、趋势、供应商/模型表格和近期调用明细。

设置页

进入「设置 → Token 统计」,可以打开与 FAB 相同的面板与大屏弹窗。

更新价格

在大屏弹窗中点击“更新价格”入口,从 OpenRouter 拉取最新模型价格,并重算历史费用。

模型工具

在对话中调用模型工具 token_stats,用于让模型直接查询统计结果。可传可选参数:

{"sessionId": "..."}

HTTP API

可调用以下端点:

GET /token-stats/api/query
GET /token-stats/api/sessions
POST /token-stats/api/refresh-prices

这些端点校验 Origin(仅本机),且 HEAD 请求不返回 body。

历史回扫

插件安装前的调用可用脚本补录:

node backfill-history.mjs
node backfill-history.mjs --dry-run
node backfill-history.mjs --force

脚本用于幂等补录插件安装前的调用;导入前自动备份账本。

适用场景与注意

适合以下场景:

  • 需要在 DSH Web 中查看全局 token 用量和趋势。
  • 需要按供应商、模型、会话、日期比较用量。
  • 需要估算费用、观察缓存命中率、成功率、平均耗时和 TTFT。
  • 需要让模型通过 token_stats 查询统计结果。

注意事项:

  • 费用是估算值,不等于最终账单;以网关/厂商账单为准。
  • 统计口径是真实 usage,与 DSH 内置 token-meter 的估算口径不同。
  • 当前会话跟随依赖 DOM 探测和标题匹配;失败时回退最近活跃会话。
  • 会话维度分布基于最近 500 条保留窗口,总量 totals 是完整账本。
  • 历史回扫无法补回耗时和首字延迟,且费用按当前价格表重算。
  • DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

参考

  • 社区目录:https://www.skillhub.cn/plugins/1148281964/dsh-token-stats
  • GitHub:https://github.com/1148281964/dsh-token-stats
羽毛球分组比赛记分
小程序二维码

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

Xiaoye