计费精算

OpenAI Prompt Caching 有效 $/M 怎么算:命中率与对账单核对

从官方 Token 价表拆解 cached input 字段,给出命中率门槛公式与账单行级核对步骤,帮对账人员快速验证缓存是否真正降低单价。

ガイド一覧 · 本文は主に簡体字中国語です。国際向けの要点は English summary をご利用ください。

封面:OpenAI Prompt Caching 有效 $/M 怎么算:命中率与对账单核对

OpenAI Prompt Caching 有效 $/M 怎么算:命中率与对账单核对

OpenAI Prompt Caching 能让重复使用的提示词前缀(prompt prefix)在多次 API 调用中自动享受折扣,从而降低输入 Token 成本。

对账单读者主要关心:缓存是否真正省钱?命中率达到什么门槛才能低于实时 $/M?本文直接从官方 Token 价表拆解 cached input 字段,给出可复制的命中率门槛公式,以及账单行级核对步骤,帮助你快速验证缓存是否发挥作用。

如果你在运行多轮对话、代码编辑工具(如 Cursor)或企业级多项目应用,这篇文章就是对账单的必备对照工具。结合官方定价页与 API 使用仪表盘的数据,你可以精确算出每月实际支出,决定是否继续优化缓存策略。

官方价表 input vs cached input 字段精读

OpenAI API 会自动为支持的模型应用 Prompt Caching(当前覆盖 GPT-4o 系列、o1/o3-mini 系列等,需提示词长度超过 1024 个 Token)。

核心区别在于字段处理:

  • Uncached Input Tokens:未命中缓存的部分,按标准输入单价计费。
  • Cached Input Tokens:命中缓存的部分(prompt_tokens_details.cached_tokens 字段),按打折后的 cached input 单价计费。
  • Output Tokens:输出部分始终按标准输出单价计费。

以下是部分热门模型的官方价格(数据以 openai.com/api/pricing 为准,2026 年 8 月最新):

模型 Uncached Input ($/M) Cached Input ($/M) Output ($/M)
GPT-4o $2.50 $1.25 $10.00
GPT-4o mini $0.15 $0.075 $0.60
o1-preview $15.00 $7.50 $60.00
o1-mini $3.00 $1.50 $12.00

提示:缓存自动生效,无需修改代码即可触发。缓存保留期通常为几分钟到数小时(视服务器负载),企业可通过 API 使用仪表盘监控命中率。

命中率门槛:多少比例才低于实时 $/M

要验证缓存是否真正划算,先算出“有效单价”。公式很简单:

有效 $/M = (Uncached tokens × Uncached rate + Cached tokens × Cached rate) / Total input tokens

假设 Uncached rate = $2.50/M,Cached rate = $1.25/M(GPT-4o 示例):

  • 如果命中率 = 0%:有效 $/M = $2.50
  • 如果命中率 = 50%:有效 $/M = ($1.25 + $0.625) / 1.5 = $1.25(与 cached rate 相同)
  • 如果命中率 = 80%:有效 $/M = ($0.5 + $1.0) / 1.8 = $0.833(低于实时 $2.50)

门槛公式(适用于任何模型):

命中率门槛 = (Uncached rate - Cached rate) / Uncached rate

  • GPT-4o:(2.50 - 1.25) / 2.50 = 50%
  • GPT-4o mini:(0.15 - 0.075) / 0.15 = 50%
  • o1-preview:(15 - 7.5) / 15 = 50%

结论:只要缓存命中率稳定超过 50%,有效单价就会低于实时 $/M。低于此门槛,缓存反而可能略微增加成本(尤其缓存写开销高的 GPT-5.6 系列模型需注意)。

Usage 与 Invoice 中 Cached tokens 行定位

1. API Response:调用后查看 usage 字段(或 usage.prompt_tokens_details.cached_tokens)。

2. Dashboard:OpenAI Platform > Usage > 查看 Prompt Tokens 明细(支持按模型过滤)。

3. Invoice:PDF 账单会将缓存命中部分单独列为 “Cached Input” 或 “Cache Hit”,与普通 Input 并行。总和即为应付款。

建议导出 CSV 或 Excel,对照 Usage 数据核对。完整核对路径详见 OpenAI 官方计费指南

有效单价计算公式与实操示例

通用公式(Python 一行即可):


effective_rate = ((prompt_tokens - cached_tokens) * uncached_rate + cached_tokens * cached_rate) / prompt_tokens

实操示例(1 天 1000 调用,平均每调用 3000 提示词 Token):

场景 命中率 总提示词 Cached Token Uncached Token 有效 $/M (GPT-4o) 月总成本(假设输出 1000 Token/调用)
纯新提示词 0% 3M 0 3M $2.50 $7500
缓存优化 60% 3M 1.8M 1.2M $1.10 $3300
完美复用 90% 3M 2.7M 0.3M $0.625 $1500

结论:命中率 60% 时,成本已降到实时价的 44%,适合企业多项目场景。

常见误区:把 cache 当成零成本

  • 误区一:只看 cached_tokens 数量,忽略缓存写开销(GPT-5.6 系列写 Token 需额外计费)。
  • 误区二:低命中率下缓存反而拖慢 API 响应(虽然成本低,但延迟会影响业务)。
  • 误区三:以为缓存免费,实际 50% 折扣后仍占上下文窗口空间。

正确做法:定期用 Token 成本计算工具 模拟你的提示词前缀复用率,再决定是否添加系统提示词固定缓存键。

与 Batch API 折扣叠加时的决策表

Batch API 可再减 50% 输入成本。两者叠加后:

命中率 Batch 叠加后有效价 (GPT-4o) 建议决策
<50% 仍高于实时 优先 Batch
50-70% 接近 Batch 基准价 两者结合最佳
>70% 远低于实时 继续缓存 + Batch

推荐:如果月缓存命中率 >60%,同时启用 Batch API,成本可再降 50% 以上。

多项目企业分账时的缓存归属建议

不同项目(如 chatgpt×20、claude×14 等)可能使用相同系统提示词。建议:

  • 在 API 调用时通过自定义 header(如 x-project-id)标记项目。
  • Dashboard 中按项目过滤 Usage,单独核对 cached_tokens。
  • 企业账单可按项目拆分,避免混淆。

具体分账逻辑参考 OpenAI API 计费路径

风险与边界

缓存命中率受服务器负载、缓存保留期影响,极端情况下可能为 0% 或因网络波动降低命中率。

以上计算基于官方定价页最新数据(openai.com/api/pricing),实际以账单为准。

非法律意见:本文仅供参考,不构成任何合同义务或投资建议。如有疑问,请直接联系 OpenAI 销售或查看官方文档。

延伸阅读