CHIP-PHILO-GH/dsh-turn-cost ↗★ 0

dsh-turn-cost

在输入框下方与本轮对话尾部显示「本轮 / 本对话」消耗的人民币金额(只读 DSH 既有槽位与用量事件,不修改 DSH 任何源码与样式) 适合需要实时监控Token消耗、支持峰谷计价和自定义汇率的用户。

パッケージ
dsh-turn-cost
互換性
未検証
バージョン
1.0.0
ライセンス
MIT
最終更新
2026/09/15

同名パッケージの別リポジトリ

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:CHIP-PHILO-GH/dsh-turn-cost

ドキュメント

README 全文を読む ↗

配置项

本插件没有自己的配置文件。 价格口径直接沿用 dsh-cost-meter 的账本配置:

\storages\cost-meter\ledger.json   →   顶层 "config" 字段

`` 取环境变量 DSH_HOME,未设置时取 ~/.dsh。 这个文件不存在、读不了或格式不对时,插件不会报错,而是整份退回内置兜底配置(见「计价依据」)。

config 里被读取的字段一共这些,其余字段一律忽略:

键类型缺省说明
symbolstring¥金额前缀。空串或非字符串时用 ¥
decimalsnumber4显示小数位。先向下取整,再夹到 0–10
exchangeRatenumber7.2美元 → 人民币汇率。非正数或非数字时用 7.2
peakEnabledbooleanfalse峰谷计价开关。必须严格等于 true 才启用(字符串 "true" 不算)
peakEffectiveAtstring无峰谷档生效时刻,交给 Date.parse 解析。该时刻之前的调用一律按基础价
peakWindowsarray[]峰时段窗口,单位是 UTC 小时,见下
prices.modelsobject{}模型 id → 单价记录
prices.defaultobject兜底单价模型没登记时用它

单价记录(prices.models. 与 prices.default)的字段:

键说明
cacheHit缓存命中价(缓存读取与缓存写入都用它)
cacheMiss未命中输入价
output输出价
offPeak可选。非峰时段档位,字段同上;缺失时退回基础价
peak可选。峰时段档位,字段同上;缺失时退回基础价

三条归一化规则:单位一律是美元 / 1M tokens;记录里缺哪个字段,就用兜底单价里的同名字段补; offPeak / peak 里缺的字段再用该记录自身的基础价补。

peakWindows 的每一项是 { start, end },单位是 UTC 小时(0–23):

  • start end:跨零点环绕,命中 [start, 24) ∪ [0, end);
  • 某项的 start / end 不是有限数字 → 该项被忽略。

peakEnabled 为 true 时还有一条容易踩的规则:peakEffectiveAt 必须是能解析成时间的字符串。

  • 有效:该时刻之前的调用一律按基础价;之后落在窗口内用 peak 档,其余用 offPeak 档;
  • 无效或缺失:落在窗口内仍然用 peak 档,但窗口外一律用基础价——offPeak 档不会被用到 (代码只在「调用时刻 ≥ 生效时刻」时才取 offPeak)。

判定用的是调用发生的时刻(事件自带时间戳,缺失时退回当前时刻),不是「现在」。

⚠️ 配置在插件加载时读一次。改完账本要重启 dsh web 才生效。

有账本配置时

只要 ledger.json 读得到,用的就是账本里的价格表、汇率、小数位与峰谷规则; 内置那份兜底表只在读不到的时候整份顶上(模型级单价缺失时退回 prices.default,default 也缺失时退回兜底单价)。