openai api 是怎么收费的

成本与用量

讲清 OpenAI API 按 token 收费的基本逻辑:钱花在哪些环节、怎么自己算一遍、以及去哪里核对当期单价。

第一次接 OpenAI API 的人常卡在同一件事上:充值进去的钱是怎么被扣掉的?为什么同一段提示词,改了几个字账单就不一样?这篇不讲官方涨跌,只把计费结构拆开:哪些部分计入 token、输入和输出为什么分开算、缓存和批处理这类口径会把账改成什么样。看完你能自己搭一张估算表,也知道该去站内哪一页核对当时的单价。

第一次接 OpenAI API 的人常卡在同一件事上:充值进去的钱是怎么被扣掉的?为什么同一段提示词,改了几个字账单就不一样?这篇不讲官方涨跌,只把计费结构拆开:哪些部分计入 token、输入和输出为什么分开算、缓存和批处理这类口径会把账改成什么样。

看完你能自己搭一张估算表,也知道该去站内哪一页核对当时的单价。先记住一句:这套是「按量」逻辑,不按请求次数收。所以判断贵不贵,永远要连着用量一起看。

钱到底花在哪几块

最核心的一条:输入和输出分开计价,各自有各自的单价,不是按你调了几次接口收。同样一段提示词,输出写得长,账就明显上去;反过来,输入里塞了大段上下文,也一样贵。

输入 token
你发过去的内容,包括对话历史、系统提示、工具描述、检索回来的文档
输出 token
模型生成回来的内容,通常单价和输入不是同一个数
非文本模态
出图、语音转写、嵌入这些各有各的计量单位,不能拿文本单价直接比
附加费用项
部分接口有单独的调用费、存储费,工具调用产生的额外 token 也计入

什么情况下不适用:如果你用的是订阅制或套餐额度的产品,那不按这套按量口径算,别拿 API 的尺子去量它。两条产品线分开看,预算也别混在一张表里。

Token 是怎么数出来的

Token 不等于字数。中英文、代码、标点的切分规则都不同,同样「看起来一样长」的两段文字,token 数可能差一截。所以别用字数估,用实际返回的用量字段对。

  • 多轮对话每轮都要重发上下文,是累加的,不是只算你新打的那句
  • 系统提示词和工具描述都算输入,很多人只算了用户问题,所以估出来总偏低
  • 同一段提示词改几个字,如果动的是切分边界,token 数会有可见变化
  • 自查动作:拿一个小样本任务重复跑几次,把返回里的用量字段抄下来,和你自己的估算对一遍

对不上的时候,先怀疑漏算了上下文,而不是怀疑计费出错。绝大多数「怎么这么贵」的疑问,最后都落在没把历史对话和系统提示算进输入。

自己算一遍:从用量到钱

  1. 固定一个任务,重复跑几次记录每次的输入 token、输出 token、调用次数。跑多次是为了看波动,不是看单次。
  2. 取当期单价到 OpenAI 官方价目与图片视频模型对照(/official-api/providers/openai) 看当时的数字,输入价和输出价分别取,别用一个混合均价。
  3. 把量代进去用日均调用量乘以单次的输入输出用量,得出区间。只算单次没有意义,预算看的是规模。
  4. 交叉核对用 模型成本计算器(/tools/model-cost-calculator) 代入用量,再拿 Token 单价换算(/tools/token-price-calculator) 核一下单位有没有搞错。
估算项怎么取常见坑
输入 token对话历史+系统提示+工具描述+用户问题只算用户那句,偏低
输出 token模型实际生成的长度按最大长度估,偏高
调用次数日均请求量按日活估,漏掉重试
单价到官方价目页看当期拿旧截图做预算

同样用量,账单为什么不一样

用量一样、账单不同,通常是这几个因素在动。先把它们和「单价涨跌」区分开,再决定要不要换方案。

  • 缓存:命中缓存的输入部分通常更便宜,但命中条件不满足就按原价,别把它当默认值写进预算
  • 批处理:能等结果的活走批处理通道,口径和实时不一样,不过要把等待的时间成本也考虑进去
  • 模型档位:同一个任务换小模型还是大模型,差的是单价而不是用量,先定任务再定模型,别反过来
  • 口径对齐:比价前先确认对方报的是输入价、输出价还是混合均价,这一条搞错全盘皆错

什么情况下这些优化没用:任务本身对延迟敏感、或者输出长度不可控的时候,缓存和批处理能压的空间很有限,这时候更现实的做法是缩小上下文、或者把任务拆细。

别背数字,去这几页看当期

价格是会动的,所以这篇不写具体数字。你要做预算的时候,去站内这几页拿当期口径,比记任何截图都靠谱。

想知道什么去哪一页
官方当期单价官方 API 价格(/official-api)
同规模团队大概什么量级真实用量榜(/usage)
价格涨跌历史价格变动追踪(/price-watch)
订阅制产品怎么算官方订阅地区价(/plans)

注意最后一行:订阅制和 API 按量是两套账,别混着算。做 API 预算就看 API 那几页,用订阅产品就别拿 token 单价去套。

下一步把你自己那个任务的输入输出用量记下来,到官方价目页取当期单价,代进计算器跑一遍,你会比看任何解读都清楚这笔钱花在哪。

常见问题

OpenAI API 是按次收费还是按用量收费?

主流是按用量,也就是按 token 收,输入和输出各算各的。少数接口会有按次或按别的单位计的项,比如图片按张、语音按分钟。同一份提示词跑两次、结果长度不同,扣的钱就不一样,所以用「一次多少钱」来估基本不准。

为什么我算出来的钱和实际扣的对不上?

最常见的三个原因:多轮对话把历史上下文重复计入了;系统提示词和工具描述没算进输入;缓存没命中导致输入按原价走。建议先拿一个固定任务跑几遍,把接口返回的用量字段和自己的估算逐项对齐,再放大到全量。

缓存能省多少,是不是默认就省?

不是默认省。要满足命中条件才按优惠口径算,条件不满足就按普通输入价走,所以同一段提示词有时便宜有时不便宜。缓存命中率、命中条件这些细节,基础概念词典(/ai-dict/category/basics) 里有解释,账怎么被改动去看站内关于缓存与计费口径的专篇。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。