你当前正在访问 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-12o1-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-4ogpt-4o-mini 模型,提示缓存支持:

支持的缓存内容 描述
消息 完整的消息数组:系统、用户和助手内容
映像 用户消息中包含的图像,可以是链接,也可以是编码为 base64 格式的数据。 各个请求之间的详细参数设置必须相同。
工具使用 消息数组和工具定义
结构化输出 结构化输出架构作为前缀附加到系统消息中

为了提高缓存命中发生的可能性,应构建请求,使重复内容出现在消息数组的开头。

是否可以禁用提示缓存?

提示缓存默认为启用状态。 没有选择退出选项。

提示缓存如何影响预配部署?

对于预配部署支持的模型,我们最多可减免缓存输入标记的全部费用。 有关详细信息,请参阅预配吞吐量文档