很多人接完 GPT 5.2 Pro API,第一反应不是效果好不好,而是月底账单怎么和预估对不上。问题多半不在单价,而在你没搞清它按什么计量、哪些调用会叠加。这篇不讲模型多强,只讲钱怎么走:先对齐口径,再教你把预算做出来、把账单核清楚,最后给一套成本压下来的动作顺序,并说清什么情况下不值得压。
接完 GPT 5.2 Pro API,真正容易出问题的不是效果评估,而是月底账单跟预估对不上。多数人第一反应是怀疑单价涨了,实际上更常见的原因是你没弄清它到底按什么计量、哪些调用会被重复计入。这篇不讲模型能力,只把钱的事讲透:先把计费口径对齐,再把预算算出来,然后教你账单对不上时怎么排查,最后给一套成本下降的动作顺序,并说清哪些情况下不值得花力气去压。
全文所有涉及具体金额、单价档位、倍率的地方,一律不写死,只告诉你当前数字去站内哪个页面核对。价格是会变的,记在脑子里的数字很快过期,记在页面上的链接不会。
先搞清它按什么计量:不是按「次」收费
最容易踩的误解是「我调了一次就是一次的钱」。实际上绝大多数官方 API 是按 token 计量,输入和输出分开计,而且输入和输出的单价通常不一样。这意味着同样一次请求,你问得越长、它答得越长,成本差异可能是数量级,而不是百分比。
- 输入与输出分开计价是常态,输出侧单价通常更高,所以「问」和「答」的成本要分开估,不能合并成一个「每次多少钱」
- 同一次请求里被拆成多段计费的部分:系统提示词、多轮历史上下文、工具返回的内容、检索召回的资料,全部计入输入,别只算用户那句话
- 计价档位会随模型型号、上下文长度区间、是否走批处理通道变化,同一系列里不同档位的口径不一定相同
- 缓存命中的部分通常有单独的计价口径,能不能命中取决于你请求的前缀是否稳定,写死的说明别每次重新拼
当期数字去哪看,别背价格
价格会调整,档位会新增,背下来的数字迟早是错的。正确做法是把「去哪看」记成习惯:每次做预算、对账、评估降本方案之前,先打开对应页面确认当时的数字,再往下算。
| 你要确认的东西 | 去哪个站内页面 | 看的时候注意什么 |
|---|---|---|
| 输入/输出单价、上下文档位、批处理口径 | /official-api/providers/openai | 分输入、输出两栏看,不要只看一个综合数 |
| 多家官方 API 的价格横向对照 | /official-api | 确认你比对的是同一档位、同一通道 |
| 自己用量的即时折算 | /tools/token-price-calculator | 把自己的真实 token 量代进去,别用示例值 |
| 整月场景的成本估算 | /tools/model-cost-calculator | 按调用次数和平均长度代入,结果只当参考 |
| 历史价格变动记录 | /price-watch | 看调整时间点,和你的账单周期对齐 |
| 实际用量的分布情况 | /usage | 用来判断你的用量是不是典型分布 |
需要强调的是,这些页面给的是「当时的数字」。你写进预算表的时候标好取数来源和取数时点,下次复核时才知道要不要重取。
真正决定你花多少钱的四个量
单价只是乘数,真正让账单失控的是被乘数。下面四个量里,前两个通常涨得最快,也是最容易被忽略的。
- 请求数
- 每次调用都要重新付一遍上下文,多轮会话里这个量随轮次线性增长,不是只付一次
- 平均输入长度
- 包含提示词模板、few-shot 示例、检索回来的资料;模板里每加一条示例,都乘在每一次调用上
- 平均输出长度
- 从「一句话结论」到「一篇结构化长文」,输出侧差价可以很大,长度上限要写死在代码里
- 重试与失败调用
- 超时、限速后重发,很多情况下照样计入用量;重试策略怎么设计才不白花钱,参考 /guides/retry-billing-limits 的排查口径
想判断哪个量在主导你的成本,最简单的办法是把自己过去一周的日志拉出来,分别算日请求数、日输入量、日输出量三条曲线,看谁涨得最陡。只看总金额是看不出原因的。
把用量倒推成预算:一条能落地的算式
- 先量后算,别先算后量拿一周的真实用量日志,算出三个日均值:日均请求数、日均输入 token、日均输出 token,再算出一个平均每次请求的输入输出长度
- 套算式预算 = 请求数 ×(平均输入长度 × 输入单价 + 平均输出长度 × 输出单价),单价从 /official-api/providers/openai 取当期数字
- 加波动系数真实流量不会是平的,乘一个波动系数再放进预算表,具体给多少取决于你业务的峰谷差异,别用固定百分比照抄别人的
- 留出异常余量单独列一笔「异常与重试」的预算,不和正常用量混在一起,这样对账时能看清是哪部分超了
- 定期复核业务量变了、模板改了、加了新工具调用,都要重取单价和用量,重跑一遍算式
日志字段怎么设计才能撑得起这个算式,比如哪些字段能区分首次调用和重试、哪些能拆出系统提示占比,直接参照 /guides/usage-log-fields 的字段清单来定,缺字段的话事后补算非常痛苦。
对账:账单和预估不一致时的排查顺序
预估和账单对不上是常态,关键是按固定顺序查,不要一上来就怀疑单价。下面这个顺序是从「最常见的低级错误」到「较隐蔽的口径问题」排的。
- 第一步:比对计量单位,确认你把「每千 token」还是「每百万 token」这种单位换算对了,这个错误出现频率最高
- 第二步:把账单拆到单日,找出用量突增的那一天,再判断是流量涨了还是单个请求变长了,两种情况的处理方式完全不同
- 第三步:检查口径细节,比如缓存命中有没有生效、该走批处理的是不是走了实时通道、有没有误用了更贵的档位,这些细节的原理见 /guides/token-cost
- 第四步:核对充值预扣与最终结算的差额,把预扣当成最终花费是常见的误判来源
- 第五步:把这次差异的原因写进记录,下次做预算时把这一类偏差当作系数预留进去
| 症状 | 优先怀疑的方向 | 对应的动作 |
|---|---|---|
| 整体金额按比例偏高 | 单位换算错误或档位选错 | 回看计价单位,确认走的是哪个通道和档位 |
| 某几天突然变高 | 流量突增或单请求变长 | 拆到单日,看请求数曲线和平均长度曲线哪条陡 |
| 用量比日志统计多 | 重试、失败调用被计入 | 比对日志里的请求数与计费请求数的差额 |
| 金额和预扣差一截 | 把预扣当结算 | 确认最终结算口径,别用预扣金额做预算基准 |
把这个模型的成本压下来的动作顺序
降本动作有先后之分,顺序错了会花大力气省小钱。建议按下面的顺序做,前三步几乎不损失效果。
- 先改结构再改模型:砍掉冗余上下文、把固定说明放到可复用的位置让缓存能命中,这类改动省钱最快且不改变输出质量
- 给输出长度设硬上限:在代码里把最大输出长度写死,避免个别请求失控拖高整月成本
- 能异步就别实时:时间不敏感的任务走批处理通道,代价是结果回来得慢,收益是单价口径更友好
- 再考虑分流:把简单分类、抽取、格式转换类请求交给便宜模型,只有难任务留给这个模型
- 分流前先做任务级对比,参照 /guides/task-level-cost-compare 的方法逐任务验证,别凭感觉一刀切
- 最后才考虑压缩提示词本身,因为这一步最容易伤害效果,放在最后做并逐个验证
什么情况下这套降本动作不适用
不是所有场景都值得压成本,下面几种情况硬压反而亏。先判断自己属不属于这几类,再决定要不要投入人力。
- 任务对准确率极其敏感、一次错误返工的成本远高于调用成本时,换更便宜的模型省下的钱会被返工吃掉,这类任务不适合做模型分流
- 调用量本身很小,优化投入的人力成本可能远高于账单上的差额,这时重点应放在预算告警和用量可见性上,而不是压单价
- 合规或数据边界要求必须走某个特定通道时,可选项被限死,就别在切换方案上花时间
- 业务还在探索期、需求每周都在变时,过早做精细的成本优化,方案很快就会因为需求变化而作废
接入前后各一份清单
把上面的判断标准落成动作,就是下面这两份清单。建议直接贴进项目文档,接入和上线时逐条过一遍。
| 阶段 | 要做的事 | 验证方式 |
|---|---|---|
| 接入前 | 确认计量单位、确认计价档位、确认有无赠送额度及其过期规则 | 到 /official-api/providers/openai 逐项核对,写进文档 |
| 上线前 | 日志字段齐全、预算告警设好、单请求输出长度上限写死在代码里 | 用测试流量跑一遍,确认日志能拆出请求数、输入量、输出量 |
| 上线后 | 每周看一次日均用量趋势,每月做一次账单与记录的核对 | 对照 /guides/monthly-billing-reconcile 的步骤走一遍 |
| 降本前 | 先做任务级对比,确认换模型或走批处理不掉效果 | 拿同一批样本对比,记录差异 |
这套流程的核心不是记住某个数字,而是建立「取数—算账—对账—调整」的循环。单价随时会变,循环建立起来之后,每次只需要重新取一次数就能重新算清楚。
你背下来的价格一定会过期,你建立的核对习惯不会。下一步先打开官方价格页把当期输入输出两栏对一遍,再拿你上周的真实用量套进计算器,两分钟就能知道自己的预算算式离真实账单差多远。→
常见问题
GPT 5.2 Pro API 到底多少钱?
单价会变,而且输入和输出通常不是一个价,写死一个数字没意义。做法是去 /official-api/providers/openai 看当期两栏单价,再到 /tools/token-price-calculator 代入你自己的平均输入输出长度,算出一次调用大概多少钱。只看单价不看用量结构,很容易算出偏离实际的结论。
为什么我算的预估和实际账单差这么多?
最常见的原因是漏算了上下文重复计费——多轮对话每次都要把历史重新付一遍;其次是重试和失败请求也占了额度;再其次是计量单位看错,把每千 token 当成了每 token。按「单位→单日→单请求」的顺序排查,基本都能定位到那一段,具体口径差异见 /guides/token-cost。
用批处理通道能省多少?
通常有折扣,但折扣换的是等待时间,不是即时可用。判断标准只有一条:这个任务能不能接受延迟返回。能接受就值得走,不能接受就别为了折扣改架构。另外要确认折扣是按输入还是输入输出都降,不同通道的规则不一样,去 /official-api 核对当期说明。
调用量不大,还需要做成本管理吗?
需要,但重点不同。量小时压单价的收益很低,更该做的是设预算告警、限制单请求最大长度、把日志字段留全。这样一旦某个循环或重试逻辑出 bug 导致用量暴涨,你能在一晚之内发现,而不是月底看账单才知道。
换成便宜模型就一定更划算吗?
不一定。要看这个任务对错误的容忍度:错了要人工复核或重跑,返工成本会直接吃掉差价。做法是先做任务级对比,拿同一批真实样本在两个模型上各跑一遍,比总花费和人工修正时间,而不是只比单价,方法可参照 /guides/task-level-cost-compare。