Aktivieren der semantischen Zwischenspeicherung für Azure OpenAI-APIs in Azure API Management
GILT FÜR: Alle API Management-Ebenen
Aktivieren Sie das semantische Zwischenspeichern von Antworten auf Azure OpenAI-API-Anforderungen, um die Bandbreiten- und Verarbeitungsanforderungen an die Backend-APIs zu reduzieren und die von den API-Consumern wahrgenommene Latenz zu verringern. Mit der semantischen Zwischenspeicherung können Sie zwischengespeicherte Antworten für identische Prompts und auch für Prompts, die eine ähnliche Bedeutung haben, zurückgeben, selbst wenn der Text nicht identisch ist. Hintergrundinformationen finden Sie im Tutorial: Verwenden von Azure Cache for Redis als semantischen Cache.
Hinweis
Die Konfigurationsschritte in diesem Artikel aktivieren die semantische Zwischenspeicherung für Azure OpenAI-APIs. Diese Schritte können generalisiert werden, um die semantische Zwischenspeicherung für entsprechende LLM-APIs (Large Language Model, großes Sprachmodell) zu aktivieren, die über die Azure KI-Modellinferenz-API verfügbar sind.
Voraussetzungen
- Mindestens eine der Azure OpenAI Service-APIs muss Ihrer API Management-Instanz hinzugefügt werden. Weitere Informationen finden Sie unter Hinzufügen einer Azure OpenAI Service-API zu Azure API Management.
- Azure OpenAI Service muss über Bereitstellungen für Folgendes verfügen:
- Chat-Vervollständigungs-API (oder Vervollständigungs-API): Bereitstellung, die für API-Consumeraufrufe verwendet wird
- Embeddings-API: Bereitstellung, die für die semantische Zwischenspeicherung verwendet wird
- Die API Management-Instanz muss für die Verwendung der Authentifizierung mittels verwalteter Identität für die Azure OpenAI-APIs konfiguriert werden. Weitere Informationen finden Sie unter Authentifizieren und Autorisieren des Zugriffs auf Azure OpenAI-APIs mithilfe von Azure API Management.
- Azure Cache for Redis-Enterprise Das RediSearch-Modul muss im Redis Enterprise-Cache aktiviert werden.
Hinweis
Sie können das RediSearch-Modul nur aktivieren, wenn Sie einen neuen Redis Enterprise-Cache erstellen. Sie können einem vorhandenen Cache kein Modul hinzufügen. Weitere Informationen
- Externer Cache, der in der Azure API Management-Instanz konfiguriert ist. Eine schrittweise Anleitung finden Sie unter Verwenden einer externen Azure Cache for Redis-Instanz in Azure API Management.
Testen der Chat-API-Bereitstellung
Testen Sie zunächst die Azure OpenAI-Bereitstellung, um sicherzustellen, dass die Chat-Vervollständigungs-API bzw. die Chat-API erwartungsgemäß funktioniert. Eine schrittweise Anleitung finden Sie unter Importieren einer Azure OpenAI-API in Azure API Management.
Testen Sie beispielsweise die Azure OpenAI-Chat-API, indem Sie eine POST-Anforderung mit einem Prompt im Anforderungstext an den API-Endpunkt senden. 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
Konfigurieren Sie eine Back-End-Ressource für die Einbettungs-API-Bereitstellung mit den folgenden Einstellungen:
- Name: Ein Name Ihrer Wahl, z. B.
embeddings-backend
Sie verwenden diesen Namen, um in Richtlinien auf das Back-End zu verweisen. - Typ: Wählen Sie Benutzerdefinierte URL aus.
- Runtime-URL: Die URL der Einbettungs-API-Bereitstellung in Azure OpenAI Service wie:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings
Test backend
Um das Back-End zu testen, erstellen Sie einen API-Vorgang für Ihre Azure OpenAI Service-API:
- Wählen Sie auf der Registerkarte Entwurf Ihrer API die Option + Vorgang hinzufügen aus.
- Geben Sie einen Anzeigenamen 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-Type
und dem Wertapplication/json
hinzu. - 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:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Konfigurieren von Richtlinien für die semantische Zwischenspeicherung
Konfigurieren Sie die folgenden Richtlinien, um die semantische Zwischenspeicherung für Azure OpenAI-APIs in Azure API Management zu aktivieren:
Fügen Sie im Abschnitt Eingehende Verarbeitung für die API die Richtlinie azure-openai-semantic-cache-lookup hinzu. Geben Sie im Attribut
embeddings-backend-id
das von Ihnen erstellte Embeddings-API-Back-End an.Hinweis
Wenn Sie die semantische Zwischenspeicherung für andere APIs für große Sprachenmodelle aktivieren, verwenden Sie stattdessen die Richtlinie für llm-semantic-cache-lookup.
Beispiel:
<azure-openai-semantic-cache-lookup score-threshold="0.8" embeddings-backend-id="embeddings-deployment" embeddings-backend-auth="system-assigned" ignore-system-messages="true" max-message-count="10"> <vary-by>@(context.Subscription.Id)</vary-by> </azure-openai-semantic-cache-lookup>
Fügen Sie im Abschnitt Ausgehende Verarbeitung für die API die Richtlinie azure-openai-semantic-cache-store hinzu.
Hinweis
Wenn Sie die semantische Zwischenspeicherung für andere APIs für große Sprachenmodelle aktivieren, verwenden Sie stattdessen die Richtlinie für llm-semantic-cache-store.
Beispiel:
<azure-openai-semantic-cache-store duration="60" />
Bestätigen der Zwischenspeicherung
Um zu bestätigen, dass die semantische Zwischenspeicherung erwartungsgemäß funktioniert, verfolgen Sie einen Testvervollständigungs- oder Chatvervollständigungsvorgang mithilfe der Testkonsole im Portal. Vergewissern Sie sich, dass der Cache bei nachfolgenden Versuchen verwendet wurde, indem Sie die Ablaufverfolgung überprüfen. Erfahren Sie mehr über die Ablaufverfolgung von API-Aufrufen in Azure API Management.
Wenn der Cache verwendet wurde, enthält der Ausgabeabschnitt beispielsweise Einträge, die denen im folgenden Screenshot ähneln:
Zugehöriger Inhalt
- Cachingrichtlinien
- Azure Cache for Redis
- GenAI-Gatewayfunktionen in Azure API Management