Teilen über


Abrufen zwischengespeicherter Antworten der API-Anforderungen von Azure OpenAI

GILT FÜR: Alle API Management-Ebenen

Verwenden Sie die azure-openai-semantic-cache-lookup Richtlinie, um die Cachesuche von Antworten auf Azure OpenAI Chat Completion API-Anforderungen aus einem konfigurierten externen Cache durchzuführen, basierend auf der Vektornähe der Aufforderung zu vorherigen Anforderungen und einem angegebenen Schwellenwert für die Ähnlichkeitsbewertung. Das Zwischenspeichern von Antworten senkt die Bandbreitennutzung und die Prozessoranforderungen auf der Back-End-API von Azure OpenAI und verringert die Latenz für API-Consumer.

Hinweis

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Unterstützte Azure OpenAI in Azure AI Foundry-Modellen

Die Richtlinie wird mit APIs verwendet, die der API-Verwaltung aus azure OpenAI in AI Foundry-Modellen der folgenden Typen hinzugefügt werden:

API-Typ Unterstützte Modelle
Chatvervollständigung gpt-3.5

gpt-4

gpt-4o

gpt-4o-mini

o1

o3
Einbettungen text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002
Antworten (Vorschau) gpt-4o (Versionen: 2024-11-20, 2024-08-06, 2024-05-13)

gpt-4o-mini (Version: 2024-07-18)

gpt-4.1 (Version: 2025-04-14)

gpt-4.1-nano (Version: 2025-04-14)

gpt-4.1-mini (Version: 2025-04-14)

gpt-image-1 (Version: 2025-04-15)

o3 (Version: 2025-04-16)

o4-mini (Version: '2025-04-16)

Hinweis

Herkömmliche Vervollständigungs-APIs sind nur mit älteren Modellversionen verfügbar, und die Unterstützung ist eingeschränkt.

Aktuelle Informationen zu den Modellen und ihren Funktionen finden Sie unter Azure OpenAI in Foundry Models.

Richtlinienanweisung

<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>

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
Bewertungsschwellenwert Der Bewertungsschwellenwert definiert, wie genau eine eingehende Eingabeaufforderung mit einer zwischengespeicherten Eingabeaufforderung übereinstimmen muss, um die gespeicherte Antwort zurückzugeben. Der Wert liegt zwischen 0,0 und 1,0. Niedrigere Werte erfordern eine höhere semantische Ähnlichkeit für eine Übereinstimmung. Weitere Informationen Ja N/V
embeddings-backend-id Back-End ID für den API-Aufruf der Einbettung. Ja N/V
Einbettungs-Back-End-Authentifizierung Authentifizierung, die für Einbettungs-API-Back-End verwendet wird. Ja. Muss auf system-assigned festgelegt sein. N/V
ignore-system-messages Boolesch. Wenn diese Einstellung auf true (empfohlen) festgelegt ist, werden Systemnachrichten aus einer Chat-Vervollständigungsaufforderung entfernt, bevor die Cache-Ähnlichkeit bewertet wird. Nein Falsch
max-message-count Wenn angegeben, wird die Anzahl der verbleibenden Dialogfeldnachrichten, nach denen die Zwischenspeicherung übersprungen wird, angegeben. Nein N/V

Elemente

Name BESCHREIBUNG Erforderlich
variieren nach Ein benutzerdefinierter Ausdruck, der zur Runtime bestimmt wird, dessen Wertpartitionen zwischengespeichert werden. Wenn mehrere vary-by-Elemente hinzugefügt werden, werden Werte verkettet, um eine eindeutige Kombination zu erstellen. Nein

Verwendung

Hinweise zur Verwendung

  • Diese Richtlinie kann nur einmal in einem Richtlinienabschnitt verwendet werden.
  • Optimieren Sie den Wert score-threshold basierend auf Ihrer Anwendung, um sicherzustellen, dass die richtige Vertraulichkeit verwendet wird, um zu bestimmen, wann zwischengespeicherte Antworten für Abfragen zurückgegeben werden sollen. Beginnen Sie mit einem niedrigen Wert wie 0,05, und passen Sie an, um das Verhältnis von Cachetreffern zu Fehlern zu optimieren.
  • Der Schwellenwert der Bewertung über 0,2 kann zu einem Cachekonflikt führen. Erwägen Sie die Verwendung eines niedrigeren Werts für vertrauliche Anwendungsfälle.
  • Steuern sie den benutzerübergreifenden Zugriff auf Cacheeinträge, indem Sie bestimmte Benutzer- oder Benutzergruppen-IDs angeben vary-by .
  • Das Einbettungsmodell sollte über genügend Kapazität und ausreichende Kontextgröße verfügen, um das Eingabeaufforderungsvolume und die Eingabeaufforderungen aufzunehmen.
  • Erwägen Sie, llm-content-safety policy with prompt shield to protect from prompt attacks.
  • Es wird empfohlen, eine Richtlinie für Die Rate-Limit -Richtlinie (oder eine Richtlinie mit einem Satzgrenzwert nach Schlüsseln ) unmittelbar nach jeder Cachesuche zu konfigurieren. Dadurch wird verhindert, dass Ihr Back-End-Dienst überlastet wird, wenn der Cache nicht verfügbar ist.

Beispiele

Beispiel mit entsprechender Richtlinie „azure-openai-semantic-cache-store“

Das folgende Beispiel zeigt, wie Sie die azure-openai-semantic-cache-lookup Richtlinie zusammen mit der azure-openai-semantic-cache-store Richtlinie verwenden, um semantisch ähnliche zwischengespeicherte Antworten mit einem Schwellenwert für die Ähnlichkeitsbewertung von 0,05 abzurufen. Zwischengespeicherte Werte werden durch die Abonnement-ID des Aufrufers partitioniert.

Hinweis

Fügen Sie nach der Cache-Suche eine Rate-Limit-Policy (oder Rate-Limit-by-Key-Policy ) hinzu, um die Anzahl der Anrufe zu begrenzen und Überlastung des Backend-Services zu vermeiden, falls der Cache nicht verfügbar ist.

<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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: