miaoxingyunduo/dsh-session-cost ↗★ 0
@local/dsh-session-cost
Per-conversation token and money accounting: session_cost / list_session_costs tools, the /cost command, and a composer cost pill
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:miaoxingyunduo/dsh-session-cost配置字段
在界面里填单价(推荐):插件页 → 已安装 → @local/dsh-session-cost → 任一行 → 配置。
那一页的「模型单价」是一张可编辑表格,每个模型一行,直接输入数字即可:
模型(
/) 未命中 命中缓存 缓存写入 输出
deepseek-official/deepseek-flash 2 0.04 8 ×
deepseek-official/deepseek-v4-pro 9 0.3 27 ×
[+ 添加模型] 留空的「命中缓存 / 缓存写入」= 与未命中同价
模型 未命中 命中缓存 缓存写入 输出
DeepSeek-V4.1-Flash ¥2 ¥0.04 ¥2 ¥8 ← 只读预览(跟随 currency)
DeepSeek-V4-Pro ¥9 ¥0.3 ¥9 ¥27
▸ 高级:直接编辑 rates JSON
- 未命中、输出必填;命中缓存 / 缓存写入留空 = 与未命中同价(DeepSeek 的缓存写入不单独计费);
- **「+ 添加模型」**加一行,每行的 × 删掉该行(至少留一行);
- 表格只改这四列,同一模型上的其它字段会被保留(
label、offPeakMultiplier、inputOffPeak等),不会因为你在界面上改了一个价就把高级设置悄悄删掉; - 模型名必须写成
/,可以直接复制下面只读预览里的键名; - 下面是只读预览:按当前
currency标注单位,把每个模型的四个单价列全,一眼能看出 「我填的价会不会被这么算」; - 最下面的**「高级」**是可折叠的
ratesJSON 原文——要写表格没有暴露的字段 (inputOffPeak之类)时用它;两处是同一个值的两个视角,改哪边都会同步另一边的表格; - 保存前会校验:缺
input/output、值不是数字、模型名没有/、模型名重复,都会拒绝保存 并指出是哪一行哪个字段——因为 Host 挂载时会拒绝这种表,那会让整个读数不显示, 所以宁可在这里拦住。
字段清单(表格没覆盖的部分用「高级」直接写):
| 字段 | 默认 | 含义 |
|---|---|---|
rates | DeepSeek 官方价(见下) | JSON:`" |
/"→ 每 100 万 token 的单价,**单位与currency` 一致** | ||
currency | {"symbol":"¥","code":"CNY","perUsd":1} | 展示货币;perUsd 是 1 美元兑多少该货币 |
offPeakMultiplier | 0.5 | 非高峰价 = 高峰价 × 该系数,只对「峰谷价」的模型生效(见 peakPricing) |
offPeakTimezone | UTC | 判断高峰时段的 IANA 时区 |
offPeakHolidays | 空 = 用内置清单 | 中国法定节假日(YYYY-MM-DD,逗号分隔),这些日期全天按非高峰价 |
dshHome | 空 | 空 = $DSH_HOME,再退回 ~/.dsh |
单价表每个条目可用的字段:
| 字段 | 必填 | 含义 |
|---|---|---|
input | ✅ | 未命中缓存的输入价 |
output | ✅ | 输出价 |
cacheRead | 命中缓存的输入价;缺省 = input | |
cacheWrite | 缓存写入价;缺省 = input(DeepSeek 不单独计费) | |
label | 界面/报告里显示的名字,如 DeepSeek-V4.1-Flash | |
peakPricing | 该模型是否有高峰/非高峰两档价;不填时按键名判断:含 deepseek 才是 true,其余一律 false(固定价) | |
offPeakMultiplier | 该模型自己的非高峰系数,覆盖全局值;只对 peakPricing: true 的模型生效 | |
inputOffPeak / cacheReadOffPeak / cacheWriteOffPeak / outputOffPeak | 直接写死非高峰价,覆盖系数;同样只对峰谷价模型生效 |
峰谷价只属于 DeepSeek。这是实测踩到的第二个坑:插件原来把非高峰折扣套在了每一条已配置
单价的路由上,于是本机真实存在的 our-free-model/mimo-v2.6-flash-free(只有一个固定价)被算成
半价,面板还理直气壮地写着「非高峰 ×0.5」——那个模型根本没有低谷时段。现在的规则是:
- 键名含
deepseek的路由 → 峰谷价(deepseek-official/*、deepseek-account/*); - 其它一切路由 → 固定价,全天按表里的价格,面板显示「固定价」;
- 想覆盖就在该条目写
peakPricing: true(比如 DeepSeek 模型走了别的 provider 名, 或某个转售商也分时计价)或peakPricing: false(比如 DeepSeek 模型被按平价转售)。
实测(本机全部会话日志 + 已装配置):修复前 our-free-model/mimo-v2.6-flash-free
合计 ¥0.945,修复后 ¥1.8907,正好差一倍;同一份数据里三条 DeepSeek 路由金额
一分不变(¥48.9713 / ¥10.5830 / ¥0.523)——也就是这次修正没有动到本来就正确的部分。
默认表按 DeepSeek 官方定价 的高峰价
填写,单位是人民币元 / 百万 token——因为 DeepSeek 账号本身以人民币计费、余额也按人民币变动。
非高峰由 offPeakMultiplier: 0.5 折半(官方非高峰价为高峰价的一半):
{
"deepseek-official/deepseek-flash": { "label": "DeepSeek-V4.1-Flash", "input": 2, "cacheRead": 0.04, "output": 8 },
"deepseek-official/deepseek-v4-pro": { "label": "DeepSeek-V4-Pro", "input": 9, "cacheRead": 0.3, "output": 27 }
}
为什么默认是人民币,而不是美元:这是实测踩到的坑。DeepSeek 的官方文档同时给出美元价 (Flash 高峰
$0.3 / $0.006 / $1.2)。早期版本照抄美元价、currency写$,于是同一个 会话显示$1.1262,而平台余额实际扣了 ¥9.06——看起来像"统计少了一个数量级",其实是 币种错了,而且因为不能拿中美汇率当 1 用,误差正好是汇率倍数。把单价表和currency都 换成账号自己的人民币口径后,同一个会话算出 ¥4.9610,与平台对得上。如果你的账号是美元计费(或你想看美元),把
rates换成美元价、currency换成{"symbol":"$","code":"USD","perUsd":1}即可——两处必须同时改,只改一个就会差一个汇率。
高峰时段(官方脚注):周一至周五 01:00–04:00 与 06:00–10:00 UTC,
不含中国法定节假日——节假日全天按非高峰。窗口是规则,节假日是日历,所以后者是
offPeakHolidays 数据:内置 2026 年清单,每年 11 月国务院公布次年安排后需要更新
(不更新只会把工作日节假日按高峰算,即偏高,不会偏低)。留空就用内置清单,填了就完全替换。
这个窗口只对峰谷价的模型生效(键名含 deepseek,或显式 peakPricing: true);
固定价模型不看时间,也就不会因为节假日/时段变化而算错。offPeakHolidays 与
offPeakTimezone 只在前者身上起作用。
价格会变,请以官方页面为准自行更新。