適用於:所有 APIM 層
使用原則 llm-semantic-cache-lookup ,根據提示與先前要求的向量接近度和指定的分數臨界值,對來自已設定外部快取的大型語言模型 (LLM) API 要求的回應執行快取查閱。 回應快取可降低加諸於後端 LLM API 的頻寬和處理需求,並縮短 API 取用者所感受的延遲時間。
注意
- 此原則必須有對應的大型語言模型 API 要求的快取回應原則。
- 如需啟用語意快取的必要條件和步驟,請參閱 在 Azure API 管理 中啟用 LLM API 的語意快取。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
支援的模型
將原則與新增至 Azure API 管理的 LLM API 搭配使用,這些 API 可透過 Azure AI 模型推斷 API 或透過第三方推斷提供者提供服務的 OpenAI 相容模型。
原則陳述式
<llm-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>
</llm-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 原則 ,以防止提示攻擊。
- 建議您在任何快取查閱之後立即設定 速率限制 原則 (或依 金鑰的速率限制 原則)。 這有助於防止您的後端服務在快取無法使用時過載。
範例
對應 llm-semantic-cache-store 原則的範例
下列範例顯示如何搭配 llm-semantic-cache-lookup 使用原則, llm-semantic-cache-store 以擷取語意上相似的快取回應,相似性分數臨界值為 0.05。 快取的值會依呼叫端的訂閱識別碼進行分割。
<policies>
<inbound>
<base />
<llm-semantic-cache-lookup
score-threshold="0.05"
embeddings-backend-id ="llm-backend"
embeddings-backend-auth ="system-assigned" >
<vary-by>@(context.Subscription.Id)</vary-by>
</llm-semantic-cache-lookup>
<rate-limit calls="10" renewal-period="60" />
</inbound>
<outbound>
<llm-semantic-cache-store duration="60" />
<base />
</outbound>
</policies>
相關原則
相關內容
如需使用原則的詳細資訊,請參閱:
- 教學課程:轉換及保護 API
- 原則參考,取得原則陳述式及其設定的完整清單
- 原則運算式
- 設定或編輯原則
- 重複使用原則設定
- 原則程式碼片段存放庫 (英文)
- 原則遊樂場存放庫
- Azure API 管理 原則工具組
- 取得 Copilot 協助以建立、說明及疑難排解原則