上下文缓存旨在降低包含重复内容的 Gemini 请求的费用和延迟时间。
默认情况下,Google 会自动缓存所有 Gemini 模型的输入,以缩短延迟时间并加快对后续提示的回答速度。
对于 Gemini 2.5 Flash(最低输入令牌数为 1,024)和 Gemini 2.5 Pro(最低输入令牌数为 2,048)模型,如果命中缓存,缓存的输入令牌的费用将比标准输入令牌低 75%。
在响应的元数据字段中查看缓存命中令牌信息。如需停用此功能,请参阅生成式 AI 和数据治理。
通过 Vertex AI API,您可以创建上下文缓存,并通过以下方式更好地控制它们:
- 使用上下文缓存:在提示请求中引用其内容,并使用其资源名称。
- 将上下文缓存的到期时间 (TTL) 更新为超过默认的 60 分钟。
- 在不再需要上下文缓存时,删除上下文缓存。
您还可以使用 Vertex AI API 来获取有关上下文缓存的信息。
请注意,使用 Vertex AI API 缓存请求时,输入令牌的费用相对于标准输入令牌可享受 25% 的折扣,从而确保节省成本。此外,还会根据数据存储的时间长短收取存储费用。
应在何时使用上下文缓存
上下文缓存特别适合后续请求重复引用大量初始上下文的场景。
可以在对 Gemini API 发起的提示请求中使用缓存的上下文项(例如大量的文本,或者一个音频文件或视频文件)来生成输出。虽然请求可以在提示中使用同样的缓存内容,但也会包含每个提示独有的文本。例如,构成某个聊天对话的每个提示请求都可以包含引用一个视频的相同上下文缓存以及构成每轮聊天内容的独有文本。
例如,对于以下使用场景,可以考虑使用上下文缓存:
- 有大量系统指令的聊天机器人
- 对较长的视频文件进行的重复分析
- 针对大型文档集的定期查询
- 频繁的代码库分析或 bug 修复
通过缓存实现成本效益
虽然上下文缓存是一项付费功能,但它的目的是为了降低整体的运营成本。结算取决于以下因素:
- 缓存词元数:缓存的输入词元数,如果相同的词元在后续提示中被重复使用,则按折扣费率计费。
- 存储时长:所缓存词元的存储时长(按小时计费)。当上下文缓存到期时,缓存的词元会被删除。
- 其他因素:可能还会产生其他费用,例如非缓存输入词元和输出词元的费用。
您可以在回答的元数据字段中的 cachedContentTokenCount
字段下找到输入内容缓存部分的 token 数量。
预配吞吐量的上下文缓存支持目前处于预览版阶段,默认缓存。对于预配吞吐量,不支持使用 Vertex AI API 进行上下文缓存。如需了解详情,请参阅预配吞吐量指南。
支持的模型
以下 Gemini 模型支持上下文缓存:
如需了解详情,请参阅可用的 Gemini 稳定模型版本。请注意,对于受支持的模型,上下文缓存支持所有 MIME 类型。
可用性
可在提供 Vertex AI 上的生成式 AI 的区域使用上下文缓存。如需了解详情,请参阅 Vertex AI 上的生成式 AI 位置。
VPC Service Controls 支持
上下文缓存支持 VPC Service Controls,这意味着您的缓存无法渗漏到服务边界之外。如果您使用 Cloud Storage 构建缓存,请将您的存储桶添加到服务边界中,以保护您的缓存内容。
如需了解详情,请参阅 Vertex AI 文档中的将 VPC Service Controls 与 Vertex AI 搭配使用。
后续步骤
- 了解 Gemini API。
- 了解如何使用多模态提示。