dsh-usage-chart:在 DSH Web 里看清 Token 用量、成本估算与账户余额

前言

用 DeepSeek Harness(DSH)跑长会话时,token 消耗往往只在事后账单里才能看清;上下文被压缩、缓存命中率变化、高峰与空闲时段单价差异,也很难在对话界面里即时对照。若要在开发或调试过程中掌握「这一轮花了多少、上下文还剩多少、余额够不够」,通常需要切到开发者平台或自行拼日志。

dsh-usage-chart 是面向 DSH Web 的 Cordis 插件,由 Max-Samson 维护,当前 npm 版本 1.1.2(MIT 许可证)。它在输入框下方提供实时指标条,点击可展开零依赖 SVG 仪表盘,数据来自 DSH 官方 adapter 投影与宿主会话日志折叠,成本按官方 CNY/USD 刊例价估算,余额经宿主代理查询官方 API。下面介绍它的定位、能力与安装方式。

这是什么

一句话:dsh-usage-chart 把 token 用量、成本估算、每轮历史图表和 DeepSeek 账户余额,嵌进 DSH Web 对话界面。

维护者 Max-Samson 将其归类为联网工具类插件;GitHub 仓库约 10 stars。插件分 host 与 client 两半:host 侧代理余额与价格解析,client 侧在 composer 下方渲染指示器与图表面板,技术栈为 TypeScript、Cordis 插件模型、React 18,图表为手写 SVG,不引入第三方图表库。

核心功能

输入框下方的实时指示器

安装并启动 DSH Web 后,输入框下方会出现一行紧凑指标,示意如下:

▸ 输入 12.4M · 输出 86.2K · 缓存 72% · 成本 ≈¥0.284 / ≈$0.042 · demo-model · 余额 --

指示器展示输入/输出 token、缓存命中率、按所选币种估算的成本、当前模型名,以及账户余额。v1.1.0 起还包含分段上下文压力条:按系统提示(蓝)、工具定义(橙)、历史消息(绿)三段着色,总占用由绿向红过渡。点击 ▸ 展开完整面板。

用量面板与每轮图表

