READMESource: main@d295e156
Token 用量
给 DSH 装一块 token 看板:今天用掉多少、花在哪个模型、缓存命中多少,一眼看完。
数据全部来自本机会话日志,不联网、不上报。
简体中文 · English
关于
Token 用量是 DSH(DeepSeek Harness)的一个插件。它读取本机的会话日志, 把每一次模型调用折成一条记录,然后在侧边栏用一块看板呈现出来。
装上之后,侧边栏底部会多一个「用量」按钮。点开就是完整的一张页面:四张总量卡片、每日趋势、 53 周热力图、以及可以翻页和筛选的请求日志。不需要改任何配置,也不需要手动开始记录—— 已经发生的历史会话会在首次启动时自动回填。
功能
| 能力 | 说明 |
|---|---|
| 总量概览 | 总成本、总请求数、token 消耗、缓存命中率,附今日增量;失败与取消次数收在悬浮提示里 |
| 每日趋势 | 近 7 / 30 / 90 天,未命中输入、缓存读取、输出三段堆叠,并叠加请求数曲线 |
| 热力图 | 近 53 周,按当天 token 量分 5 档,空格子也占位,扫一眼就知道哪几天在忙 |
| 请求日志 | 时间、模型、输入、输出、缓存命中、命中率、速度、首字、成本,支持按模型筛选与分页 |
| 跟随语言 | 界面语言是中文时用 ¥,其他语言用 $,不需要单独设置 |
| 本地存储 | 单个 SQLite 文件,删掉即彻底清空 |
界面
面板从左到右、从上到下是四块:
┌────────┬────────┬────────┬────────┐
│ 总成本 │ 请求数 │ Token │ 命中率 │ 四张卡,带今日增量
├────────┴────────┴────────┴────────┤
│ 每日趋势(堆叠柱 + 请求数折线) │ 7 / 30 / 90 天
├───────────────────────────────────┤
│ 53 周日历热力图 │
├───────────────────────────────────┤
│ 请求日志 ▸ 模型筛选 · 分页 │
└───────────────────────────────────┘
右上角是设置和关闭。设置里可以调价格和节假日;汇率每天自动更新,不需要配置。这些属于进阶用法,日常不用碰。
安装
Token 用量是 DSH 的 bundle 插件,装到某个 profile 里即可:
- 把仓库放到本地任意目录;
- 打开 DSH,用插件管理器安装这个目录(不要手写 profile 的
cordis.patch.yml); - 重启 DSH。
首次启动会在后台回填历史会话,大约十几秒。面板会显示「正在回填历史会话…」并自动刷新, 回填完成后数字就齐了。
数据与隐私
- 所有数据都在本机:
~/.dsh/token-usage/usage.db。 - 只读取 DSH 自己的会话日志,不发送任何请求(唯一的例外是首次启动去取一次公开汇率,可以不用它)。
- 想清空?删掉那个目录即可;想迁移?拷走一个文件就够。
统计口径
- 只统计成功调用。失败和被取消的尝试单独计数,不进入 token 与成本。
- 首字 = 从请求发出到第一个 token 的时间;速度 = 输出 token ÷ 解码时长。
- 成本在每次请求结束时按当时的价格算好并固定下来,标注为「仅供参考」;之后改价只影响新请求。
- 成本需要自己为模型配价格,不配就是空的——不会拿 0 冒充「没花钱」。
开发
仓库自带四个离线自检,不需要启动 DSH:
node tools/check.mjs # 语法 / manifest / 组件注册 / 价格文件校验
node tools/selftest.mjs # 用假 ctx 跑通 Host 全链路(临时目录,不碰真实数据)
node tools/replay.mjs # 用真实会话日志回放,对账总量与成本
node tools/render-smoke.mjs # 客户端组件冒烟渲染
代码分三层,改动时按层找:
| 文件 | 作用 |
|---|---|
lib/core.js |
纯逻辑:事件 → 记录、时间分档、价格匹配(离线工具复用) |
lib/index.js |
Host:SQLite、事件订阅、历史回填、HTTP 接口 |
lib/client.js |
界面:卡片、图表、热力图、日志、设置弹窗 |
No comments yet. Be the first to write one.