適用於:所有 APIM 層
使用原則, azure-openai-semantic-cache-lookup 根據提示對先前要求和指定相似度分數閾值的向量鄰近性,對已設定外部快取的 Azure OpenAI 聊天完成 API 要求執行回應的快取查閱。 回應快取可降低加諸於後端 Azure OpenAI API 的頻寬和處理需求,並縮短 API 取用者所感受的延遲時間。
注意
- 此原則必須有對應的快取對 Azure OpenAI API 要求的回應原則。
- 如需啟用語意快取的必要條件和步驟,請參閱 在 Azure API 管理 中啟用 LLM API 的語意快取。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
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。 較低的值需要較高的語意相似性才能進行比對。 深入了解。 | 是的 | N/A |
| embeddings-backend-id | 後端 內嵌 API 呼叫的 ID。 | 是的 | N/A |
| embeddings-backend-auth | 用於內嵌 API 後端的驗證。 | 是。 必須設定為 system-assigned。 |
N/A |
| ignore-system-messages | 布林值。 設定為 true (建議) 時,會在評估快取相似性之前,從聊天完成提示中移除系統訊息。 |
否 | 假的 |
| max-message-count | 如果指定,則會略過剩餘對話方塊訊息數目的快取。 | 否 | N/A |
元素
| 名稱 | 描述 | 是必要欄位 |
|---|---|---|
| vary-by | 在執行階段判斷其值分割快取的自訂運算式。 如果新增多個 vary-by 元素,則會串連值以建立唯一的組合。 |
否 |
使用方式
使用注意事項
- 此原則只能在原則區段中使用一次。
- 根據您的應用程式微調 的
score-threshold值,以確保使用正確的敏感度來判斷何時傳回查詢的快取回應。 從0.05等低值開始,並調整以將快取叫用與遺漏的比例優化。 - 超過 0.2 的分數閾值可能會導致快取不符。 請考慮針對敏感性使用案例使用較低的值。
- 透過指定
vary-by特定使用者或使用者群組 ID 來控制快取項目的跨使用者存取。 - 內嵌模型應該有足夠的容量和足夠的內容大小,以容納提示磁碟區和提示。
- 請考慮新增具有提示防護 的 llm-content-safety 原則 ,以防止提示攻擊。
- 建議您在任何快取查閱之後立即設定 速率限制 原則 (或依 金鑰的速率限制 原則)。 這有助於防止您的後端服務在快取無法使用時過載。
範例
具有對應 azure-openai-semantic-cache-store 原則的範例
下列範例顯示如何搭配 azure-openai-semantic-cache-lookup 使用原則, azure-openai-semantic-cache-store 以擷取語意上相似的快取回應,相似性分數臨界值為 0.05。 快取的值會依呼叫端的訂閱識別碼進行分割。
<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 協助以建立、說明及疑難解答原則