dsh-cost-tracker:为 DeepSeek Harness 添加可配置的 Token 成本跟踪

前言

DSH 的理念是「一切皆插件」。在实际使用 DeepSeek Harness 时,一次会话里的 LLM 调用可能包含 cache-hit input、cache-miss input 和 output;如果还启用了峰谷价段,成本计算会更复杂。对需要管理 DSH 会话成本的开发者来说,问题不只是「调用了多少次」,而是「每个模型花了多少、哪些调用没有价格、哪些调用落在峰谷窗口」。

下面介绍 yflmq001/dsh-cost-tracker。它用于给 finalized LLM calls 做 per-model 计价,并发布 per-session 成本读数。

这是什么

yflmq001/dsh-cost-tracker 是一个面向 DeepSeek Harness 的 DSH 插件,提供 Token cost tracking with per-model configurable pricing and peak/off-peak rates。

仓库地址是 https://github.com/yflmq001/dsh-cost-tracker,许可证为 MIT。

它解决的问题是:按模型价格表对已完成计数的 LLM 调用计价,并把会话级成本暴露给 Web UI 或 /cost 命令;对于没有配置价格的模型,标记为 unconfigured,而不是静默猜测价格。

核心功能

  • 对 finalized LLM calls 计价,使用 assistant/message usage,并按模型配置价格表。
  • 价格字段包括 cache-hit input、cache-miss input、output,以及可选的 peak-window rates。
  • 发布 per-session cost projection,包含 total、peak、off-peak 和 per-model 值。
  • 支持在 Web UI 中显示 live session cost readout。
  • 标记落在已配置峰谷窗口内的调用。
  • 将没有价格条目的模型显示为 unconfigured,并使用 placeholder。
  • 缓存写入按 miss rate 计价。
  • 资料中给出跨会话全局账单和 /cost 命令,标注为 available 时可用。

安装与启用

资料给出的安装命令如下:

dsh plugin --profile web add github:yflmq001/dsh-cost-tracker

这里的示例使用了 --profile web。资料没有明确该安装方式是否适用于所有 DSH profile,因此应按实际 profile 名称核对。

安装前建议先检查仓库源码和许可证。该插件以当前 dsh 进程权限运行;插件代码一旦进入 profile,就可能影响该 profile 的成本计算和会话展示行为。

典型用法

从空价格表开始

安装后,价格配置从空表开始:

models: {}

然后为实际可触达的模型手动填写价格。资料明确:价格单位是 currency units per million tokens;非 DeepSeek 模型需要手动配置,没有自动价格查询。

配置 deepseek-v4-flash

资料给出的配置字段包括 inputMissinputHitoutput,以及可选的 peak 配置。峰谷配置包含 hoursenabledinputMissinputHitoutput

下面是一个字段结构示例;<手动填写> 是占位符,本文不给出未经确认的价格数字。

- id: cost-tracker
  config:
    models:
      deepseek-v4-flash:
        inputMiss: <手动填写>
        inputHit: <手动填写>
        output: <手动填写>
        peak:
          hours: <手动填写>
          enabled: true
          inputMiss: <手动填写>
          inputHit: <手动填写>
          output: <手动填写>

配置其他模型

资料给出的其他模型示例是 gpt-4o

- id: cost-tracker
  config:
    models:
      gpt-4o:
        inputMiss: <手动填写>
        output: <手动填写>

用 profile 的 cordis.patch.yml 覆盖默认值

如果要在 profile 层覆盖默认配置,在 profile 的 cordis.patch.yml 中添加 cost-tracker row。覆盖时必须用 id 定位行,而不是 name

- id: cost-tracker
  config:
    models:
      deepseek-v4-flash:
        inputMiss: <手动填写>
        output: <手动填写>

资料明确:以 name 作为键的覆盖行会被静默丢弃,价格会保持为 models: {}

存储与账单

  • 资料指出,跨会话全局账单和 /cost 命令在 available 时可用。
  • 没有 storage backend 的 profile 只在内存中保留账单。
  • per-session 成本是 projection,用于会话内的成本读数。

适用场景与注意

适合:

  • 需要在 DSH Web UI 中看到会话级成本读数的使用者。
  • 需要区分 total、peak、off-peak、per-model 成本的使用者。
  • 需要明确标记 unconfigured models 的团队。
  • 需要手动配置非 DeepSeek 模型价格的 DSH 用户。

注意:

  • 当前为 developer preview。
  • 当 adapter reports no accounting 时,assistant/message.usage 可能缺失。
  • session format 没有 compatibility promise。
  • 价格必须手动填写,单位是 currency units per million tokens。
  • 覆盖行必须使用 id: cost-tracker,不要用 name
  • 插件以当前 dsh 进程权限运行,安装前检查源码与许可证。
  • DSH 插件生态强调「一切皆插件」;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,本文不将其表述为官方应用商店。

结尾

yflmq001/dsh-cost-tracker 的价值在于把 DSH 会话里的 Token 成本拆成可配置的模型级价格、峰谷价段和未配置模型标记,避免未知模型被静默计价。

GitHub 仓库:https://github.com/yflmq001/dsh-cost-tracker

目录页 URL 未在已核实资料中提供。

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

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

Xiaoye