OpenAI API 定价怎么看:输入、输出与缓存 token 成本怎么算
OpenAI API 按 token 计费,一次请求的成本由三部分构成:输入 token、输出 token、缓存输入 token,三者单价不同,必须分开看。估算月成本的基本公式是:输入 token 数 × 输入单价 + 输出 token 数 × 输出单价,命中缓存的输入部分按更低的缓存单价计算。适用条件是:你能拿到自己的实际调用量(token 数),并且以官方最新价目为准——价格会随新模型发布和官方调整变化。
三个计费项分别是什么
| 计费项 | 含义 | 计费特点 |
|---|---|---|
| 输入(Input) | 你发给模型的提示词、上下文、文档内容 | 按输入单价计费,通常是最主要的量 |
| 输出(Output) | 模型生成的回复内容 | 单价通常高于输入,长回答成本上升快 |
| 缓存输入(Cached Input) | 重复出现的输入前缀,被服务端缓存后复用 | 单价通常低于普通输入,重复上下文多的场景可显著降本 |
关键机制:缓存只作用于输入中重复的部分,输出永远按输出单价算。所以“把长文档塞进上下文反复提问”这类用法,缓存收益最明显;而“每次都要模型生成大段新内容”的用法,成本主要压在输出上。
怎么估算自己的月成本
- 取实际 token 量:从调用日志或用量面板拿到每类 token 的累计数(输入、输出、缓存命中分别统计)。
- 乘对应单价:分别乘以输入、输出、缓存输入的单价,再相加。
- 乘调用次数或按周期汇总:单次成本 × 月调用量,得到月成本区间。
- 验证:用一周的真实数据外推一个月,比拍脑袋估更可靠;注意区分测试流量和线上流量。
例如需要做一个每天处理 500 次问答的客服机器人:如果每次输入约 2000 token、输出约 300 token,且系统提示词固定不变(可命中缓存),那么成本主要由“输入 × 500”和“输出 × 500”决定,缓存部分能压掉固定提示词那一段的输入开销。
不同模型单价差距很大,按任务选型
同一家厂商的不同模型,单价可以差出数量级。以 pricepertoken.com 收录的数据为例(页面标注最后更新于 2026 年 10 月 4 日):
- OpenAI gpt-oss-20b:输入 $0.018 / 输出 $0.090 / 缓存输入 $0.003(每百万 token 量级)
- OpenAI gpt-oss-120b:输入 $0.030 / 输出 $0.100 / 缓存输入 $0.0045
可以看到,同系列里更大的模型单价更高,但差距不是线性的。选型逻辑是:简单分类、抽取、改写用便宜的小模型;需要推理、长上下文理解、复杂工具调用的任务再上更贵的模型。不要用旗舰模型跑所有请求,这是最常见的成本浪费。
和 Anthropic、Google、DeepSeek 等横向比
比价时要用相同维度:同一类 token(输入对输入、输出对输出、缓存对缓存),而不是只比一个“起价”。pricepertoken.com 这类聚合站的价值就在于把 300+ 模型的输入、输出、缓存单价放在同一张表里,并支持按能力筛选(工具调用、视觉、推理、缓存、开源等)。
对比时注意三点:
- 上下文长度不同,长文档场景要确认模型是否支持你需要的窗口。
- 能力标签(如是否支持缓存、工具调用)直接影响实际可用成本,便宜但不支持缓存的模型在重复上下文场景未必更省。
- 更新频率:聚合站标注“每日更新、来自官方价格”,但下单前仍应回官方价目核对一次。
常见卡点
- 只算输入不算输出:输出单价往往更高,长回答场景会严重低估成本。
- 忽略缓存命中率:固定系统提示词、固定知识库前缀如果不走缓存,等于白付高价输入。
- 拿旧价格做预算:新模型发布和官方调价都会改变单价,用前核对最新官方价目。
- 把测试量当线上量:小规模测试的单价感受和真实并发下的月账单差距很大。
价格与登录限制以官方和聚合站页面为准,未标注免费的项目不应默认免费。