xinshang777/dsh-turn-cost ↗★ 0
dsh-turn-cost
在每轮回复时间戳旁显示该轮API消耗费用 适合使用DeepSeek官方API、需要精细监控单轮成本的用户。
同名套件的其他儲存庫
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xinshang777/dsh-turn-cost說明文件
閱讀完整 README ↗使用教程
-
看费用 —— 装完重启、刷新页面,随便问一句,回复下方时间戳旁就会多出金额。
-
明白"什么时候才可见" —— 金额与原生时间戳共享同一套显隐规则(这是刻意对齐 DSH 上游的交互,不是 bug):
位置 显示时机 时间线最后一轮 常显 其余轮次 鼠标移到那一轮上时才显示 如果你希望所有轮次都常显,可以自行注入一行 CSS:
[data-actions-reveal=hover]:has([data-dsh-turn-cost]) .xzv4MW_actions { opacity: 1 }代价是该轮所有操作按钮也一起常显,与 DSH 默认行为不一致,所以本插件默认不做。
-
点上下文百分比压缩上下文 —— 点击
28%那个数字,插件走官方 command 路径触发/compact,等价于你手打/compact;超时默认 120 秒。 -
历史会话也能看到金额 —— 插件用 DSH 的
sessionPersistence回填历史会话,切回旧会话时之前的轮次也会显示金额(按事件自身发生的时间判定峰谷)。 -
(可选)调配置 —— 编辑
~/.dsh/profiles/web/cordis.patch.yml,在dsh-turn-cost的config:下调整。
flowchart TD
A["DSH 运行时
产出 usage 事件"] --> B["lib/index.js
订阅并去抖"]
B --> C["pricing.mjs
按事件时间判峰谷"]
C --> D["ledger.mjs
写 turns.json"]
D --> E["assets/client.js
挂到时间戳节点"]
E --> F["页面显示
28% · ¥0.0123"]
F -->|"点百分比"| G["走官方 command
触发 /compact"]
配置项
配置写在 ~/.dsh/profiles/web/cordis.patch.yml 的 dsh-turn-cost: config: 下。注意是整体替换:只写几个字段就只生效这几个,其余回落到下表默认值。
| 名称 | 类型 | 默认值 | 是否必填 | 作用 |
|---|---|---|---|---|
currency | string | "¥" | 否 | 货币符号 |
decimals | number | null | null | 否 | 小数位;null = 自适应(≥1 显示 2 位 / ≥0.01 显示 3 位 / 其余 4 位) |
tinyLabel | string | "¥<0.0001" | 否 | 四位小数仍为 0 时的替代文案 |
showContext | boolean | true | 否 | 在金额前显示该轮结束时的上下文占用百分比,点击可压缩 |
compactTimeoutMs | number | 120000 | 否 | 触发 /compact 的超时(毫秒) |
pollMs | number | 1200 | 否 | 页面可见时的轮询间隔(毫秒) |
pollMsHidden | number | 6000 | 否 | 页面隐藏时的轮询间隔(毫秒) |
priceUnknownProviders | boolean | false | 否 | 非 DeepSeek provider 是否仍按 _default 计价 |
includeCacheWrite | boolean | false | 否 | 是否把 cacheWriteTokens 按未命中价计入 |
backfill | boolean | true | 否 | 是否用 sessionPersistence 回填历史会话 |
maxReplayEvents | number | 50000 | 否 | 单个会话回填的事件上限 |
ttlDays | number | 30 | 否 | 账本数据保留天数 |
maxSessions | number | 200 | 否 | 最多保留多少个会话 |
maxTurnsPerSession | number | 2000 | 否 | 单会话最多保留多少轮 |
maxBytes | number | 4194304 | 否 | 账本文件字节上限(4 MB) |
debounceMs | number | 400 | 否 | 落盘去抖(毫秒) |