你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
提示缓存
通过使用提示缓存,可以减少提示开头具有相同内容的较长提示的总体请求延迟和成本。 在本文中,“提示”是指作为聊天补全请求的一部分发送给模型的输入。 该模型能够保留已处理输入数据的临时缓存,以提高整体性能,而不是一遍又一遍地重新处理相同的输入标记。 提示缓存不会影响模型响应中返回的输出内容,但延迟和成本会降低。 对于受支持的模型,缓存的标记按输入标记定价的五折计费。
支持的模型
目前,只有以下模型支持使用 Azure OpenAI 进行提示缓存:
o1-preview-2024-09-12
o1-mini-2024-09-12
gpt-4o-2024-05-13
gpt-4o-2024-08-06
gpt-4o-mini-2024-07-18
API 支持
对提示缓存的官方支持首次出现在 API 版本 2024-10-01-preview
中。 目前,只有 o1-preview-2024-09-12
和 o1-mini-2024-09-12
模型支持 cached_tokens
API 响应参数。
入门
为了使请求利用提示缓存,请求必须同时满足以下条件:
- 长度至少为 1,024 个标记。
- 提示中的前 1,024 个标记必须相同。
当提示与提示缓存的当前内容匹配时,这被称为缓存命中。 缓存命中将在聊天补全响应中的 prompt_token_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
模型,提示缓存支持:
支持的缓存内容 | 描述 |
---|---|
消息 | 完整的消息数组:系统、用户和助手内容 |
映像 | 用户消息中包含的图像,可以是链接,也可以是编码为 base64 格式的数据。 各个请求之间的详细参数设置必须相同。 |
工具使用 | 消息数组和工具定义 |
结构化输出 | 结构化输出架构作为前缀附加到系统消息中 |
为了提高缓存命中发生的可能性,应构建请求,使重复内容出现在消息数组的开头。
是否可以禁用提示缓存?
提示缓存默认为启用状态。 没有选择退出选项。
提示缓存如何影响预配部署?
对于预配部署支持的模型,我们最多可减免缓存输入标记的全部费用。 有关详细信息,请参阅预配吞吐量文档。