wfengq/DSH-Tally--packages-tally ↗★ 0

dsh-tally

dsh 的用量、计价、余额与预算共享数据层:按请求记账、预算提醒、浏览器 Remote API 和对账工具 适合需要按请求记账、预算提醒和历史会话回填的DSH多用户或多会话场景。

Package
dsh-tally
Compatibility
Unverified
Harness peer range
>=0.2.0-0 <0.3.0-0 || >=0.2.1-0 <0.3.0-0
Cordis peer range
>=4.0.4-0 <4.1.0-0 || >=4.0.5-0 <4.1.0-0
Version
0.1.0-beta.1
License
MIT
Last updated
Oct 13, 2026

Other repositories with this package name

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wfengq/DSH-Tally#e9cbf3529557185b9eac305c5c7ca569573383c8&path:packages/tally

配置项

配置项默认值说明
providerRoutes{ "deepseek-official": "deepseek", "deepseek-account": "deepseek" }会话日志里的路由 id 到价格数据厂商的映射。官方 DeepSeek 在日志里有两个路由 id:deepseek-official(API key 登录)和 deepseek-account(账号登录)。没有映射的路由按同名厂商查价格。
overrides[]厂商价格覆盖,见下文。可以在设置页修改,改动立即生效,插件不重新加载。
dbPath$DSH_HOME/tally/tally.v1.sqlite账本数据库文件。未设置 DSH_HOME 时为 ~/.dsh/tally/tally.v1.sqlite。
backfillBatch20回填时每批同时读取的会话数。
balanceDebounceMs3000记账后刷新余额前的去抖时间(毫秒)。
balanceMinIntervalMs60000同一路由两次自动刷新余额之间的最小间隔(毫秒)。
balanceTimeoutMs10000余额请求的超时时间(毫秒),超时后请求被中止。
budgetPath$DSH_HOME/tally/budgets.json预算文件,同时保存已提醒的阈值。未设置 DSH_HOME 时为 ~/.dsh/tally/budgets.json。
timeZone宿主时区预算按日、按月统计时使用的 IANA 时区,例如 Asia/Shanghai。

价格覆盖

自建网关或第三方转发的路由不在价格数据里,可以用 overrides 指定价格。同一个路由只有第一条覆盖生效。

按某个已知厂商(及可选的模型)的价格计:

overrides:
  - provider: my-gateway
    kind: alias
    target:
      provider: deepseek
      model: deepseek-flash   # 可选,省略时沿用日志里的模型名

手动填写单价(每百万 token,十进制字符串):

overrides:
  - provider: my-gateway
    kind: manual
    currency: CNY
    models:
      my-model:
        input: "2"
        cacheRead: "0.5"     # 可选
        cacheWrite: "2"      # 可选
        output: "8"

手动价格没有峰谷之分(band 为 flat),推理 token 计入输出。某个维度没有填单价却用到了 token 时,这条记录视为“无价格”(cost: null),不会按 0 计。

单价写错(例如不是合法的十进制数)、或者别名指向的厂商或模型不在价格数据里的覆盖会被跳过:插件照常运行,日志里输出一条警告,ctx.tallyUsage.status().errors 里也会列出这条覆盖对应的厂商。

overrides 是可在设置页直接编辑的配置项(volatile):保存后价格规则在原地重建,插件不重新加载。因为金额是查询时现算的,修改后所有查询(包括历史账目)立即按新规则计价,不需要重建账本;Remote 的 status 和 catalog 也随之更新,打开着的 watch 流会收到一条新的 hello,提示界面重新读取数据。