前言¶
用 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 / 单价 / 金额 明细表及合计
价格表与计价规则¶
在 设置 → 每轮花费 中按模型维护价格表。四个计费类别为:未缓存输入、缓存命中、缓存写入、输出。生效单价按回合结束时间判定,优先级为:
- 限时特价(
promos):绝对时间区间,区间内自成一套价格,不叠加峰谷系数 - 峰谷规则(
rules):一周内循环时段,价格乘以系数,支持跨零点 - 基础价:未命中上述规则时使用
同类规则多条命中时,列表靠后的优先。插件对 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
典型用法¶
- 按上文命令安装
dsh-turn-price@0.2.3并重启 profile。 - 打开 设置 → 每轮花费,为常用模型配置基础单价;若对接 DeepSeek 官方峰谷,可按 README 建议填基础价与两条工作日高峰 ×2 规则,或使用「恢复 DeepSeek 官方价」。
- 回到会话界面,在已完成回合下方查看花费行;需要核对时点击金额查看 token 分类明细与命中规则。
- 若官方调价或你方合同价变化,在设置页改价并保存,历史回合金额会立即按新表重算。
常用显示相关默认值包括:显示每轮花费与汇总行(开)、货币符号 ¥、明细小数位 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、按什么规则算成多少钱」放在同一视线内,改价也能回溯历史回合,便于本地控费与调试对照。