GPT API 的成本计算常让开发者头疼:官方标价“$X / 1M tokens”,但中文文本的 token 消耗、多轮对话的累积效应、Batch 和缓存折扣如何影响最终账单?本文从真实业务场景出发,用实际数字演示从价格表到账单的全过程,并给出可直接套用的费用预估公式。
一、先搞懂 OpenAI 的计费逻辑
1.1 输入和输出是分开算的
每次 API 调用收取两笔费用:输入 tokens(prompt,含 system prompt、用户输入及历史对话)和输出 tokens(模型回复)。输出价格通常比输入贵 2~3 倍。例如 GPT-4o(2025 年 6 月数据):输入 $2.50/1M tokens,输出 $10.00/1M tokens。
1.2 1M tokens 到底是个啥?
1M tokens 即一百万个 tokens。tokens 是模型处理的最小单位,中英文分词差异大:英文约 1.3 tokens/单词,中文约 1.8 tokens/汉字。实测参考:1000 英文单词≈1300 tokens,1000 汉字≈1800 tokens,1000 代码字符≈2500 tokens。注意 system prompt 也会占用输入 tokens,累积不可忽视。
1.3 上下文窗口放大费用
模型最大上下文窗口(如 128K)接近时费用猛涨。以 GPT-4o 为例:一次调用输入 100K tokens、输出 10K,费用 = 0.1×$2.50 + 0.01×$10.00 = $0.35;同任务用 GPT-4o mini(输入 $0.15,输出 $0.60)则只需 $0.021,相差 16 倍。
二、真实场景算笔账:翻译 10 万字中文文档
2.1 任务拆解
翻译 10 万汉字中文技术文档。三种做法:
A. 一次性全部输入(需上下文 >128K,当前 GPT-4o 不支持,不可行)。
B. 分 20 次,每次翻译 5000 汉字,独立调用不保留历史。
C. 用 Batch API 离线提交,享 50% 折扣。
2.2 基础参数
10 万汉字约 180,000 tokens(按 1.8× 估算)。分 20 次:每次输入 9,700 tokens(原文 9,000 + system prompt 200 + 术语提示 500),输出英文约 6,300 tokens。模型 GPT-4o。
2.3 方案 B:分次实时
单次费用 = 0.0097×$2.50 + 0.0063×$10.00 = $0.08725。20 次总费用 ≈ $1.745。实际需额外考虑 system prompt 累积(约 $0.01),若保留历史则输入大增,建议独立调用后人工统一术语。
2.4 方案 C:Batch API
Batch 价:输入 $1.25/1M,输出 $5.00/1M。单次 = 0.0097×$1.25 + 0.0063×$5.00 = $0.043625。20 次总费用 ≈ $0.87,比方案 B 节省一半。
结论:不着急用 Batch,省 50%;实时则分次独立调用,成本可控。
三、模型选择与价格横向对比(截至 2025 年 7 月)
模型输入价格输出价格上下文缓存折扣Batch 折扣GPT-4o$2.50$10.00128K50% 输入(部分场景)50%GPT-4o mini$0.15$0.60128K同上50%Claude 3.5 Sonnet$3.00$15.00200K约 90%(Prompt Caching)无
缓存折扣:重复发送相同 prompt 前缀时,对命中部分给 50% 输入折扣。Batch 折扣:异步请求价格减半,最长 24 小时完成。选模型时考虑推理质量、延迟容忍、输入大小和预算,例如自动客服选 GPT-4o mini 实时调用,长文档分析选 GPT-4o + Batch 或 Claude 3.5 Sonnet + Prompt Caching。
四、费用预估公式模板
总费用(美元)= (输入 tokens × 输入单价 × (1 - 缓存折扣) + 输出 tokens × 输出单价) × (1 - Batch 折扣)
缓存折扣:命中取 0.5,否则 0。
Batch 折扣:用 Batch 取 0.5,实时取 0。
输入 tokens = system prompt + 用户输入 + 历史上下文(多轮累加)。
输出 tokens 可用 max_tokens 设上限。
例:实时调用,输入 5,000,输出 2,000,GPT-4o mini 无缓存/Batch:费用 = (5,000×$0.15 + 2,000×$0.60) / 1,000,000 = $0.00075 + $0.0012 = $0.00195。同任务用 GPT-4o 则 $0.0325,贵 16.7 倍。
五、容易被忽略的“隐形成本”
图片输入:每张图片被编码成 tokens(256×256 约 130 tokens,1024×1024 达 400~800)。
函数调用:生成的 JSON 参数按输出计费,一次调用多消耗 100~500 tokens。
流式输出:不增加费用,仅改变呈现方式。
多轮对话累积:每轮追加历史,10 轮后第 10 轮输入可能达 4,700 tokens(远超单轮)。建议定期裁剪历史或使用总结策略。
六、实际问题避坑建议
别只看单价,要算总费用。输出量大的任务可能 GPT-4o Batch 比 mini 实时更划算。
尽量重复固定前缀以命中缓存。
Batch API 延迟通常几分钟,不赶时间优先用。
中文 token 计数各模型相近,但输出价格差异大,选模型前套用公式实测对比。
最后提醒:价格定期调整,以官方最新公告为准。建议先用 100 次调用实测 token 消耗,再按公式预算。