dsh-token-spend:在 Composer 里实时看本会话 Token 与人民币花费

前言

在 DeepSeek Harness(DSH)里跟模型多轮对话时,内置统计能看到用量,但要把 Token 换算成按官方价目表(含高峰与空闲时段)估算的人民币,往往还要自己对照文档手算。dsh-token-spend 是社区维护的客户端类插件:在聊天输入框上方 Composer 统计行里,紧挨内置「活动」「用量」,增加一块 (¥) 1.56 · 37M 形式的控件,用与内置 tokenUsage 同源的数据,按 DeepSeek 公开单价实时汇总当前会话花费。下面介绍它的能力、安装方式与可选配置。

这是什么

  • 名称:dsh-token-spend(npm 包名相同)
  • 维护者:kelaocai
  • 分类:客户端(浏览器半挂载 Composer dock;Host 半注册会话投影)
  • 仓库:https://github.com/kelaocai/dsh-token-spend
  • 许可证:MIT(资料中 package.json 与 README 一致)
  • 版本:资料记载当前 npm 版本为 0.1.1
  • 环境要求:DSH 0.2.2-rc.1 或更高(依赖会话投影与 composer dock 槽位)

插件只读取当前会话已提交的 Session 事件,不联网、不上传数据;金额是按公开单价的估算,不等于平台账单。

核心功能

界面与交互

在 Composer dock 中多一个花费控件,实时显示当前会话累计 Token 与按官方规则估算的 CNY 金额。点击可展开明细,包括:

  • 缓存命中 / 未命中 / 输出的 Token 与金额
  • 缓存命中率
  • 高峰 / 空闲时段金额
  • 按模型汇总

每一轮模型调用结算后立即刷新,节奏与内置 usage 统计一致,无需刷新页面。

计价规则(默认)

  • Token 来源:provider 上报的 usage,与内置 tokenUsage 一致。
  • 时段:高峰为北京时间工作日 09:00–12:00、14:00–18:00;其余时间(含周末)按空闲价;空闲价为高峰价的一半。判定所用默认时区为 Asia/Shanghai。
  • 默认价目(元 / 百万 tokens,来源 README 引用的 DeepSeek 模型 & 价格):
模型 输入(缓存命中)峰/闲 输入(缓存未命中)峰/闲 输出 峰/闲
deepseek-flash 0.04 / 0.02 2 / 1 8 / 4
deepseek-v4-pro 0.30 / 0.15 9 / 4.5 27 / 13.5

deepseek-v4-flash、deepseek-v4-flash-vision-exp 等历史别名按 flash 价格计费。若 provider 上报了 cacheWriteTokens,默认按缓存未命中价计,可在配置中用 cacheWrite 覆盖。

实现要点(便于排障)

  • Host 半注册 tokenCost 会话投影,折叠 assistant/message、assistant/attempt、model/selection 等事件,按「模型 × 高峰/空闲」累计 Token;状态随会话 checkpoint 持久化。
  • 浏览器半在 conversation.composer.dock 注册控件,通过 useProjection('tokenCost') 渲染;无 Host 半时退化为只显示 Token。

安装与启用

安装前请自行查看仓库源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,与所有 DSH 插件一样,安装即信任其读写 Session 投影与 UI 注册行为。

方式一:市场索引(推荐)

  1. 在 DSH「插件」页启用实验插件 自定义插件索引(@deepseek-ai/dsh-experimental-plugin-market-bundle)。
  2. 打开「发现」页 → 添加索引源,粘贴:
https://cdn.jsdelivr.net/gh/kelaocai/dsh-token-spend@main/market/index.json

备用地址:

https://raw.githubusercontent.com/kelaocai/dsh-token-spend/main/market/index.json
  1. 搜索 dsh-token-spend,点击安装。

社区插件目录站点(如 skillhub.cn 上的条目)是独立索引,与 DeepSeek / 幻方无官方从属关系;上述索引 URL 以仓库 README 为准。

方式二:从 Git 仓库安装

dsh plugin add git+https://github.com/kelaocai/dsh-token-spend.git

dsh plugin add 仅将包纳入 profile;随后在「插件」页启用名为 dsh-token-spend 的 bundle。

方式三:npm

dsh plugin add dsh-token-spend

包页:https://www.npmjs.com/package/dsh-token-spend

典型用法

开箱即用

安装并启用 bundle 后,默认使用 README 内置的 DeepSeek 官方价格表,无需改配置即可在 Composer 上看到 (¥) … · …M 控件;点击即可查看明细。

覆盖价格与时段

需要自定义币种、高峰窗口、法定节假日或未知模型兜底价时,在 profile 的 cordis.patch.yml(路径:~/.dsh/profiles/<profile>/cordis.patch.yml)中追加 token-spend 配置块。示例(与 README 一致,可按需删减字段):

- id: token-spend
  config:
    currency: '¥'
    timeZone: Asia/Shanghai
    peakWeekdays: [1, 2, 3, 4, 5]
    peakWindows:
      - [9, 12]
      - [14, 18]
    # 官方规则里法定节假日全天按空闲价,但插件不内置节假日日历;需要时逐日补充
    holidays: ['2026-10-01', '2026-10-02']
    models:
      deepseek-flash:
        peak: { cacheMiss: 2, cacheHit: 0.04, output: 8 }
        offPeak: { cacheMiss: 1, cacheHit: 0.02, output: 4 }
      deepseek-v4-pro:
        peak: { cacheMiss: 9, cacheHit: 0.3, output: 27 }
        offPeak: { cacheMiss: 4.5, cacheHit: 0.15, output: 13.5 }
    fallback:
      peak: { cacheMiss: 1, cacheHit: 0.01, output: 2 }
      offPeak: { cacheMiss: 0.5, cacheHit: 0.005, output: 1 }

主要字段含义:

字段 默认 说明
currency ¥ 金额前缀
timeZone Asia/Shanghai 判定高峰/空闲所用时区
peakWeekdays [1,2,3,4,5] 高峰星期(0=周日)
peakWindows [[9,12],[14,18]] 高峰小时区间,左闭右开
holidays [] YYYY-MM-DD,当日全天按空闲价
models 内置 DeepSeek 价格 键为模型 id,或用 provider/model 精确覆盖
fallback null 未知模型兜底费率;null 表示只显示 Token、不计金额

改价不需要迁移历史数据:投影状态只保存 Token 计数,金额在发布给客户端时计算。

适用场景与注意

适合谁:在 DSH Composer 里长时间调试智能体、需要当场感知「这一轮又花了多少 Token / 大概多少人民币」的开发者;尤其适合需要区分缓存命中与高峰计价的场景。

边界(README 已写明):

  1. 只统计当前会话的模型调用;子代理会话是独立 Session,不计入父会话。
  2. 联网搜索/抓取按次计费(文档写明 ¥5/1000 次)不在 Token 计费范围内。
  3. 未上报 usage 的模型调用无法计入(与内置 tokenUsage 相同限制)。
  4. 法定节假日需手动配置 holidays,否则仅按「工作日 + 时段」规则计算。
  5. 卸载后注册随插件 fiber 释放;平时无网络请求、无遥测、不写文件、不调用模型。

结尾

dsh-token-spend 把本会话 Token 用量与按 DeepSeek 公开峰/闲单价估算的 CNY 花费,收进 Composer dock 一行控件,数据与内置 usage 同源,配置可完全本地覆盖。若要查找社区目录条目或阅读完整说明,可打开 skillhub.cn 插件页 与 GitHub 仓库。

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

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

小夜