上下文缓存

上下文缓存(KV cache)自动在多个请求间缓存 prompt 前缀。当后续请求共享相同前缀时,缓存部分被复用,降低延迟和成本。

工作原理

  • 默认开启 — 无需代码修改。
  • 自动管理 — 缓存由网关管理,无需手动启用或配置。
  • 前缀匹配 — 如果两个请求共享相同的 prompt 前缀,共享部分从缓存中提供。

计费

缓存命中按低于未命中的费率计费:

项目费率
缓存命中$0.028 / 1M tokens(便宜 10 倍)
缓存未命中$0.28 / 1M tokens(标准输入费率)

每个模型的具体费率见模型目录

监控缓存效果

响应 usage 对象包含缓存命中/未命中统计:

{
  "usage": {
    "prompt_tokens": 1000,
    "completion_tokens": 200,
    "total_tokens": 1200,
    "prompt_cache_hit_tokens": 800,
    "prompt_cache_miss_tokens": 200
  }
}
字段说明
prompt_cache_hit_tokens从缓存提供的 prompt token 数(按较低费率计费)。
prompt_cache_miss_tokens未从缓存提供的 prompt token 数(按标准费率计费)。

缓存命中率

你可以计算每个请求的缓存命中率:

命中率 = prompt_cache_hit_tokens / prompt_tokens

高命中率意味着有效缓存和更低成本。

最大化缓存命中率的最佳实践

  1. 使用一致的 prompt 前缀:如果有跨请求保持不变的系统消息或少样本示例,放在 prompt 开头。
  2. 批量类似请求:短时间内相似请求更可能命中缓存。
  3. 避免随机化 prompt:随机 ID、时间戳或变化的系统消息降低缓存效果。

缓存行为

行为说明
最小缓存单位64 tokens
缓存构建时间秒级
缓存过期数小时到数天(自动)
缓存失效缓存过时时自动

成本示例

一个 10,000 token 的 prompt,8,000 缓存命中,2,000 缓存未命中:

项目Tokens费率成本
缓存命中8,000$0.028/M$0.000224
缓存未命中2,000$0.28/M$0.000560
总计10,000$0.000784

没有缓存时,同样的 prompt 成本为 $0.002800——80% 缓存命中率下节省 72%


相关文档