多模型 API 用量监控与成本控制实践
> 这篇文章讨论多模型调用中的用量记录和安全控制。重点是如何知道请求花在哪里、如何设置预算边界,以及怎样避免密钥泄露。文中的数字是演示数据,不代表任何服务商的当前价格或赠送额度。 ## 为什么要记录用量 同时使用多个模型后,成本问题常常来自调用分散在不同工具里。一个脚本调用一次,一个 IDE 插件调用一次,自动化任务又调用一次。月底查看账单时,很难判断哪一类任务占用了大部分额度。 我先把每次调用统一记录成四个字段。字段分别是日期、模型名称、输入 token 和输出 token。需要进一步分析时,再增加任务名称、调用结果和响应时间。字段少一些,反而更容易坚持记录。 ``` { "date": "2026-08-24", "model": "model-a", "task": "摘要测试", "input_tokens": 1200, "output_tokens": 430, "status": "ok" } ``` ## 把记录汇总成日报 下面的脚本读取本地 JSONL 文件,按模型汇总输入和输出 token。文件中不保存密钥,也不保存完整提示词,只保留用于统计的字段。 ``` from pathlib import Path import pandas as pd source = Path("usage.jsonl") rows = pd.read_json(source, lines=True) summary = ( rows.groupby("model", as_index=False)[["input_tokens", "output_tokens"]] .sum() .sort_values("output_tokens", ascending=False) ) summary["total_tokens"] = ( summary["input_tokens"] + summary["output_tokens"] ) print(summary.to_string(index=False)) ``` 汇总表只能告诉我用量,不能直接说明成本。不同模型的计价方式不同,实际金额应当使用对应服务的账单或官方价格表核对。文章中的示例不据此推导任何平台的价格结论。 ## 设置预算和异常提醒 我把预算分成日限额和月限额。日限额用于拦截脚本失控,月限额用于提醒长期趋势。阈值不写死在代码中,而是放在本地配置文件里,方便按项目调整。 ``` daily_token_limit: 200000 monthly_token_limit: 3000000 alert_ratio: 0.8 ``` 日报完成后,程序只输出“正常”“接近阈值”或“超过阈值”三种状态。超过阈值时停止非必要的批量任务,保留人工确认入口。这样做可以避免错误循环持续消耗资源,同时保留人工恢复的机会。 ## 密钥和日志的边界 用量统计不需要读取真实密钥。调用程序只从环境变量获取密钥,日志中只记录模型名称和状态码。任何调试输出都要检查一次,确认没有把请求头、完整 URL 或密钥片段写进去。 ``` export MODEL_PROVIDER_A_KEY="从系统密钥链读取" python usage_report.py --input usage.jsonl ``` 文章和示例代码中不放注册入口、领取入口或推广链接。读者如果要接入某个服务,应当自行查看服务商的官方文档和当前协议。 ## WorkBuddy 可以负责什么 WorkBuddy 适合编排本地日报流程。我的提示词只描述文件位置、校验规则和输出格式,不要求它代替用户登录、输入验证码或处理支付信息。 ``` 读取 usage.jsonl,检查必需字段,执行 usage_report.py,输出按模型汇总的表格。若文件不存在或字段缺失,停止并说明原因,不要猜测数据。 ``` 自动化完成后,我仍然会抽查原始记录和汇总结果。统计脚本可以减少重复劳动,不能替代账单核对。 ## 小结 多模型成本控制的第一步是统一记录,第二步是设置可解释的阈值,第三步是把密钥和业务日志分开。用量数据、价格数据和安全数据要分别核验。这样得到的报告才有复用价值,也不会把一篇技术文章写成平台推广清单。