前言¶
在 dsh-tui 里跑 ollama-pro 上的 DeepSeek 模型时,内置底栏会显示 model、token 和 cost,但计价口径未必与 DeepSeek 官方价表一致,也看不到按输入、缓存读、输出拆开的官价汇总。若同时开多个 TUI 实例,用量还容易各自为政。下面介绍的 dsh-deepseek-cost 是维护者 Lucas2011wastaken 发布的 客户端 类 dsh-tui 插件:给 ollama-pro 上的 DeepSeek 模型套上 DeepSeek 官方计价(峰谷、缓存命中/未命中、人民币),结果落在底栏字段和右侧共享台账面板,并可选展示 Ollama Cloud 的 5 小时、周、付费月配额。插件只使用公开接缝(session/event、ctx.tuiStatus.setField、ctx.tuiPanels),不改主包代码;仓库当前版本为 0.5.1(MIT 许可证)。
这是什么¶
dsh-deepseek-cost 监听会话用量事件,按官方价表计算费用,在 dsh-tui 提示框下方底栏(紧跟内建 model/token/cost)增加官价字段,并在 右侧栏 提供跨 TUI 实例共享的台账面板。默认只对 ollama-pro provider 记账;其它 provider 的用量不进账。插件同时可作为 dsh-tui 插件系统的压测件,验证多实例、面板与配额轮询等能力。
核心功能¶
底栏官价字段¶
开启 status.enabled(默认 true)后,底栏显示 DeepSeek 官价摘要,前缀默认为 DS官价。status.placement 支持 auto(有 setField 用底栏,否则回退状态行)、footer、line;槽位可选 left-tail / right-head / right-tail。悬停可查看 token/金额明细(status.detail);点击可打开台账面板(status.click)。未完全计价的 token 会以 warning 色调提示。
台账面板¶
面板标题默认为「DS 官价台账」,展示:
- 本会话:面板侧用当前活跃会话;底栏字段取最近活跃的主会话。
- 今日 / 本周 / 本月 / 累计:官价金额及输入、缓存读、输出 token 汇总。
- Ollama 配额:老套餐显示 5h、周剩余百分比与重置倒计时;新套餐显示月度余额/额度/周期。配额为账户级,含非 DeepSeek 模型,与下方官价表口径不同,面板上已分别标注。
- 峰谷时段:默认按北京时间工作日 9–12、14–18 为峰,并内置 2026 年中国法定节假日表(可用
holidays覆盖)。
0.5.0 起移除了面板与悬停中的缓存命中率,避免与内置底栏「主会话最后一次请求」的命中率口径冲突;要看缓存效果可直接看内置底栏。
多 TUI 实例共享台账¶
0.5.0 起台账由整份 JSON 读写改为 每进程 append-only JSONL,默认目录为 ~/.dsh-tui/deepseek-cost/instances/。各进程只追加自己的文件,启动及每 storage.refreshMs(默认 10s)增量合并其它实例文件,避免多开互相覆盖。配额请求通过 quota.json 缓存与 quota.lock 单飞,默认 60s 轮询 GET https://ollama.com/api/balance。
区间口径¶
| 行 | 窗口 |
|---|---|
| 本会话 | 当前活跃会话(面板)/ 最近主会话(底栏) |
| 今日 | 北京时间当天 00:00 → 现在 |
| 本周 | 有 weekly.resets_at 时 [resets_at - 7d, resets_at),否则自然周 |
| 本月 | 新套餐用 period;老套餐用 billing.anchor 或 <storage.dir>/billing-anchor;否则自然月 |
| 累计 | 保留期内全部事件(默认 storage.keepDays 为 45 天) |
计价公式¶
费用按百万 token、事件发生时刻的峰/谷桶计价:
费用 = 输入(未命中) × 未命中价
+ 缓存读(命中) × 命中价
+ 缓存写入 × 未命中价(展示并入「输入」)
+ 输出 × 输出价
安装与启用¶
推荐从 GitHub 安装(仓库已提交 lib/,安装时无需构建):
/plugin install github:Lucas2011wastaken/dsh-deepseek-cost
命令行等价:
dsh plugin --profile dsh-tui add github:Lucas2011wastaken/dsh-deepseek-cost
本地开发可用绝对路径:
/plugin install /absolute/path/to/dsh-deepseek-cost
或:
dsh plugin --profile dsh-tui add /absolute/path/to/dsh-deepseek-cost
运行环境要求 Node ^22.19 || >=24(见 package.json 的 engines)。安装后重启 dsh-tui;若从旧版台账升级,需 重启所有 TUI 实例,旧进程仍写旧格式,不会进入新 JSONL 日志。
卸载:
/plugin remove dsh-deepseek-cost
卸载不会删除 ~/.dsh-tui/deepseek-cost/ 下的用户数据;彻底清理可手动删除该目录及 ~/.dsh-tui/plugin-storage/dsh-deepseek-cost.json。
典型用法¶
配置付费月锚点(老套餐)¶
老套餐 /api/balance 无 monthly period 时,「本月」可对齐订阅续费日。可在 profile 配置 billing.anchor(ISO 8601),或写入文件(配置非空时优先 profile):
echo '2026-09-15T09:30:00+08:00' > ~/.dsh-tui/deepseek-cost/billing-anchor
Ollama 配额凭据¶
插件依次尝试环境变量 OLLAMA_PRO_API_KEY、OLLAMA_API_KEY,以及 ~/.dsh/.credentials.yaml 中的 refs.<NAME>。凭据只读、仅在内存持有,不写日志或配额缓存文件。因 dsh 权限模型限制,配额请求使用全局 fetch 直连 ollama.com;若不想联网,可设 quota.enabled: false。
常用配置片段¶
总开关与各模块默认值见 README 配置表。典型调整示例:
providers:默认['ollama-pro'],限定记账范围。storage.dir:台账与配额缓存目录,默认~/.dsh-tui/deepseek-cost。status.label:底栏前缀,默认DS官价。panel.enabled/status.enabled:分别控制侧栏面板与底栏字段。
完整键名与默认值以仓库 README 为准;debug: true 可在日志中打印解析后的配置(不含凭据)。
适用场景与注意¶
适合谁:长期在 dsh-tui 里通过 ollama-pro 使用 DeepSeek 模型、需要与官方价表一致的人民币台账,并希望在同一机器多开 TUI 时合并统计、顺带查看 Ollama Cloud 配额的用户。
权限与安全:插件以当前 dsh 进程权限运行;安装前应阅读仓库源码与 MIT 许可证,确认网络访问(配额轮询)与本地写入(~/.dsh-tui/deepseek-cost/)符合你的环境策略。社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。
口径提醒:官价只计 DeepSeek 模型;Ollama 配额为账户级且含其它模型。内置底栏 cost 与插件官价字段来源不同,并存时以各自标注为准。
结尾¶
经过上面的步骤,你可以在 dsh-tui 底栏和侧栏同时看到 DeepSeek 官价与跨实例台账,并在配置 API key 后查看 Ollama 5h/周/付费月配额。更多细节、面板示意与迁移说明见仓库 README。