dsh-deepseek-cost:dsh-tui 里的 DeepSeek 官价台账与 Ollama 配额

前言

在 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