面板内的能力均可在 README 中核对,主要包括:

  1. 会话用量汇总 — 输入(未命中/命中缓存)、输出、缓存命中率、上下文占用,数据来自官方 tokenUsage / contextPressure 投影。
  2. 上下文构成与压缩诊断(v1.1.0) — 基于 contextBreakdown 展示三段占比;折叠 compaction/* 事件,显示哪一轮被压缩、释放多少 token、摘要成本;上下文占用 ≥75% 或 ≥90% 时给出开新会话或精简大文件注入的建议。
  3. 成本估算 — 按官方刊例价(CNY/USD 双币种,每 1M tokens,区分高峰/空闲时段)计算;支持用户通过 pricing.json 覆盖;未定价模型会显式标记。
  4. 高峰/空闲计费(v1.0.1) — 北京时间周一至周五 09:00–12:00、14:00–18:00(UTC 01:00–04:00、06:00–10:00)为高峰,单价为空闲时段 2 倍;面板顶部以红/绿 tag 标注当前计费时段。
  5. 多币种显示(v0.3 / v1.0.1) — 成本区一键切换 CNY/USD,选择保存在浏览器 localStorage;指示器、面板、图表与消息徽章同步跟随。CNY 用中文定价页报价、USD 用英文定价页报价,不做汇率换算
  6. 每轮用量与来源归因(v1.1.0) — 「总量 / 构成 / 成本」三视角;成本模式下每根柱显示该轮费用;叠加耗时线、成本突增异常标记、缓存命中迷你刻度;悬浮解释卡含 token、成本、模型、计费时段、TTFT/TPS、输入来源(人工/Agent/续跑)与结束原因;全部轮次可横向滚动。
  7. 成本徽章 — 每条助手消息尾部显示可关闭的 ≈ ¥/$0.00xx 徽章。
  8. 账户余额 — 经宿主代理调用 GET https://api.deepseek.com/user/balance,API Key 不暴露给浏览器。
  9. 中英双语 — 跟随 DSH 应用内语言设置,支持运行时切换 zh / en

数据来源与准确性

指标 来源 说明
Token 用量 adapter tokenUsage / contextPressure 官方实时投影
成本 内置刊例价 + 可选 pricing.json,经宿主 /pricing 解析 估算值,非官方账单
轮次明细 宿主会话日志折叠(/usage 含耗时、模型、来源归因、每轮成本
上下文与压缩 contextBreakdown + compaction/* 事件折叠 官方投影 + 事件流
余额 官方 /user/balance 经宿主代理,实时查询

安装与启用

前置要求:DeepSeek Harness ≥ 0.1.0-rc.6Node.js ≥ 20、PATH 上可用 pnpmdsh plugin 会把安装转发给 pnpm)。若提示 dsh: command not found,需全局安装 @deepseek-ai/dsh,或在每条命令前加 npx --yes @deepseek-ai/dsh

方式一:npm 仓库(推荐)

预构建产物,无需本地构建:

dsh plugin --profile web add dsh-usage-chart   # 安装并登记为 profile 插件层
dsh web --profile web                          # 启动 DSH Web(已在运行时先停止再启动)

升级到新版本时,pnpm 可能显示 Already up to date,需显式指定版本或先移除再安装:

# 显式指定版本
dsh plugin --profile web add dsh-usage-chart@1.1.2
# 或先移除再重装
dsh plugin --profile web remove dsh-usage-chart
dsh plugin --profile web add dsh-usage-chart

升级后必须重启 dsh web:宿主在启动时缓存插件代码,无热重载;新路由(如 /pricing/meta/rate)只有重启后才生效。

验证安装

dsh --profile web --dump-config | grep -A4 'id: dsh-usage-chart'

打开 DSH Web 进入任意会话:输入框下方应出现用量指示器;点击 ▸ 可展开面板。未配置 API Key 时余额显示 ,面板内会提示配置方式。

配置余额查询

余额查询按以下优先级解析 API Key(改后无需重启):

  1. DSH Web 设置(推荐,插件 ≥ 0.1.1) — 「设置 → 模型」中配置 DeepSeek API Key,插件经 DSH 凭据服务读取;
  2. 环境变量 — 启动前导出 DEEPSEEK_API_KEY=sk-...
  3. 插件配置 — 在 profile 的 cordis.patch.yml 中写入 config.apiKey(Key 明文落盘,仅建议本机受保护环境使用)。

插件版本 < 0.1.1 时不读取网页端密钥,需用环境变量或 config.apiKey

典型用法

切换成本显示币种

在面板成本区一键切换 CNY/USD,选择会保存在浏览器;指示器、图表与消息徽章同步更新。成本按所选币种的官方刊例价直接计算,不做汇率换算。

自定义模型定价(可选)

默认覆盖文件路径为 $DSH_HOME/data/dsh-usage-chart/pricing.json(无 DSH_HOME 时为 ~/.dsh/data/dsh-usage-chart/pricing.json)。文件变更即时生效,支持高峰/空闲双时段与 CNY/USD 双币种:

{
  "deepseek-v4-flash": {
    "offPeak": {
      "cny": { "cacheMissInput": 1.5, "cacheHitInput": 0.05, "output": 4.5 },
      "usd": { "cacheMissInput": 0.22, "cacheHitInput": 0.007, "output": 0.66 }
    },
    "peak": {
      "cny": { "cacheMissInput": 3.0, "cacheHitInput": 0.10, "output": 9.0 },
      "usd": { "cacheMissInput": 0.44, "cacheHitInput": 0.014, "output": 1.32 }
    },
    "verifiedAt": 1755100800000
  }
}

单价单位为每 1M tokens。未收录模型在 UI 中标记为「未定价模型」,不会静默按 0 计费。

查看上下文压缩与每轮成本

长会话中点击指示器展开面板:在「上下文构成与压缩诊断」区查看系统/工具/消息占比与压缩时间线;切换到图表「成本」视角,横向滚动查看各轮费用,悬浮解释卡可核对计费时段与输入来源归因。

卸载

dsh plugin --profile web remove dsh-usage-chart
dsh web --profile web

remove 会清理 node_modules 中的包并从 profile 插件层注销。网页端配置的 API Key 存于 DSH 凭据文件,DSH 模型服务仍在使用,通常无需删除。

适用场景与注意

适合谁:

  • 在 DSH Web 中长期调试 Agent、工具调用或长上下文会话的开发者;
  • 需要在对话界面即时对照 token、缓存命中率、上下文占用与估算成本的用户;
  • 希望在不离开 DSH 的情况下查看 DeepSeek 账户余额的场景。

使用前注意:

  1. 插件以当前 dsh 进程权限运行 — 安装前应阅读源码与 MIT 许可证,确认来源可信;从 GitHub 安装时需固定 commit,并在 pnpm-workspace.yaml 中放行 allowBuilds
  2. 成本为估算 — 按刊例价与 adapter 上报用量计算,不等于官方账单;高峰/空闲判定以轮次开始时刻为准,时刻缺失时按高峰保守估算。
  3. 余额与定价依赖配置 — 未配置 API Key 时余额不可用;插件 < 0.1.1 不读网页端密钥。
  4. 无热重载 — 升级插件后必须重启 dsh web
  5. 社区目录非官方商店 — SkillHub 等插件目录由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」思路,按需选用。

结尾

dsh-usage-chart 把 DSH Web 对话里原本分散的用量、成本与余额信息,收敛到输入框下方的一行指示器与可展开的 SVG 仪表盘:数据走官方 adapter 与宿主代理,成本区分 CNY/USD 与高峰/空闲,长会话还可对照压缩诊断与每轮来源归因。若你已在用 DSH Web 做 Agent 开发,可按上文命令安装,重启后即可在 composer 下方验证。

  • 目录页:https://www.skillhub.cn/plugins/Max-Samson/dsh-usage-chart
  • GitHub:https://github.com/Max-Samson/dsh-usage-chart
羽毛球分组比赛记分
小程序二维码

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

小夜