Teilen über


Abrufen zwischengespeicherter Antworten von API-Anforderungen für große Sprachmodelle

GILT FÜR: Alle API Management-Ebenen

Verwenden Sie die llm-semantic-cache-lookup Richtlinie, um die Cachesuche von Antworten auf LLM-API-Anforderungen (Large Language Model) aus einem konfigurierten externen Cache durchzuführen, basierend auf der Vektornähe der Eingabeaufforderung zu vorherigen Anforderungen und einem angegebenen Bewertungsschwellenwert. Das Zwischenspeichern von Antworten senkt die Bandbreitennutzung und die Prozessoranforderungen hinsichtlich der Back-End-LLM-API 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 Modelle

Verwenden Sie die Richtlinie mit LLM-APIs, die azure API Management hinzugefügt wurden, die über die Azure AI Model Inference-API oder mit OpenAI-kompatiblen Modellen verfügbar sind, die von Drittanbietern bereitgestellt werden.

Richtlinienanweisung

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

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 „llm-semantic-cache-store“

Das folgende Beispiel zeigt, wie Sie die llm-semantic-cache-lookup Richtlinie zusammen mit der llm-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 />
        <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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: