共用方式為


取得 Azure OpenAI API 要求的快取回應

適用於:所有 APIM 層

使用原則, azure-openai-semantic-cache-lookup 根據提示對先前要求和指定相似度分數閾值的向量鄰近性,對已設定外部快取的 Azure OpenAI 聊天完成 API 要求執行回應的快取查閱。 回應快取可降低加諸於後端 Azure OpenAI API 的頻寬和處理需求,並縮短 API 取用者所感受的延遲時間。

注意

注意

請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則

Azure AI Foundry 模型中支援的 Azure OpenAI

原則會與下列類型的 AI Foundry 模型中從 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 僅適用於舊版模型,且支援有限。

如需模型及其功能的目前資訊,請參閱 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>

如需使用原則的詳細資訊,請參閱: