你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过使用提示缓存,可以减少提示开头具有相同内容的较长提示的总体请求延迟和成本。 在此上下文中,“提示”是指作为聊天完成请求的一部分发送到模型的输入。 该服务能够保留已处理输入令牌计算的临时缓存,以提高整体性能,而不是一遍又一遍地重新处理相同的输入令牌。 提示缓存不会影响模型响应中返回的输出内容,但延迟和成本会降低。 对于受支持的模型,如果是标准部署类型,缓存令牌可按某个输入令牌定价的折扣计费,如果是预配部署类型,缓存令牌最多可按输入令牌的 100% 折扣计费。
缓存通常在处于非活动状态的 5-10 分钟内清除,并且始终在缓存上次使用后的一小时内移除。 提示缓存不会在 Azure 订阅之间共享。
支持的模型
- 所有 Azure OpenAI 模型 GPT-4o 或更高版本都支持提示缓存。
- 提示缓存适用于具有聊天补全、补全、响应或实时操作的模型。 对于没有这些操作的模型,此功能不可用。
入门指南
为了使请求利用提示缓存,请求必须同时满足以下条件:
- 长度至少为 1,024 个标记。
- 提示中的前 1,024 个标记必须相同。
请求根据提示的初始前缀的哈希进行路由。
当提示中的令牌计算与提示缓存的当前内容匹配时,称为缓存命中。 缓存命中将在聊天补全响应中的 cached_tokens 下显示为 prompt_tokens_details。
{
"created": 1729227448,
"model": "o1-2024-12-17",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": "fp_50cdd5dc04",
"usage": {
"completion_tokens": 1518,
"prompt_tokens": 1566,
"total_tokens": 3084,
"completion_tokens_details": {
"audio_tokens": null,
"reasoning_tokens": 576
},
"prompt_tokens_details": {
"audio_tokens": null,
"cached_tokens": 1408
}
}
}
前 1,024 个标记之后,每增加 128 个相同的标记就会发生一次缓存命中。
前 1,024 个标记中的单个字符差异将导致缓存未命中,其特征是 cached_tokens 值为 0。 默认情况下启用提示缓存,无需为支持的模型进行额外配置。
如果提供 user 参数,则会将其与前缀哈希相结合,从而影响路由并提高缓存命中率。 当许多请求共享较长的常见前缀时,这尤其有用。
缓存的内容是什么?
o1 系列模型功能的支持因模型而异。 有关详细信息,请参阅我们的专用 推理模型指南。
以下是支持提示缓存的情况:
| 支持的缓存 | Description | 支持的模型 |
|---|---|---|
| Messages | 完整的消息数组:系统、开发人员、用户和助手内容 | gpt-4ogpt-4o-minigpt-4o-realtime-preview(版本 2024-12-17)gpt-4o-mini-realtime-preview(版本 2024-12-17)gpt-realtime(版本 2025-08-28)gpt-realtime-mini (版本 2025-10-06)o1 (版本 2024-12-17) o3-mini (版本 2025-01-31) |
| Images | 用户消息中包含的图像,可以是链接,也可以是编码为 base64 格式的数据。 各个请求之间的详细参数设置必须相同。 | gpt-4ogpt-4o-mini o1(版本 2024-12-17) |
| 工具使用 | 消息数组和工具定义。 | gpt-4ogpt-4o-minigpt-4o-realtime-preview(版本 2024-12-17)gpt-4o-mini-realtime-preview(版本 2024-12-17)gpt-realtime(版本 2025-08-28)gpt-realtime-mini (版本 2025-10-06)o1 (版本 2024-12-17) o3-mini (版本 2025-01-31) |
| 结构化输出 | 结构化输出架构作为前缀附加到系统消息中。 | gpt-4ogpt-4o-mini o1 (版本 2024-12-17) o3-mini (版本 2025-01-31) |
为了提高缓存命中发生的可能性,应构建请求,使重复内容出现在消息数组的开头。
是否可以禁用提示缓存?
默认情况下会为所有受支持的模型启用提示缓存。 没有对提示缓存的退出选项支持。