估算大模型 API 成本时,不能只看模型单价。真实费用还会受到输入历史、输出长度、失败重试、工具循环和模型路由影响。本文不写固定价格,避免模型价格调整后产生误导。
开始前检查
先收集一批真实业务样本,至少包含:
- 普通短问答。
- 带历史记录的多轮对话。
- 长文档或代码输入。
- 工具调用或 Agent 任务。
- 失败、超时和重试请求。
模型价格、倍率和可用范围以 AI快站控制台及价格页面实时展示为准。
配置步骤
1. 记录一次请求的完整用量
如果接口返回 usage,至少保存:
{
"model": "YOUR_MODEL_ID",
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0,
"retry_count": 0,
"status": "success"
}
上面使用 Chat Completions 常见的 prompt_tokens、completion_tokens 和 total_tokens。Responses API 或其他兼容接口可能使用不同字段名,必须按实际响应解析。账务核对应以控制台记录为准,应用日志用于分析请求结构和趋势。
2. 使用可复算的成本公式
单次任务成本
= 输入用量 × 输入单价
+ 输出用量 × 输出单价
+ 重试请求成本
+ 工具循环产生的额外请求成本
不要只统计最终成功的那一次。如果前面已经生成内容但客户端超时,相关请求仍可能产生用量。
3. 找到最常见的隐性成本
| 隐性成本 | 检查方法 |
|---|---|
| 每轮重复发送全部历史 | 记录每轮 input_tokens 是否持续快速增长 |
| 输出没有长度限制 | 检查任务是否需要明确停止条件或输出结构 |
| 失败后无限重试 | 记录 retry_count 与最终状态 |
| Agent 工具循环 | 记录每个工具步骤的模型请求次数 |
| 所有任务使用同一高成本模型 | 按任务难度统计质量与成本 |
| 流式中断后重新生成 | 为任务设置幂等标识并保留已完成状态 |
4. 按任务路由模型
先按任务类型建立小型评测集,再决定路由:
- 分类、抽取、格式转换:优先评估低延迟、低成本模型。
- 复杂代码、长推理:重点比较成功率和返工次数。
- 图像、视频、检索:按实际输入输出单位单独统计,不能直接套文本 Token 公式。
- Agent:统计完整任务成功所需的总调用次数,而不是只看单次价格。
便宜但经常返工的模型,完整任务成本可能更高;价格更高但一次完成的模型,也可能更适合关键流程。
5. 设置预算保护
建议同时设置:
- 单次任务最大输出长度。
- 单用户每分钟请求数。
- 单任务最大工具循环次数。
- 单日或单项目预算提醒。
- 异常重试和用量突增告警。
常见问题
为什么控制台费用和本地估算不完全一致
可能原因包括价格倍率变化、缓存或推理用量细分、流式中断、重试未计入、本地字段缺失或异步记账延迟。财务核对应以控制台账单为准。
输入越短就一定越便宜吗
通常能减少输入用量,但不能牺牲任务必要信息。过度压缩导致模型反复追问或输出错误,可能增加总调用次数。应比较“完成一次业务任务”的总成本。
如何判断是否应该换模型
同时比较成功率、人工返工时间、延迟和完整任务成本。只按单价排序,无法反映真实业务效果。
下一步
建立每周用量报告,按模型、接口、用户、业务功能和错误类型分组。先修复无限重试、历史膨胀和工具循环,再考虑更复杂的路由策略。