API 与中转

API 缓存费用怎么计算:区分缓存事件、核对有效期、按真实用量对账

按同一成本式拆解 Prompt Caching 与 Context Caching:OpenAI 的缓存用量、Claude 的写入/读取倍率、Gemini 的显式存储与隐式命中。

API 缓存费用怎么计算:区分缓存事件、核对有效期、按真实用量对账|文章配图,按正文步骤绘制的编辑图
点击图片可查看原图。API 缓存费用怎么计算:区分缓存事件、核对有效期、按真实用量对账|文章配图,按正文步骤绘制的编辑图
本文目录 · 8 个章节

操作速览

  • 区分缓存事件:写入、读取和未命中。
  • 核对有效期:TTL 与存储收费条件。
  • 按真实用量对账:不能把全部输入都算命中。

先验证命中,再计算缓存收益

1. 准备一组重复前缀的请求,记录缓存创建、读取与未命中用量,不以开关已开启作为命中证据。

2. 加入写入溢价、存储时长和失效后重建成本,再与无缓存条件下的同一任务比较。

3. 请求顺序、前缀变化与实际版本都会影响结果。保留模型、规则日期和样本,收益只能解释这组条件。

先把缓存拆成四个可计量成本桶

跨厂商比较缓存时,至少需要记录普通输入、缓存创建或写入、缓存读取或命中、缓存存储四个桶。某家没有独立存储费时该项为零,而不是从账本删除;这样同一公式才能覆盖 Prompt Caching 与 Context Caching。

建议使用 C = U×Rᵤ + W×R𝓌 + H×Rₕ + S×T×Rₛ,其中 U、W、H 是 token 数,S×T 是 token-hours。费率必须绑定模型、地区、处理层和核验日期,正文不复制会变化的货币单价。

  • 普通输入 U
  • 写入 W
  • 命中 H
  • 存储 S×T

本节参考:OpenAI Prompt cachingClaude Prompt caching

命中由前缀稳定性决定,不由开关决定

OpenAI 与 Claude 的缓存都强调稳定前缀:系统说明、工具定义和长公共材料应放在前面,把用户变量放在后面。前缀任何早期变化都会扩大未命中范围,因此命中率要按模板版本和调用类型分组观察。

Gemini 还需要区分隐式命中与显式缓存资源。显式缓存有 TTL 和存储周期,隐式缓存更省操作但不保证命中;二者都应以响应 usage 为准,而不是把“已启用缓存”直接当作节省。

本节参考:Claude Prompt cachingGemini Context caching

用回本次数和有效命中率做决策

一次缓存写入是否值得,取决于写入溢价、命中读取费率、预计复用次数与 TTL 内的请求分布。可用 N_break-even = 写入增量成本 ÷ 单次命中节省额估算门槛,再用历史有效命中率修正,而不是用理论最大复用次数。

对 Gemini 显式缓存还要加入 token-hours;对 Claude 要区分不同 TTL 的写入倍率;对 OpenAI 要核对 usage 中缓存相关 token。规则核验于 2026-08-29,实际倍率和支持模型应在部署前重新读取官方页。

本节参考:Gemini Context cachingOpenAI Prompt caching

把缓存观测接入成本与容量看板

每次调用记录 template_hash、model、uncached_tokens、cache_write_tokens、cache_read_tokens、storage_token_hours 与 total_cost。命中率应同时展示 token 加权值和请求加权值,避免大量短请求掩盖少数长上下文未命中。

缓存也会改变限流容量:部分厂商对缓存读取 token 的限流处理不同,Batch 与缓存的价格修饰项也不一定以相同方式叠加。成本优化上线前应分别验证计费账单和 429 行为,并为前缀变更准备冷启动预算。

本节参考:OpenAI Prompt cachingClaude Prompt caching

参考来源

价格、规则和产品状态可能变化,可通过这些原始页面确认当前信息。

OpenAI Prompt caching

Claude Prompt caching

Gemini Context caching

常见问题

大模型 API 开启缓存后一定更便宜吗?

不一定。低复用、频繁改前缀、TTL 过长或显式存储闲置都可能让写入与存储成本超过命中节省,应以实际 usage 和回本次数判断。

三家 AI API 的缓存命中率可以直接比较吗?

先统一为 token 加权命中率,并保留各家的写入、读取、存储和限流语义。只比较请求命中次数会丢失上下文长度差异。