dsh-token-billing

by cxlg66you-bot

开发与运行时github收录于 08-23

DeepSeek Harness(dsh)持久化 Token 计费插件:按每次模型调用的 token 用量计费, 默认人民币单价,账单落盘持久保存,并提供对话工具、统计栏金额与设置面板三处入口。

Persistent token billing plugin for DeepSeek Harness (dsh): bills per model call, defaults to CNY pricing, persists bills to disk, with entries via a conversation tool, a stats-bar amount and a settings panel.

安装

dsh plugin --profile web add github:cxlg66you-bot/dsh-token-billing

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

License: MIT Platform: DeepSeek Harness Currency: CNY GitHub last commit

DeepSeek Harness(dsh)持久化 Token 计费插件:按每次模型调用的 token 用量计费, 默认人民币单价,账单落盘持久保存,并提供对话工具、统计栏金额与设置面板三处入口。

功能

  • 计量:挂在 llm/stream 瀑布事件上,零侵入透传所有 chunk,读取每次模型调用的 inputTokens / outputTokens / cacheReadTokens / cacheWriteTokens / reasoningTokens

  • 计费口径(与 DeepSeek 官方一致): 未命中缓存输入 + 缓存写入 × 输入单价;缓存读取 × 缓存读单价;输出 × 输出单价;推理 token 默认按输出单价

  • 持久化:账单存于宿主 storageDomain(~/.dsh/storages/token_billing.json), 跨重启、跨会话累计;单价表同样持久化,可随时修改

  • 默认单价(¥ / 1M tokens,DeepSeek 官方价,可改):

    模型 输入 缓存读 输出
    deepseek-reasoner 4 1 16
    deepseek-chat 2 0.5 8
    *(兜底) 2 0.5 8
  • 三处入口:

    1. 对话工具 billing_report(report / list-prices / set-price / remove-price / set-currency / reset)
    2. 输入框下方统计栏实时金额:💰 本会话 ¥x · 累计 ¥y · N 次调用(每 5 秒刷新)
    3. 设置 → 「Token 计费」实时面板(总量、按会话、最近调用、单价表、清零按钮)

目录结构

dsh-token-billing/
├── token-billing.js        # 宿主插件:计量 + 计费 + 持久化 + billing_report 工具 + HTTP API
├── token-billing-web/      # Web 客户端包(dsh.client)
│   ├── package.json        #   dsh.client 声明与 exports(必须含 ./package.json 子路径)
│   └── lib/
│       ├── index.js        #   空宿主半(行挂载用)
│       └── client.js       #   统计栏金额 + 设置面板(手写 ModuleLoader bundle)
├── dynamic-plugin/         # 动态插件演进史归档(pkg-1 ~ pkg-5,见该目录 README)
├── docs/screenshots/       # 界面截图(统计栏、设置面板)
├── cordis.patch.yml        # profile patch 层插入示例
├── LICENSE                 # MIT
└── README.md

界面预览(截图)

插件生效后,计费信息出现在三个位置:

  1. 统计栏金额(输入框正下方):💰 本会话 ¥x.xxxx · 累计 ¥y.yyyy · N 次调用, 每 5 秒自动刷新;

    统计栏金额

  2. 设置面板:侧边栏 → 设置 → 「Token 计费」,含总量、按会话明细、 最近调用、单价表与「清零账单」按钮;

    设置面板

  3. Run 卡面板(仅动态插件时代):旧版临时面板,重启后由前两者接管。

安装(以 dsh --profile web 为例)

  1. 把仓库内容放到 profile 目录:

    cp -R dsh-token-billing/. ~/.dsh/profiles/web/
    
  2. 建立包链接(clientModules 以 bare 名解析 token-billing-web):

    mkdir -p ~/.dsh/profiles/web/node_modules
    ln -sfn ../token-billing-web ~/.dsh/profiles/web/node_modules/token-billing-web
    
  3. 把 cordis.patch.yml 中的 insert 块合并进 ~/.dsh/profiles/web/cordis.patch.yml(保留文件原有头部注释)。

  4. 重启 dsh web,然后刷新浏览器页面。

宿主插件依赖 zod、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-storage-domain, 这些都会通过 dsh 维护的 ~/.dsh/profiles/node_modules 平铺回退目录解析,无需手动安装。

使用

  • 对话里直接说「查一下账单」,助手调用 billing_report 返回报告
  • 修改单价:billing_report 的 set-price(pattern + input/output/cacheRead/cacheWrite/reasoning)
  • 切换币种:set-currency(如 CNY / USD)
  • 清零:reset,或设置面板中的「清零账单」按钮
  • 统计栏与设置面板每 5 秒自动刷新

HTTP API(客户端面板使用)

  • GET /api/token-billing/summary — 总量、按会话聚合、最近 12 次调用、单价表
  • POST /api/token-billing/reset — 清零账单

注意事项

  • 账本最多保留最近 300 条调用明细,总额与会话聚合不受影响
  • 运行中的宿主不保证热加载 patch 层;修改后请重启 dsh web
  • 若统计栏/设置页未出现,先硬刷新浏览器(Cmd/Ctrl+Shift+R)

原始 README: https://github.com/cxlg66you-bot/dsh-token-billing/blob/main/README.md ↗