dsh-turn-price:在 DSH Web 界面显示每轮对话的 CNY 花费

前言

用 DeepSeek Harness(dsh)跑长会话时,token 用量往往分散在多步事件里,平台账单又是事后对账。若想在本地界面里直接看到「这一轮大概花了多少钱」,并能在改价后让历史回合一起重算,就需要客户端侧把会话日志里的 usage 与本地价格表结合起来。dsh-turn-price 是社区维护者 littlefish04 发布的 dsh 客户端插件,在每个已完成回合下方单独一行展示该轮估算金额(默认以人民币符号展示),点击可展开明细。

这是什么

dsh-turn-price 是标准的 dsh 组合包(dsh.bundle.patch + dsh.client),面向 dsh Web 界面。它在每个已完成回合的操作行上方增加一行花费信息,不占用 hover 才出现的操作行。金额按当前价格表实时计算:token 用量取自 dsh 会话日志里每个步骤的 usage,插件不做字符数估算;事后修改价格表后,所有历史回合的金额会立刻按新价重算。

界面上的金额是预估,不是账单:等于 provider 上报的 token 数乘以本地价格表单价,实际结算以平台为准。

  • 维护者:littlefish04
  • 分类:客户端(Web)
  • 许可证:MIT
  • 兼容 dsh:>=0.2.0-rc.1 <0.3.0
  • npm 当前推荐版本:0.2.3

核心功能

回合下方的花费行与明细

已完成回合下方显示「本轮花费」、金额(如 ¥0.0874)、可选规则徽标(如「限时优惠」或「高峰×2」)以及展开箭头。点击金额可展开「本轮花费明细」,通常包括:

  • 模型(provider / model);若一轮内换过模型,会注明按路由表中最后一个计价
  • 计费时刻(按设置中的时区偏移,默认 UTC+8)
  • token 来源说明(宿主折叠的会话事件或页内回退数据)
  • 生效价格与单价口径(默认每 1,000,000 tokens)
  • 类别 / tokens / 单价 / 金额 明细表及合计

价格表与计价规则

在 设置 → 每轮花费 中按模型维护价格表。四个计费类别为:未缓存输入、缓存命中、缓存写入、输出。生效单价按回合结束时间判定,优先级为:

  1. 限时特价(promos):绝对时间区间,区间内自成一套价格,不叠加峰谷系数
  2. 峰谷规则(rules):一周内循环时段,价格乘以系数,支持跨零点
  3. 基础价:未命中上述规则时使用

同类规则多条命中时,列表靠后的优先。插件对 DeepSeek 官方峰谷口径提供了推荐填法(基础价取空闲时段价,峰谷规则 ×2 覆盖工作日高峰时段),并预填部分模型,设置页提供「恢复 DeepSeek 官方价」按钮。

token 用量来源

插件按每个步骤的 usage 容错求和,而不是仅依赖 dsh 内置的严格折叠(缺少 totalTokens 或完整 cache 字段时,严格折叠可能整轮不显示)。缺字段记 0,缺 usage 的步骤跳过,重试步骤按规则累加;整轮没有任何样本则不显示金额(而非显示 ¥0.0000)。宿主不可用时,浏览器侧可回退到页面上每步的 assistant-step.usage 做同样容错求和。

0.2.x 扩展能力

README 标明 0.2.3 为推荐完整功能版本,除每轮花费与价格表外,还包括余额、今日/本月/会话汇总、消费日历、手工记账、日账导出等(设置页内 模型价格 → 账户与余额 → 消费记录 → 显示项 四张卡片)。0.1.1 仅保留早期「每轮花费 + 价格表」能力;不要安装 0.1.0,会导致 dsh 无法启动。

存储与隐私

价格表保存在插件 Cordis Config 中,落盘路径形如:

<DSH_HOME>/profiles/<profile>/cordis.patch.yml     # 条目 id: turn-cost

每轮金额所需的 token 与单价计算均在本地完成;宿主半体读取当前会话事件流,不扫描其它会话正文,不读取 API Key,不向第三方发送用量数据。

安装与启用

本插件三种地址形式等价,安装时需指定 profile(桌面版常用 desktop,dsh web 常用 web)。

地址形式 命令
npm 包名 dsh plugin --profile <profile> add dsh-turn-price
Git 仓库 dsh plugin --profile <profile> add github:littlefish04/dsh-turn-price
本地目录 / tarball dsh plugin --profile <profile> add <绝对路径>

也可在应用侧边栏 插件 页通过「添加插件」填入上述任一地址。

建议钉死版本,避免镜像同步延迟装到旧版:

dsh plugin --profile desktop add dsh-turn-price@0.2.3

核对 npm 官方源最新版:

npm view dsh-turn-price version --registry https://registry.npmjs.org

装好后需重启该 profile 才生效(桌面应用完全退出后重开,或重启 dsh web)。升级需先卸再装(dsh 目前不支持插件自动更新;价格表在同一 profile 配置空间,卸载重装不会丢失):

dsh plugin --profile desktop remove dsh-turn-price
dsh plugin --profile desktop add dsh-turn-price@0.2.3

卸载:

dsh plugin --profile <profile> remove dsh-turn-price

典型用法

  1. 按上文命令安装 dsh-turn-price@0.2.3 并重启 profile。
  2. 打开 设置 → 每轮花费,为常用模型配置基础单价;若对接 DeepSeek 官方峰谷,可按 README 建议填基础价与两条工作日高峰 ×2 规则,或使用「恢复 DeepSeek 官方价」。
  3. 回到会话界面,在已完成回合下方查看花费行;需要核对时点击金额查看 token 分类明细与命中规则。
  4. 若官方调价或你方合同价变化,在设置页改价并保存,历史回合金额会立即按新表重算。

常用显示相关默认值包括:显示每轮花费与汇总行(开)、货币符号 ¥、明细小数位 4、汇总行小数位 2、时区偏移 +8、每多少 tokens 1000000、未配置模型默认「不显示金额」。

适用场景与注意

适合谁: 在 dsh Web 里长期调试智能体、需要按回合对照 token 结构与本地单价、或需要峰谷/限时规则做估算的开发者。

兼容性边界:

  • 需要 Node >=20 与 dsh >=0.2.0-rc.1 <0.3.0;不兼容时安装器可能拒绝,可按文档使用 dsh plugin allow-version 放行精确版本。
  • 多模型同一回合无法按模型拆分用量,按路由表中最后一个不同路由计价。
  • 跨时段回合按回合结束时间定价。
  • 关闭内置「性能用量」紧凑模式不影响本插件金额显示。

安装前: 插件在 dsh 进程权限下运行,安装前应自行查看仓库源码与 MIT 许可证,确认符合你的环境与合规要求。社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

链接

  • SkillHub 目录页:https://www.skillhub.cn/plugins/littlefish04/dsh-turn-price
  • GitHub 仓库:https://github.com/littlefish04/dsh-turn-price
  • npm 包:dsh-turn-price

经过上面的步骤,你可以在 dsh 会话里把「每轮用了多少 token、按什么规则算成多少钱」放在同一视线内,改价也能回溯历史回合,便于本地控费与调试对照。

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

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

Xiaoye