dsh-cost-balance-chip:在输入框旁显示本次会话预估费用与账户余额

前言

在 DeepSeek Harness(DSH)里长时间跑 Session 时,token 会不断累积,但 Web 客户端默认不会在输入区直接给出「这一通对话大概花了多少钱、钱包还剩多少」。要对照账单,往往得切到平台侧或自己记数。社区插件 dsh-cost-balance-chip(仓库 jieyueriluo/DSH_balance-chip)把当前 Session 的预估花费和账户可用余额做成输入框右侧的一小块 chip,点开后还能看到按 token 桶拆分的明细。下面介绍它的定位、能力与安装方式。

这是什么

dsh-cost-balance-chip 是面向 DSH Web 客户端的社区插件(非 DeepSeek 官方包),维护者为 jieyueriluo,在 SkillHub 目录中归类为客户端插件。npm 包名与安装名均为 dsh-cost-balance-chip(版本 1.0.0,许可证 MIT)。

它在对话卡片输入区右侧控件簇(挂载点 conversation.input.right)里、模型选择器之前插入两行紧凑信息:本次(当前 Session 预估花费)与余额(充值钱包 + 赠送钱包的可用总额)。花费为客户端估算,平台账单仍以官方为准。

核心功能

输入框旁的 chip

界面示意(来自 README):

┌─────────────────────────────┐
│ ● 本次   ¥15.93            │
│   余额   ¥13.35            │
└─────────────────────────────┘
  • 本次:基于持久化 Session 日志上的 tokenUsage 投影,以及当前所选模型的参考单价,估算本 Session 费用。
  • 余额:通过 DSH 自带的 remote.account 代理读取,不经过插件自行上传凭证。挂载时刷新,之后每 30 秒、页面重新可见时、以及每次用量结算后 shortly 再刷。
  • Session 运行中时,行首圆点会脉冲动画;文案与主题跟随 DSH 的 zh / en 与明暗主题。

点击后的明细面板

点击 chip 可展开面板,内容包括:

  • 当前模型与 cache 命中率;
  • input、output、cache-read、cache-write 四类 token 数量;
  • 各桶对应的费用贡献;
  • 充值与赠送钱包、上次刷新时间,以及手动刷新。

若余额读失败,chip 上显示 — 而非伪造为 0;面板说明原因并提供重试。

费用如何估算

客户端没有独立计费 API,单价在 client.js 中以「每百万 token、人民币」为参考默认值,例如:

const DEFAULT_PRICING = { input: 2, cacheRead: 0.2, cacheWrite: 2, output: 3 }
const MODEL_PRICING = {
  'deepseek-flash': DEFAULT_PRICING,
  'deepseek-v4-pro': { input: 4, cacheRead: 0.4, cacheWrite: 4, output: 12 },
}

面板会展示当前生效的费率。若账号实际价目不同,需改 client.js 后重载页面。

已知限制:同一 Session 内若切换模型,目前会把该 Session 全部 token 按最后一次所选模型计价;若要按请求分段,需要读完整 Session 日志并按请求头切分,插件尚未实现。

实现要点(便于排查)

  • 花费:@deepseek-ai/dsh-token-meter 的 useProjection('tokenUsage')。
  • 模型:useProjection('modelSelection')(next.model,回退 lastUsed.model)。
  • 余额:ctx.remote.account.getBalance(clientMetadata),插件显式注入 remote.account 命名空间。
  • Host 侧:index.js 导出空的 apply(),无需 Host 半端逻辑。

安装与启用

DSH 引擎要求 >=0.2.1-rc.3(见 package.json 的 engines.dsh)。仅 Web Client,不注册面向模型的 tools 或 prompts。

在任意 profile 下从 npm 安装:

dsh plugin --profile <profile> add dsh-cost-balance-chip

若使用本地检出目录,将 <absolute-path-to-this-directory> 换为仓库绝对路径:

dsh plugin --profile <profile> add <absolute-path-to-this-directory>

安装后 bundle patch 会插入 cost-balance-chip 行。重启 DSH,或等待 profile 的 HMR 重载 Web 页面后再看输入框右侧。

典型用法

  1. 安装并重载 Web 客户端后,打开任意对话,在输入框右侧模型选择器左侧应出现 chip。
  2. 进行多轮对话或长 Session,观察 本次 随 token 投影更新;运行中注意行首脉冲点。
  3. 点击 chip,核对四类 token、各桶费用与面板中的单价是否与你的账号一致;不一致则按 README 修改 client.js 中的 MODEL_PRICING。
  4. 需要即时余额时,在面板中使用手动刷新;余额异常时查看面板中的失败原因并重试。

无需额外配置文件;行为由 DSH 会话投影与 account Remote 驱动。

适用场景与注意

适合:日常在 DSH Web 里调试 Agent、长 Session 或频繁换模型时,希望在 composer 内快速感知「这一通大概多少钱、钱包够不够」,并偶尔下钻到 token 桶明细的开发者。

注意:

  • 插件以当前 DSH 进程与 profile 的权限运行;安装前建议阅读 GitHub 源码 与 MIT 许可证,确认 remote.account 与 client 注入符合你的安全预期。
  • 社区目录 SkillHub 条目 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」,本插件是其中一例。
  • 预估费用不等于发票;切换模型时的计价局限见上文。

结尾

dsh-cost-balance-chip 把 Session 级 token 投影和账户余额收进输入框旁的两行 chip,并附带可点击的拆分面板,适合需要「边聊边看钱」的 DSH Web 用户。目录与源码:

羽毛球分组比赛记分
小程序二维码

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

小夜