获取 Azure OpenAI API 请求的缓存响应

适用于:所有 API 管理层级

使用 azure-openai-semantic-cache-lookup 策略根据提示与以前的请求的向量邻近度以及指定的相似性分数阈值,对来自已配置的外部缓存的 Azure OpenAI 聊天完成 API 请求执行缓存查找。 响应缓存可以降低后端 Azure OpenAI API 需要满足的带宽和处理能力要求,并可以减小 API 使用者能够察觉到的延迟。

注意

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

受支持的 Azure OpenAI 服务模型

策略与从以下类型的 Azure OpenAI 服务添加到 API 管理的 API 结合使用:

API 类型 支持的模型
聊天补全 gpt-3.5

gpt-4

gpt-4o

gpt-4o-mini

o1

o3
嵌入 text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002
响应(预览版) gpt-4o(版本:2024-11-202024-08-062024-05-13

gpt-4o-mini (版本: 2024-07-18

gpt-4.1 (版本: 2025-04-14

gpt-4.1-nano (版本: 2025-04-14

gpt-4.1-mini (版本: 2025-04-14

gpt-image-1 (版本: 2025-04-15

o3 (版本: 2025-04-16

o4-mini (版本:'2025-04-16)

注意

传统完成 API 仅适用于旧模型版本,并且支持受到限制。

有关模型及其功能的当前信息,请参阅 Azure OpenAI 服务模型

策略语句

<azure-openai-semantic-cache-lookup
    score-threshold="similarity score threshold"
    embeddings-backend-id ="backend entity ID for embeddings API"
    embeddings-backend-auth ="system-assigned"             
    ignore-system-messages="true | false"      
    max-message-count="count" >
    <vary-by>"expression to partition caching"</vary-by>
</azure-openai-semantic-cache-lookup>

属性

属性 说明 需要 默认
score-threshold 用于确定是否向提示返回缓存响应的相似性分数阈值。 值为介于 0.0 和 1.0 之间的小数。 较小的值表示更大的语义相似性。 了解详细信息 空值
embeddings-backend-id OpenAI 嵌入 API 调用的后端 ID。 空值
embeddings-backend-auth 用于 Azure OpenAI 嵌入 API 后端的身份验证。 是的。 必须设置为 system-assigned 空值
ignore-system-messages 布尔值。 设置为 true (建议)时,在评估缓存相似性之前,从 GPT 聊天完成提示中删除系统消息。
max-message-count 如果指定,则为剩余的对话消息数,在此消息数之后将跳过缓存。 空值

元素

名称 说明 需要
vary-by 在运行时确定的自定义表达式,其值用于缓存分区。 如果添加了多个 vary-by 元素,则连接值以创建唯一组合。

使用情况

  • 策略节:入站
  • 策略范围:全局、产品、API、操作
  • 网关:经典、v2、消耗

使用注意事项

  • 此策略只能在策略部分中使用一次。
  • 微调基于应用程序的值 score-threshold ,以确保在确定要缓存的查询时使用正确的敏感度。 从低值(如 0.05)开始,调整以优化缓存命中与未命中的比率。
  • 嵌入模型应有足够的容量和足够的上下文大小来容纳提示量和提示。

示例

具有相应 azure-openai-semantic-cache-store 策略的示例

<policies>
    <inbound>
        <base />
        <azure-openai-semantic-cache-lookup
            score-threshold="0.05"
            embeddings-backend-id ="azure-openai-backend"
            embeddings-backend-auth ="system-assigned" >
            <vary-by>@(context.Subscription.Id)</vary-by>
        </azure-openai-semantic-cache-lookup>
    </inbound>
    <outbound>
        <azure-openai-semantic-cache-store duration="60" />
        <base />
    </outbound>
</policies>

有关使用策略的详细信息,请参阅: