wfengq/DSH-Tally--packages-tally ↗★ 0
dsh-tally
dsh 的用量、计价、余额与预算共享数据层:按请求记账、预算提醒、浏览器 Remote API 和对账工具 适合需要按请求记账、预算提醒和历史会话回填的DSH多用户或多会话场景。
同名パッケージの別リポジトリ
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wfengq/DSH-Tally#e9cbf3529557185b9eac305c5c7ca569573383c8&path:packages/tallyドキュメント
README 全文を読む ↗配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
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。 |
backfillBatch | 20 | 回填时每批同时读取的会话数。 |
balanceDebounceMs | 3000 | 记账后刷新余额前的去抖时间(毫秒)。 |
balanceMinIntervalMs | 60000 | 同一路由两次自动刷新余额之间的最小间隔(毫秒)。 |
balanceTimeoutMs | 10000 | 余额请求的超时时间(毫秒),超时后请求被中止。 |
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,提示界面重新读取数据。