用量与计费

大模型 API 价格对比:一张挂牌费率表漏掉的五个变量

Ethan Cole

你能搜到的每一份大模型 API 价格对比,几乎都是一张「每百万 token 挂牌单价」的表。这种表好做、好读,但对预测你实际要付多少钱基本没用——因为挂牌单价只是决定账单的至少五个变量之一,而且不是差距最大的那一个。

这篇讲的是一套经得起真实业务检验的价格对比方法:哪些变量真正起作用、一个可以回溯到一手来源的完整算例,以及为什么一张挂牌数字表会持续误导那些认真读它的人。

为什么挂牌单价决定不了你的账单

挂牌价是每百万 token 的费率,输入与输出分开报。从这个费率到你的发票之间,还隔着四件事。

输入和输出的价格不一样,通常差四到五倍。 所以你的实际混合单价取决于你自己的输入产出比,而这个比例在不同业务之间差异极大。分类任务是发进去一大堆、返回几乎没有;起草任务是发进去一点、返回一大片。两个团队按同样的挂牌价付费,混合成本可以差三倍,而且谁都没被多收。

缓存折扣改变的是算式,不只是总额。 在支持前缀缓存的地方,重复的上下文按输入价的一个零头计费。对于每一轮都重发一大段稳定前缀的 agent 类业务,这不是一个尾数级修正——它是主导项。一家挂牌价更高但缓存有效的服务商,在生产环境里可以比一家挂牌价更低但没有缓存的更便宜。

分词器不同,所以 token 数在服务商之间不可直接比较。 同一段文字在不同地方不会变成同样多的 token。这意味着每 token 的费率只有在你先按「各家会把你的文本数成多少 token」归一化之后才可比。哪怕在同一家自己的产品线内部这也会变:Anthropic 说明其较新的分词器对同一段输入计出的 token 数约为旧分词器的 1 到 1.35 倍,所以跨代迁移时官方建议重新建立基线,而不是默认沿用旧的 token 数。

思考 token 按输出计费。 在回答前先思考的模型上,思考过程是被生成出来的文本,无论是否展示给你,都按输出价收费。两个挂牌价完全相同的模型,如果一个内部更啰嗦,成本可以差出一截。

还存在批处理与异步档位。 能容忍延迟的工作通常有折扣——Anthropic 的批处理档是半价。如果你有相当一部分量对延迟不敏感,那部分适用的费率根本不是定价页首页那个。

一个数字可回溯的完整算例

与其复制一张几周内就会过期、而且我无法逐行核实的多厂商对照表,不如把一家的完整产品线摆出来,好让这套方法有具体对象可以运算。下面是 Anthropic 一方的挂牌费率,取自 Anthropic 自己的当前模型参考文档、缓存日期 2026-06-24,单位为美元每百万 token:

模型

输入

输出

Claude Fable 5

10.00

50.00

Claude Opus 5

5.00

25.00

Claude Opus 4.8

5.00

25.00

Claude Opus 4.7

5.00

25.00

Claude Sonnet 5

2.00

10.00

Claude Sonnet 4.6

3.00

15.00

Claude Haiku 4.5

1.00

5.00

按上一节的方法去读这张表,会看到几件跨厂商对照表反而会盖住的事。

输出价全线都是输入价的五倍,所以单看输入那一列几乎什么都告诉不了你。Sonnet 5 明明是更新的型号,价格却低于 Sonnet 4.6,可见「越新越贵」也不是一条能跨产品线套用的规律。而最便宜与最贵之间差了十倍——这个跨度大于同能力档位上多数竞争服务商之间的差距,也就是说:在同一家里选对模型,通常比在几家之间选服务商更影响成本。

再把缓存这一项代进去。Anthropic 的缓存读取按基础输入价的十分之一计费,写入溢价为短时缓存 1.25 倍、长时缓存 2 倍,盈亏平衡点落在针对同一前缀的第 2 到第 3 次请求。对于每轮都重发 5 万 token 前缀的业务,用缓存与不用缓存在输入侧的差距大约是一个数量级。没有任何一张跨厂商对照表里有这一列,而它比那些表真正展示出来的差异都要大。

缓存这一侧的完整机制——断点放哪、缓存命中为什么会静默失效、以及怎么确认你真的命中了——见Claude API 提示缓存。单一厂商的费率明细在Claude API 价格

真正决定胜负的那个指标

你买的东西不是 token,所以每 token 多少钱不是那个指标。每完成一个任务多少钱才是。

