很多人第一次看账单会懵:明明只是问了几句话,为什么扣的钱和心里估的差一截?问题多半不在模型贵不贵,而在你没搞清推理成本到底由哪几个量相乘、哪几个量被漏掉。这篇不讲虚的,只给一条能自己动手算的顺序,并告诉你每个数字该去站内哪一页核对。
很多人第一次看账单会懵:明明只是问了几句话,为什么扣的钱和心里估的差一截?问题多半不在模型贵不贵,而在你没搞清推理成本到底由哪几个量相乘、哪几个量被漏掉。这篇不讲虚的,只给一条能自己动手算的顺序,并告诉你每个数字该去站内哪一页核对。
先说清楚适用范围:下面这套口径只针对文本为主的对话与生成场景。图片、语音、按分钟或按次计费的产品要换另一套量去算,硬套 token 公式只会越算越偏。
推理成本到底指什么,和训练成本不是一回事
推理成本是「每次调用模型产生的那笔开销」,训练成本是模型做出来之前的一次性投入,两者不该混在一张表里比。日常运营里你关心的是前者,因为它随用量线性增长,用户越多花得越多。
- 推理成本
- 每次请求实际跑模型时产生的开销,按用量反复发生
- 训练成本
- 模型成型前的一次性投入,跟单次调用次数无关
- 按量计费
- 由输入量、输出量、单价三块相乘得出
- 按次/按订阅/按积分
- 只是把上面三块包了一层,拆开看还是同样的量
判断口径是否适用有个简单办法:问自己「这个产品的账单会不会随我发的内容变长而变贵」。会变,就按三块相乘来算;不会变,说明它是包价,得先折算成等效用量才能横向比较。
决定推理成本的几个量,按影响大小排一遍
同样是问一句话,为什么有人花几分有人花几毛?差距基本来自下面这几个量。按影响大小从上往下排,先盯最上面那项,通常就够了。
| 量 | 包含什么 | 为什么容易看错 |
|---|---|---|
| 输入 token | 系统提示、历史对话、上传文档 | 长对话里它往往是最大头,容易被忽略 |
| 输出 token | 模型写回的内容 | 单价通常高于输入,写长文时代码时最易失控 |
| 单价与倍率 | 渠道、分组决定的当下单价 | 比价前先去官方 API 价格对齐原厂口径 |
| 缓存与重试 | 命中缓存的输入、失败后重发的请求 | 各有独立计价规则,漏算是账单对不上的常见原因 |
- 输入 token:把系统提示、历史轮次、参考资料分别估一遍再加总,别只算你手打的那句话;
- 输出 token:按你要求的长度上限估,别按期望值估,模型经常写超;
- 单价与倍率:同一模型在不同渠道、不同分组下单价不同,先到 /official-api 对齐原厂口径;
- 缓存与重试:命中缓存的输入和重复重试的请求各自算量,这两项是预估与账单打架的常客。
一次调用的成本怎么算:四步手工推演
公式本身不复杂,难在每一步取数要取对。下面四步按顺序做一遍,你就能得到一个区间,而不是一个拍脑袋的点。
- 估输入量把系统提示、历史轮次、参考资料分别估一遍再加总,方法参考 /ai-dict/category/basics 里的 Token 与上下文条目。
- 估输出量按你要求的长度上限估,不要按实际期望值估,模型经常写超;给输出的上限留出余量。
- 取单价到 /official-api 或 /sites 找当下的数字,不要记旧数,价格是会动的。
- 乘起来加总输入量×输入单价 + 输出量×输出单价,再乘预计调用次数,得到的是一个区间而非一个点。
单次调用成本 ≈ 输入 token × 输入单价 + 输出 token × 输出单价;总成本 ≈ 单次成本 × 调用次数(含重试)想省事可以用 /tools/model-cost-calculator 代算,但公式要自己会推一遍,不然换了个计费方式就不知道怎么改参数了。估出来的应该是「大概多少到多少」,任何给你一个精确到小数点后两位的承诺都别当真。
算完别急着信:三处最容易对不上账
算出结果和真实账单对不上,先别怀疑模型贵,按下面三处逐一排查,八成能找到差在哪。
- 缓存:命中缓存的输入和首次写入的输入计价不同,先用 /tools/token-price-calculator 把口径统一;
- 倍率与分组:中转渠道的倍率会改变最终金额,看 /sites 里的分组说明,别拿官方单价直接乘;
- 失败与重试:超时、报错、被限流后重发的请求一样会出量,把这些算进预算区间。
什么时候这套算法不成立?批量跑 Agent 任务、工具调用循环这类步数不固定的场景,只能按「单轮成本 × 预估步数」给个上限,事后用真实用量回填。另外单价和倍率随时会变,每次比较都到站内页面核对当时的数字,别拿上个月记下来的数直接套。
下一步把你这周的真实用量导出来,按上面四步回填一次,再拿结果去 /price-watch 看看同任务在不同渠道下的成本差多少,差值往往比换模型更值得调。→常见问题
推理成本和训练成本到底差在哪?
训练成本是把模型练出来的一次性投入,摊到整个生命周期;推理成本是每跑一次请求就产生一次的开销,随调用量线性增长。做预算时只需要盯推理这一侧,除非你自己要训模型。
为什么我按单价算出来的钱和账单差很多?
通常是漏了三块:长对话里反复带上的历史输入、输出比预期长、以及失败重试的请求。另外渠道倍率也会改变单价。建议先用站内换算工具对一遍口径,再拿真实用量回填修正。
输入和输出谁更贵,该优先压哪一个?
多数模型输出单价高于输入,所以先压输出:限长度、要求结构化返回、别让模型长篇复述。输入侧的优化更多靠裁剪历史对话和复用缓存,收益取决于你的对话有多长。