你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:所有 API 管理层级
使用 azure-openai-semantic-cache-lookup 策略根据提示与以前的请求的向量邻近度以及指定的相似性分数阈值,对来自已配置的外部缓存的 Azure OpenAI 聊天完成 API 请求执行缓存查找。 响应缓存可以降低后端 Azure OpenAI API 需要满足的带宽和处理能力要求,并可以减小 API 使用者能够察觉到的延迟。
注意
- 此策略必须具有相应的缓存 Azure OpenAI API 请求的响应策略。
- 有关启用语义缓存的先决条件和步骤,请参阅 在 Azure API 管理中为 LLM API 启用语义缓存。
注意
按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略。
Azure AI Foundry 模型中支持的 Azure OpenAI
该策略与从以下类型的 AI Foundry 模型中的 Azure OpenAI 添加到 API 管理的 API 一起使用:
| API 类型 | 支持的模型 |
|---|---|
| 聊天补全 | gpt-3.5gpt-4gpt-4ogpt-4o-minio1o3 |
| 嵌入 | text-embedding-3-largetext-embedding-3-smalltext-embedding-ada-002 |
| 响应(预览版) |
gpt-4o(版本:2024-11-20、2024-08-06、2024-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 仅适用于旧模型版本,并且支持受到限制。
有关模型及其功能的当前信息,请参阅 Foundry 模型中的 Azure OpenAI。
策略语句
<azure-openai-semantic-cache-lookup
score-threshold="score threshold to return cached response"
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 | 后端 嵌入 API 调用的 ID。 | 是 | 空值 |
| embeddings-backend-auth | 用于嵌入 API 后端的身份验证。 | 是的。 必须设置为 system-assigned。 |
空值 |
| ignore-system-messages | 布尔值。 设置为 true (建议),在评估缓存相似性之前,从聊天完成提示中删除系统消息。 |
否 | 假 |
| max-message-count | 如果指定,则为剩余的对话消息数,在此消息数之后将跳过缓存。 | 否 | 空值 |
元素
| 名称 | 说明 | 需要 |
|---|---|---|
| vary-by | 在运行时确定的自定义表达式,其值用于缓存分区。 如果添加了多个 vary-by 元素,则连接值以创建唯一组合。 |
否 |
使用情况
- 策略节:入站
- 策略范围:全局、产品、API、操作
- 网关: 经典、v2、消耗、自承载
使用注意事项
- 此策略只能在策略部分中使用一次。
- 微调基于应用程序的值
score-threshold,以确保使用正确的敏感度来确定何时返回查询的缓存响应。 从低值(如 0.05)开始,调整以优化缓存命中与未命中的比率。 - 评分阈值超过 0.2 可能会导致缓存不匹配。 考虑对敏感用例使用较低的值。
- 通过指定
vary-by特定用户或用户组标识符来控制对缓存条目的跨用户访问权限。 - 嵌入模型应有足够的容量和足够的上下文大小来容纳提示量和提示。
- 请考虑添加带有提示防护的 llm-content-safety 策略,以防止出现提示攻击。
- 建议在任何缓存查找后立即配置 速率限制 策略(或 按键速率限制 策略)。 这有助于防止后端服务在缓存不可用时过载。
示例
具有相应 azure-openai-semantic-cache-store 策略的示例
以下示例演示如何将 azure-openai-semantic-cache-lookup 策略与策略一起使用 azure-openai-semantic-cache-store ,以语义方式检索具有相似性分数阈值为 0.05 的类似缓存响应。 缓存值按调用方订阅 ID 进行分区。
<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>
<rate-limit calls="10" renewal-period="60" />
</inbound>
<outbound>
<azure-openai-semantic-cache-store duration="60" />
<base />
</outbound>
</policies>
相关策略
相关内容
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 重复使用策略配置
- 策略片段存储库
- 策略场存储库
- Azure API 管理策略工具包
- 获取 Copilot 帮助以创建、解释和排查策略问题