一个更便宜但需要试三次、或者产出还得再过一遍才能用的模型,并不便宜。这是大模型成本对比中最常见的错误,而且任何止步于定价页的方法都看不见它。一个高一档、第一次就做对的模型,哪怕挂牌价贵一倍,也可能是更省的那个选择。

这一点也推翻了关于能力档位的一个常见直觉:把更强的模型调到较低的推理投入去跑,经常优于把较弱的模型开到满档,而总成本相当甚至更低——而且它让你留在同一个缓存命名空间里,因为缓存是按模型隔离的,任何多模型路由方案都会放弃在它所路由的那些模型之间复用缓存。一个看起来单次请求更便宜的降级级联,在缓存未命中上损失的可能比它在费率上省下的更多。

这套对比具体怎么跑

  1. 收集真实样本。 二十到五十条能代表你实际流量的请求,不要用合成 prompt。合成样本会系统性低估前缀长度,而前缀长度恰恰是缓存作用的那个变量。
  2. 逐家实测 token 数,不要估。 拿你的样本去调各家自己的 token 计数接口。分词器差异在这一步才从理论变成数字。
  3. 用你自己的输入产出比算混合单价。 实测输入 token 乘输入价、实测输出 token 乘输出价。得到的才是你的实际单价,它不会等于任何一家定价页上的数。
  4. 用你的真实前缀代入缓存项。 把输入拆成「可缓存前缀」与「易变余量」,前缀按缓存读取价计,再按你的流量形态补上写入溢价。
  5. 按完成任务数计分,不按请求数。 把样本端到端跑完,数清有多少条不用重试就产出了可用结果,再用总花费除以这个数。
  6. 情况一变就重跑。 费率会动、模型会加、你自己的流量形态也会漂。一份对比是一次带日期的测量,不是一条事实。

如果你做对比的目的部分是把几家收拢到一个统一接口后面、而不是二选一,架构侧写在LLM API 网关;两种主流请求格式在接入层面的差异写在Claude vs GPT API

当前数字去哪里取

挂牌费率会变,任何被抄进文章里的数字从落笔那一刻就开始老化——包括上面那张表,这也是它为什么带日期。请把各家的官方定价页当作当前费率的唯一权威来源,把任何第三方对照表(包括这一份)都当作方法演示而不是实时报价。

由此引出两个实用习惯。一是在你决定架构的那一刻去核费率,而不是在你第一次读到它的时候。二是用你自己实测的流量建立自己的成本基线,因为当周围所有挂牌价都在动的时候,只有这个数还保持有意义。

常见问题

哪家大模型 API 最便宜?

这个问题在「服务商」这一层没有答案,因为同一家产品线内部不同模型之间的价差,通常大于同能力档位上不同服务商之间的价差。能回答的版本是:「对我这份特定流量来说,哪个模型、开在哪个推理投入档、配什么缓存方案最便宜」——而这是一次测量,不是一次查表。

我能不能只比每百万 token 的输入价?

不能。输出价是输入价的数倍,所以你的混合单价取决于你自己的输入产出比;而缓存折扣能把输入侧整体挪动一个数量级。孤立看输入那一列,是定价页上信息量最低的一个数。

同一段文字为什么在不同服务商那里 token 数不一样?

各家用各家的分词器。同一段文字经过不同分词器会变成不同数量的 token,所以每 token 的费率必须在你实测出各家对你的文本实际计出多少 token 之后才可比。

思考 token 收费吗?

收,在会生成思考的模型上按输出价计费,无论那段推理是否展示在响应里。同样的挂牌价下,内部推理更啰嗦的模型更贵。

更便宜的模型是不是一定账单更低?

不是。如果它需要更多次尝试、或者产出还要再修,那么每完成一个任务的成本可能超过一个一次就成功的更强模型。永远按完成任务计分。

总结

挂牌的每百万 token 费率是价格对比的起点,不是它的实质。输入与输出定价不同、分词器之间不可比、思考按输出计费、缓存能把输入侧挪动十倍、批处理档给能等的活打折。真正决定哪个选项更便宜的那个数,是在你自己的流量上测出来的「每完成一个任务的成本」——而这个数在任何一家的定价页上都读不到。

ROIBest AI 提供同时兼容 OpenAI 与 Anthropic 协议的端点,也就是说本文描述的这套测量可以直接拿你现有的客户端去跑,不必先重写接入。