Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Alle API Management-Ebenen
Aktivieren Sie das semantische Zwischenspeichern von Antworten auf LLM-API-Anfragen, um die Bandbreiten- und Verarbeitungsanforderungen zu verringern, die durch die Backend-APIs entstehen, und die Latenz für API-Nutzer zu reduzieren. Mit der semantischen Zwischenspeicherung können Sie zwischengespeicherte Antworten für identische Eingabeaufforderungen und auch für Eingabeaufforderungen zurückgeben, die in der Bedeutung ähnlich sind, auch wenn der Text nicht identisch ist. Hintergrundinformationen finden Sie im Lernprogramm: Verwenden von Azure Managed Redis als semantischer Cache.
Hinweis
Die Konfigurationsschritte in diesem Artikel zeigen, wie Sie die semantische Zwischenspeicherung für APIs aktivieren, die der API-Verwaltung von Azure OpenAI in Microsoft Foundry-Modellen hinzugefügt wurden. Sie können ähnliche Schritte anwenden, um die semantische Zwischenspeicherung für entsprechende LLM-APIs (Large Language Model) zu aktivieren, die über die Azure AI Model Inference-API oder mit OpenAI-kompatiblen Modellen bereitgestellt werden, die von Drittanbietern bereitgestellt werden.
Voraussetzungen
Fügen Sie eine oder mehrere Azure OpenAI in Microsoft Foundry-Modellbereitstellungen als APIs zu Ihrer API-Verwaltungsinstanz hinzu. Weitere Informationen finden Sie unter Hinzufügen einer Azure OpenAI-API zur Azure-API-Verwaltung.
Erstellen Sie Bereitstellungen für die folgenden APIs:
- Chat-Vervollständigungs-API – Bereitstellung, die für API-Verbraucheraufrufe verwendet wird
- Embeddings-API: Bereitstellung, die für die semantische Zwischenspeicherung verwendet wird
Konfigurieren Sie die API-Verwaltungsinstanz, um die verwaltete Identitätsauthentifizierung für die Azure OpenAI-APIs zu verwenden. Weitere Informationen finden Sie unter Authenticate and authorize access to AI APIs using Azure API Management.
Eine Azure Managed Redis-Instanz mit aktiviertem RediSearch-Modul im Redis-Cache.
Hinweis
Du kannst das RediSearch-Modul nur aktivieren, wenn du einen neuen Azure Managed Redis Cache erstellst. Sie können einem vorhandenen Cache kein Modul hinzufügen. Weitere Informationen finden Sie unter Redis-Module.
Konfigurieren Sie die Azure Managed Redis-Instanz als externer Cache in der Azure API-Verwaltungsinstanz. Die entsprechenden Schritte finden Sie unter Verwenden eines externen Redis-kompatiblen Caches in Azure API Management.
Testen der Chat-API-Bereitstellung
Testen Sie zunächst die Azure OpenAI-Bereitstellung, um sicherzustellen, dass die Chat Completion API wie erwartet funktioniert. Eine schrittweise Anleitung finden Sie unter Importieren einer Azure OpenAI-API in Azure API Management.
Teste zum Beispiel die Azure OpenAI Chat Completion API, indem du eine POST-Anfrage an den API-Endpunkt mit einem Prompt im Anforderungskörper sendest. Die Antwort sollte die Vervollständigung des Prompts enthalten. Beispiel für eine Anforderung:
POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01
mit dem Anforderungstext:
{"messages":[{"role":"user","content":"Hello"}]}
Wenn die Anforderung erfolgreich ist, enthält die Antwort eine Vervollständigung für die Chatnachricht.
Erstellen eines Back-End für die Einbettungs-API
Erstellen Sie eine Back-End-Ressource für die Einbettungs-API-Bereitstellung mit den folgenden Einstellungen:
Name – Ein Name Ihrer Wahl, z. B. Einbettungen-Backend. Sie verwenden diesen Namen, um in Richtlinien auf das Back-End zu verweisen.
Typ: Wählen Sie Benutzerdefinierte URL aus.
Laufzeit-URL – Die URL der Bereitstellung der Einbettungs-API in Azure OpenAI, ähnlich wie:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings(ohne Abfrageparameter).Autorisierungsanmeldeinformationen – Wechseln Sie zur Registerkarte "Verwaltete Identität ".
- Clientidentität – Wählen Sie die vom System zugewiesene Identität aus, oder geben Sie eine vom Benutzer zugewiesene verwaltete Identitätsclient-ID ein.
-
Ressourcen-ID – Geben Sie
https://cognitiveservices.azure.com/für Azure OpenAI ein.
Test des Einbettungs-Backends
Um das Einbettungs-Back-End zu testen, erstellen Sie einen API-Vorgang für Ihre Azure OpenAI-API:
- Wählen Sie auf der Registerkarte Entwurf Ihrer API die Option + Vorgang hinzufügen aus.
- Geben Sie einen Anzeigenamen wie Einbettungen und optional einen Namen für den Vorgang ein.
- Wählen Sie im Abschnitt Front-End inURL die Option POST aus, und geben Sie den Pfad
/ein. - Fügen Sie auf der Registerkarte Header einen erforderlichen Header mit dem Namen
Content-Typeund dem Wertapplication/jsonhinzu. - Wählen Sie Speichern aus.
Konfigurieren Sie die folgenden Richtlinien im Abschnitt Eingehende Verarbeitung des API-Vorgangs. Ersetzen Sie in der Richtlinie set-backend-service den Namen durch das von Ihnen erstellte Back-End.
<policies>
<inbound>
<set-backend-service backend-id="embeddings-backend" />
<authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
[...]
</inbound>
[...]
</policies>
Testen Sie auf der Registerkarte Test den Vorgang, indem Sie den Abfrageparameter api-version mit einem Wert wie 2024-02-01 hinzufügen. Geben Sie einen gültigen Anforderungstext an. Zum Beispiel:
{"input":"Hello"}
Wenn die Anforderung erfolgreich ist, enthält die Antwort eine Vektordarstellung des Eingabetexts. Beispielantwort:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Konfigurieren von Richtlinien für die semantische Zwischenspeicherung
Um die semantische Zwischenspeicherung für Azure OpenAI-APIs in Azure API Management zu aktivieren, wenden Sie die folgenden Richtlinien an: eine, um den Cache vor dem Senden von Anforderungen (Lookup) zu überprüfen, und eine andere, um Antworten für die zukünftige Wiederverwendung (Speicher) zu speichern:
Fügen Sie im Abschnitt "Eingehende Verarbeitung " für die API die Richtlinie "llm-semantic-cache-lookup " hinzu. Geben Sie im Attribut
embeddings-backend-iddas von Ihnen erstellte Embeddings-API-Back-End an.Beispiel:
<llm-semantic-cache-lookup score-threshold="0.15" embeddings-backend-id="embeddings-backend" embeddings-backend-auth="system-assigned" ignore-system-messages="true" max-message-count="10"> <vary-by>@(context.Subscription.Id)</vary-by> </llm-semantic-cache-lookup> <rate-limit calls="10" renewal-period="60" />Hinweis
Fügen Sie nach dem Cache-Nachschlagevorgang eine rate-limit-Richtlinie (oder eine rate-limit-by-key-Richtlinie) hinzu, um die Anzahl der Aufrufe zu begrenzen und eine Überlastung des Backend-Dienstes zu verhindern, falls der Cache nicht verfügbar ist.
Fügen Sie im Abschnitt "Ausgehende Verarbeitung " für die API die Richtlinie "llm-semantic-cache-store" hinzu .
Beispiel:
<llm-semantic-cache-store duration="60" />
Bestätigen der Zwischenspeicherung
Um zu bestätigen, dass semantisches Caching wie erwartet funktioniert, verfolgen Sie eine Test-Chat-Abschlussoperation mithilfe der Testkonsole im Portal. Stellen Sie sicher, dass der Cache bei nachfolgenden Versuchen verwendet wird, indem Sie das Protokoll überprüfen. Erfahren Sie mehr über die Ablaufverfolgung von API-Aufrufen in Azure API Management.
Passen Sie das score-threshold-Attribut in der Nachschlage-Richtlinie an, um zu steuern, wie genau eine eingehende Eingabe mit einer zwischengespeicherten Eingabe übereinstimmen muss, um die gespeicherte Antwort zurückzugeben. Ein niedrigerer Schwellenwert bedeutet, dass Eingabeaufforderungen eine höhere semantische Ähnlichkeit aufweisen müssen, um zwischengespeicherte Antworten zurückzugeben. Aufforderungen mit Ergebnissen oberhalb des Schwellenwerts verwenden die zwischengespeicherte Antwort nicht.
Wenn beispielsweise der Cache verwendet wird, enthält der Ausgabeabschnitt Einträge, die dem folgenden Screenshot ähneln:
Zugehöriger Inhalt
- Cachingrichtlinien
- Azure Managed Redis
- KI-Gatewayfunktionen in Azure API Management