命中率 97% 还在烧钱?我用 Claude Code 写了个 DeepSeek 用量监控台

声明:本文由 Claude Code 辅助撰写,文中工具的开发同样借助 AI 编程。

起因:余额在掉,但账单是黑盒

用 Claude Code 接 DeepSeek 之后,我养成了每天看余额的习惯------但也只能看到余额:官方提供余额查询接口,没有按请求的消费明细。钱花在哪个项目、哪类请求最烧钱、缓存命中率多少、高峰和空闲时段各花了多少,全是黑盒。

所以我在 Claude Code 的帮助下写了一个小工具:本地代理 + Tkinter 看板,让每一次 API 请求都变成一行带费用的明细账。

效果:打开看板,一眼看清

看板分几个区域:

  • 概览卡片:账户余额、今日使用、请求数、输入/输出 tokens、总费用、缓存命中率、高峰/空闲费用
  • 趋势图:余额分钟折线(最近 30 分钟)+ 按天费用柱状图(历史天)
  • 请求明细:最近 200 条,含来源、会话 ID、工作目录、提问文本、单笔费用
  • 按提问聚合:同一会话、间隔小于 10 分钟的请求算一次提问,统计每次提问的轮数、tokens、费用

(以下为示意数据,非真实账单):

指标 示例值(示意)
请求数 2200+
缓存命中率 97% 左右
总费用 ¥150 上下,日均约 ¥30
高峰 / 空闲费用 约 2 : 1

看数据最大的收获:账单大头其实是缓存命中的钱,该不该优化、能省多少,第一次有数字可以算。

原理:一个代理,三个客户端,边转发边记账

架构一句话:

bash 复制代码
Claude Code / Codex ──► 本地代理(127.0.0.1:8787)──► DeepSeek 官方 API
                              │
                              └─ 转发完成后解析 usage,写 logs/日期.log

三个关键点:

  1. 协议分流,多客户端 :/v1/messages 走 Anthropic 兼容端点,/v1/responses(Responses API)与 /chat/completions 走 OpenAI 兼容端点------同一个代理,Claude Code、Codex 都能过,看板还会按路径自动识别来源、分别统计。
  2. 流式也记账 :SSE 响应逐行扫 data:,usage 字段取最大值(流式会分多次推送)。
  3. 计价按官方规则 :deepseek-v4-pro 的高峰/空闲价不同------北京时间工作日 9:00-12:00、14:00-18:00 算高峰,其余时间半价。节假日与调休补班按国务院通知内置(2026 年数据已录入),不是简单判周末。

使用:两分钟接上

bash 复制代码
python ds-monitor.py   # 纯标准库,零依赖,单文件

代理默认开在 8787,然后二选一:

  1. 点监控台"打开命令行"按钮------自动注入 ANTHROPIC_BASE_URL 开一个代理终端,不污染全局配置;
  2. 或全局配置一次:
json 复制代码
// ~/.claude/settings.json
"env": { "ANTHROPIC_BASE_URL": "http://127.0.0.1:8787" }

Codex CLI 同理,三行配置:

toml 复制代码
# ~/.codex/config.toml
model = "deepseek-v4-pro"
wire_api = "responses"
base_url = "http://127.0.0.1:8787"

看板每分钟轮询一次官方余额接口写快照,"今日使用"按快照下降量累加。

几个值得说的细节

1. 充值会把"首尾相减"算错。 用"今天第一笔余额 − 现在余额"算使用量,中途充值会让结果虚增甚至为负。我的算法是相邻快照差值累加,充值自动分段不冲抵。

2. 按提问聚合消费。 一次提问可能触发几十轮工具调用,"每笔请求"维度看不出单次提问成本。看板支持按"会话 + 提问"聚合,统计每次提问的轮数、tokens、费用。

3. 服务器版余额记录器。 不想天天开看板,我写了个零依赖的 Node 脚本部署到云服务器 24 小时跑,每分钟写一行余额快照;看板把快照文件同步回本地就能看趋势,漏掉的时间段自动累计进下一行差值,总量不漏算。

4. 一个彩蛋:练手移植了个 C 版。 Win32 原生 GUI,exe 只有 127KB,和 Python 版日志格式互读兼容。不是为了替代,就是想看看零依赖到极致是什么手感,已归档。

踩过的坑(挑五个)

  • Windows Terminal 的 ; 陷阱 :wt.exe 会把整个命令行按分号拆成多条子命令,引号都挡不住。注入代理环境变量的 PowerShell 脚本只能用 -EncodedCommand(UTF-16LE base64)传参,命令行里不能出现分号。
  • 30 秒余额采样一半是重复的:DeepSeek 余额约每分钟结算一次,扣费集中在整分到半分之间,30 秒双采样浪费,改成每分钟一次。
  • OpenAI 嵌套 token 字段 :input_tokens_details.cached_tokens 已包含在 input_tokens 里,不扣掉会按全价重复计费、费用虚高。两种协议字段名要对齐归一再记账。
  • Windows GBK 输出崩溃 :文件头 sys.stdout.reconfigure(encoding="utf-8") 是必须的,不然控制台一跑就崩。
  • Codex 改了 base_url 不生效:Codex 的请求由 app-server daemon 进程发出,配置在启动时就被缓存------改完 config.toml 只重启 TUI 没用,必须杀掉 codex.exe daemon 再重开。

写在最后

这个工具的思路其实很轻:代理 + 解析 usage,能做的事远不止记账------按项目统计、按模型对比、超支告警,都是顺着日志字段往上加的事。API 用量透明化,对重度 AI 开发的人来说,是刚需。

相关推荐
延晗2 小时前
【从零开始 DeepSeek Harness 插件开发教程】一、DeepSeek Harness 初体验:从零跑通开发者预览
人工智能·deepseek
yuanyxh3 小时前
我的工作流
agent·claude·deepseek
skywalk81635 小时前
FreeBSD系统在Deepseek-harness中配置使用其它几家的模型,比如hy3 hunyuan-2 glm5.3-flash等
人工智能·freebsd·deepseek·harness
大模型真好玩8 小时前
用TRAE、DeepSeek-Harness、DeepSeek-V4.1-Flash-1017再现特斯拉Roadster汽车飞行名场面
人工智能·agent·deepseek
史瓦辛格1 天前
给 DeepSeek Harness 写费用插件:把「这次会话花了多少钱」算准
前端·deepseek
第十人i1 天前
DeepSeek 中断近 5 小时,补偿是把故障前一周的 API 消费退成赠金
deepseek
天府云创1 天前
SRE之DeepSeek 10月15日故障分析、旁推和思考
网络·数据库·人工智能·故障处理·deepseek·api恢复
xiezhr1 天前
WorkBuddy白送500积分,大家快来领
ai·deepseek·deepseek大模型·workbuddy
一鹿向晗992 天前
如何在vscode/IDEA的CC GUI插件中用ccswitch导入配置
deepseek·claudcode