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 Authentifizieren und Autorisieren des Zugriffs auf Azure OpenAI-APIs mithilfe von Azure API Management.
Eine Azure Managed Redis-Instanz mit aktiviertem RediSearch-Modul im Redis-Cache.
Hinweis
Sie können das RediSearch-Modul nur aktivieren, wenn Sie einen neuen Azure Managed Redis-Cache erstellen. Sie können einem vorhandenen Cache kein Modul hinzufügen. Weitere Informationen
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-Vervollständigungs-API oder 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
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 azure-openai-semantic-cache-lookup hinzu. Geben Sie im Attribut
embeddings-backend-iddas 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.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> </azure-openai-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 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 wie erwartet funktioniert, verfolgen Sie einen Testabschluss- oder Chatabschlussvorgang mithilfe der Testkonsole im Portal nach. 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