openai 的 api 是收费

成本与用量

把 OpenAI 接口「怎么收费、按什么算、钱花在哪」一次讲清,并给出一套自己动手核对与压成本的顺序。

很多开发者第一次调 OpenAI 接口时,最懵的不是代码怎么写,而是钱按什么扣:是按次?按月?还是按字数?跑起来之后又会发现账单和心里估的对不上。这篇不讲虚的,只回答一件事——这套计费机制到底怎么运作,以及你该怎么把它变成可控的开销。

很多开发者第一次调 OpenAI 接口时,最懵的不是代码怎么写,而是钱按什么扣:是按次、按月,还是按字数?跑起来之后又会发现账单和心里估的对不上。这篇不讲虚的,只回答一件事——这套计费机制到底怎么运作,以及你该怎么把它变成可控的开销。

先把结论放前面:这套接口不是包月制,你花的钱和处理的内容量直接挂钩。同一段代码跑一次和跑十次,费用完全不同。所以「写完了能花多少」这个问题,只有在你把输入输出规模和调用频次都想清楚之后才有答案。

先搞清钱是按什么单位收的

接口按处理的内容量计费,不是按调用次数,也不是按月订阅。这意味着你一次请求里塞进去的文字越多、模型吐出来的字越多,扣的就越多。输入和输出是分开算的,输出那一侧通常更贵,而输出长度由模型自己生成,你在写代码时并不能完全按住它——这是预算跑飞最常见的来源。

计费组成部分谁决定它的大小常见的失控原因
输入量你在请求里拼进去的内容把整段历史对话、整份文档反复塞进去
输出量模型生成,你只能间接约束没设输出上限,模型发散写很长
调用次数你的业务逻辑和重试策略失败重试、循环调用、测试流量混进生产

具体单价、输入输出各差多少,别背数字,这种数字会变。到 /official-api/providers/openai 看当期口径,再用自己的真实文本到 /tools/token-price-calculator 折一次,得到的才是你这段业务的实际单价,而不是别人文章里的参考值。

谁在用、走哪条路,决定账单归谁

直连官方账号、走云厂商托管、走中转站,这三条路的计费入口不同,扣费主体也不同。先确定自己属于哪一种,再谈省钱,否则你在优化一个根本不属于你的账单。渠道不同,口径也可能不一样,托管和转发的折算方式不一定等于官方原价。

  • 直连官方账号:用量和扣费都在自己账号里,对账最直接
  • 云厂商托管:计费挂在云侧,口径看 /official-api/providers/azure 这类页面
  • 中转渠道:通常按倍率折算,折算方式看 /ai-nav/category/ai-api 的说明
  • 不确定手上是哪种:先用 /tools/verify 做一次在线实测,确认渠道真伪再算成本

这里有个前置动作容易跳过:如果连渠道是不是真官方都没确认,算出来的成本数字没有意义。先用 /tools/verify 实测一次,确认走的是哪条路,再往后谈估算。

接入前先估一笔,别等账单

估算只需要三个数:单次任务的平均输入量、平均输出量、每天调用次数。前两个别凭感觉拍,用真实样例跑一遍拿到;第三个看你业务的实际活跃量。把这三个数代进 /tools/model-cost-calculator,得到一个日成本区间,再乘预期的活跃天数,才是能写进预算的数。

  1. 拿真实样例跑一遍用业务里最典型的一条请求,记录输入和输出各多少,不要用「大概几百字」这种近似。
  2. 代进成本计算器把三个数填进 /tools/model-cost-calculator,看它给出的日成本区间,而不是单次成本。
  3. 留出冗余再乘天数重试、失败重发、多轮对话累积的上下文都会让实际量高于单次测算,估算里必须留这块空间。

估算和账单对不上,多半不是计算器错了,而是实际运行里多了你没算的部分。所以估算的目的是定一个数量级和上限,不是精确预测。

跑起来之后怎么跟账单对账

固定一个复盘周期,把用量记录和账单逐项对:输入量、输出量、调用次数三项分开看。哪一项超了,才知道问题出在写代码的方式上,还是出在渠道的折算上。三项混在一起看总量,永远找不到原因。

  • 是否有循环调用的 bug,导致同一请求被反复发出
  • 是否把测试流量混进了生产环境,把调试成本算进了正式账单
  • 是否有渠道在单价上做了倍率换算,账单价和官方口径不是一回事
  • 是否有重试逻辑写得过猛,失败后无上限地重发

价格本身会变,别用几个月前的记忆做判断。定期到 /price-watch 和 /official-api 对一次当期数字,再决定要不要换模型或换渠道。这一步花不了几分钟,但能避免你基于过时认知做决策。

想降下来,从这几处下手

最直接的省钱手段是压缩输入:把历史对话、重复的背景资料从每次请求里摘出去。输入少了,成本立刻下来,而且不影响输出质量。相比之下,纠结换哪个模型往往是次要动作。

动作什么时候适用什么时候不适用
压缩输入内容上下文里有大量重复或无关资料任务本身依赖完整上下文才能答对
按任务分层选模型简单分类、抽取这类任务任务对准确率要求高、错一次代价大
设置用量上限和提醒调用量波动大、容易跑飞调用量稳定且已经在预算内

按任务分层选模型时,别只看价格。简单任务用便宜档位通常没问题,但效果会不会打折,参考 /models 里的能力说明再定。用量监控和告警的字段思路,可以借 /tools/quality-monitor 的通用做法,把「花多少」「调多少次」放在同一块看板上。

下一步先确认自己的渠道和当期口径,再动手估算和压缩输入,比空想省钱有用得多。

常见问题

OpenAI 的 API 一定要付费才能用吗?

正常调用是要付费的,但新账号常见一次性体验额度这类政策,具体有没有、给多少,以官方当期说明为准。别按记忆里的数字做预算,先去 /official-api/providers/openai 看现在的情况,再决定是先试还是直接充。

为什么我按调用次数算的费用,和实际账单差很多?

因为计费单位是内容量不是次数。同样一次调用,短问短答和长文总结可能差出几十倍。想算准,得拿真实样例分别测出输入和输出量,再用 /tools/token-price-calculator 折算,光数次数一定会偏。

把同一个请求重发一次,会被算两次钱吗?

通常只要服务端真的处理了并返回了结果,就会计入计费;失败在计费前被挡掉的情况另说。稳妥做法是自己的代码里做去重和限流,别让重试逻辑无限制地跑,重试相关的成本坑可以对照 /tools/quality-check 的思路排查。

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