dsh-token-cost:在 DSH 网页端查看 DeepSeek 用量、花费与余额

前言

用 DSH(DeepSeek Harness)网页端跑 DeepSeek 会话时,Token 用量、本次会话花费、累计花费和账号余额往往分散在不同位置。dsh-token-cost 是一个 DSH 网页端插件,提供一个可拖动的 DeepSeek 鲸鱼悬浮球,用于查看 Token 用量、本次会话/累计花费与 DeepSeek 账号余额。

它复用 DSH 已配置的 DEEPSEEK_API_KEY 查询 DeepSeek 官方余额,并通过 DSH 服务端按会话日志记账,而不是在前端做粗略估算。

这是什么

dsh-token-cost 是一个 DSH 网页端插件,由 PeterZoneZz 维护,许可证为 MIT

它面向 DSH 的 web profile 使用,安装后会在浏览器页面中提供一个鲸鱼悬浮球,用于查看:

  • 剩余余额百分比
  • 本次会话费用
  • 输入 / 缓存读 / 缓存写 / 输出四类 Token 用量
  • 所有会话累计花费
  • DeepSeek 官方账号余额

GitHub 仓库地址为:

https://github.com/PeterZoneZz/dsh-token-cost

核心功能

鲸鱼悬浮球

插件提供一个毛玻璃质感的小圆球悬浮在页面上。鼠标悬停时鲸鱼会摇摆,外圈环形进度会显示剩余余额百分比。

展开、收起与拖动

点击鲸鱼可以展开卡片,再次点击鲸鱼可以收起。卡片打开时也可以拖动,鲸鱼和卡片会一起移动。

支持以下关闭卡片的方式:

  • 点击卡片外部
  • Esc
  • 点击 ✕
  • 再次点击鲸鱼

拖动鲸鱼靠近屏幕左右边缘时松手,浮窗会自动吸附到边缘。浮窗位置会记录在浏览器本地 localStorage 中。

卡片会优先在鲸鱼旁空间最大的一侧展开,并尽量不超出屏幕。

DeepSeek 官方账号余额

插件复用 DSH 已配置的 DEEPSEEK_API_KEY,调用 DeepSeek 官方接口:

GET /user/balance

卡片中会展示总余额,以及赠送 / 充值构成。

如果未配置 DEEPSEEK_API_KEY,Token 用量与费用显示不受影响,只有余额部分会显示降级提示。

剩余余额可视化

剩余余额以每次打开 DSH 页面时查到的余额为基准:

剩余 % = 当前余额 ÷ 基准余额

如果中途充值,基准余额会随之提升,剩余百分比会重置为 100%。

服务端精确记账

插件会注册 tokenCost 会话投影单元,在 DSH 服务端逐事件回放会话日志。

记账时会按每个请求实际使用的模型单价计费,因此会话中途切换模型时,费用仍然按对应模型计算,而不是用当前模型乘以总 Token 做客户端估算。

用量明细

卡片会展示:

  • 本次会话费用
  • 输入 Token
  • 缓存读 Token
  • 缓存写 Token
  • 输出 Token
  • 所有会话累计花费
  • 按模型拆分的花费明细

外观

插件支持:

  • 亮 / 暗主题自适应
  • 中英双语
  • 数字弹跳动效

安装与启用

1. 获取项目到本地

README 中的安装步骤使用了占位示例:

git clone <your-repo-url> dsh-token-cost

这不是可直接复制的完整安装命令。可以先从 GitHub 仓库获取源码到本地路径:

https://github.com/PeterZoneZz/dsh-token-cost

2. 安装进 DSH 的 web profile

将项目放到本地路径后,执行:

dsh plugin --profile web add file:/path/to/dsh-token-cost

这里的 file:/path/to/dsh-token-cost 需要替换为本地实际路径。该方式使用本地 file 依赖安装插件。

3. 重启 DSH Web

安装后需要重启 DSH Web:

dsh web

然后在浏览器中刷新页面,即可在右下角看到鲸鱼悬浮球。

配置余额查询

余额查询依赖 DEEPSEEK_API_KEY。有两种常见配置方式:

  1. 在 DSH Web 的模型设置页写入 DEEPSEEK_API_KEY
  2. 启动 DSH 前设置环境变量:
export DEEPSEEK_API_KEY=sk-...

不配置该 Key 时,Token 用量与费用显示仍然可用,只是余额部分会显示降级提示。

配置价格表与余额查询

价格表和余额查询可以通过 profile 的 cordis.patch.yml 覆盖。

价格单位为:

元 / 百万 tokens

价格按模型 id 匹配,未匹配到具体模型时回落 default

计费规则为:

  • cacheWrite 按输入价计费
  • cacheRead 按缓存命中价计费

示例如下:

- id: token-cost
  config:
    prices:
      deepseek-chat:     { input: 2, cacheRead: 0.5, cacheWrite: 2, output: 8 }
      deepseek-reasoner: { input: 4, cacheRead: 1,   cacheWrite: 4, output: 16 }
      deepseek-v4-flash: { input: 1, cacheRead: 0.25, cacheWrite: 1, output: 4 }
      default:           { input: 2, cacheRead: 0.5, cacheWrite: 2, output: 8 }
    balance:
      enabled: true
      apiKeyEnv: DEEPSEEK_API_KEY
      baseUrl: https://api.deepseek.com
      pollMs: 60000

上面的价格只是配置示例,实际使用时应按 DeepSeek 官方价格调整。

典型用法

下面介绍安装后的几个常见操作。

查看剩余余额

鼠标悬停在鲸鱼悬浮球上,外圈环形进度会显示剩余余额百分比。

查看费用与余额

点击鲸鱼展开卡片,可以看到:

  • DeepSeek 账号余额
  • 本次会话费用
  • 输入 / 缓存读 / 缓存写 / 输出 Token
  • 所有会话累计花费
  • 按模型拆分的花费

移动悬浮球

按住鲸鱼拖动,可以调整浮窗位置。靠近屏幕左右边缘松手时,浮窗会自动吸附到边缘。

关闭卡片

可以按以下任一方式关闭卡片:

  • 点击卡片外部
  • Esc
  • 点击 ✕
  • 再次点击鲸鱼

适用场景与注意

这个插件适合在 DSH 网页端使用 DeepSeek 的开发者,尤其是需要频繁确认 Token 用量、本次会话花费、累计花费和账号余额的场景。

使用前注意以下几点:

  • 余额查询依赖 DEEPSEEK_API_KEY,未配置时余额部分会降级。
  • 价格表可通过 cordis.patch.yml 覆盖,官方调价后需要同步更新。
  • 浮窗位置记录在浏览器本地 localStorage 中。
  • 插件会访问 DSH 会话日志并调用 DeepSeek 官方余额接口,运行权限与当前 DSH 进程一致。安装前应检查源码、配置项和许可证。
  • 该插件许可证为 MIT

结尾

dsh-token-cost 的价值在于把 DeepSeek 的 Token 用量、会话花费、累计花费和账号余额集中到 DSH 网页端的一个悬浮球里,便于在实际调试和运行智能体时快速确认成本。

GitHub 仓库地址:

https://github.com/PeterZoneZz/dsh-token-cost
羽毛球分组比赛记分
小程序二维码

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

Xiaoye