你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
提示缓存
通过使用提示缓存,可以减少提示开头具有相同内容的较长提示的总体请求延迟和成本。 在本文中,“提示”是指作为聊天补全请求的一部分发送给模型的输入。 该服务能够保留已处理输入令牌计算的临时缓存,以提高整体性能,而不是一遍又一遍地重新处理相同的输入令牌。 提示缓存不会影响模型响应中返回的输出内容,但延迟和成本会降低。 对于受支持的模型,如果是标准部署类型,缓存令牌可按某个输入令牌定价的折扣计费,如果是预配部署类型,缓存令牌最多可按输入令牌的 100% 折扣计费。
缓存通常在处于非活动状态的 5-10 分钟内清除,并且始终在缓存上次使用后的一小时内移除。 提示缓存不会在 Azure 订阅之间共享。
支持的模型
目前,只有以下模型支持使用 Azure OpenAI 进行提示缓存:
o1-2024-12-17
o1-preview-2024-09-12
o1-mini-2024-09-12
gpt-4o-2024-11-20
gpt-4o-2024-08-06
gpt-4o-mini-2024-07-18
gpt-4o-realtime-preview
(版本 2024-12-17)
注意
现在,提示缓存也作为 gpt-4o
和 gpt-4o-mini
模型微调的一部分提供。 有关详细信息,请参阅定价页的微调部分。
API 支持
对提示缓存的官方支持首次出现在 API 版本 2024-10-01-preview
中。 目前,只有 o1 模型系列支持 cached_tokens
API 响应参数。
入门
为了使请求利用提示缓存,请求必须同时满足以下条件:
- 长度至少为 1,024 个标记。
- 提示中的前 1,024 个标记必须相同。
当提示中的令牌计算与提示缓存的当前内容匹配时,称为缓存命中。 缓存命中将在聊天补全响应中的 prompt_tokens_details
下显示为 cached_tokens
。
{
"created": 1729227448,
"model": "o1-preview-2024-09-12",
"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。 默认情况下启用提示缓存,无需为支持的模型进行额外配置。
缓存的内容是什么?
对于 o1 系列模型,缓存内容仅为文本,不支持系统消息、图像、工具使用/功能调用或结构化输出。 这会将这些模型的提示缓存的有效性限制为消息数组的用户/助手部分,这些部分不太可能具有相同的 1024 标记前缀。
以下是支持提示缓存的情况:
支持的缓存内容 | 描述 | 支持的模型 |
---|---|---|
消息 | 完整的消息数组:系统、用户和助手内容 | gpt-4o gpt-4o-mini gpt-4o-realtime-preview (版本 2024-12-17) |
映像 | 用户消息中包含的图像,可以是链接,也可以是编码为 base64 格式的数据。 各个请求之间的详细参数设置必须相同。 | gpt-4o gpt-4o-mini |
工具使用 | 消息数组和工具定义。 | gpt-4o gpt-4o-mini gpt-4o-realtime-preview (版本 2024-12-17) |
结构化输出 | 结构化输出架构作为前缀附加到系统消息中。 | gpt-4o gpt-4o-mini |
为了提高缓存命中发生的可能性,应构建请求,使重复内容出现在消息数组的开头。
是否可以禁用提示缓存?
默认情况下会为所有受支持的模型启用提示缓存。 不支持选择退出快速缓存。