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
In diesem Artikel werden Funktionen in Azure API Management vorgestellt, mit denen Sie generative KI-APIs verwalten können, wie sie z. B. von Azure OpenAI Service bereitgestellt werden. Azure API Management bietet eine Reihe von Richtlinien, Metriken und anderen Features zur Verbesserung der Sicherheit, Leistung und Zuverlässigkeit für die APIs, die Ihren intelligenten Apps zugrunde liegen. Zusammen werden diese Features als KI-Gatewayfunktionen für Ihre generativen KI-APIs bezeichnet.
Hinweis
- Verwenden Sie KI-Gatewayfunktionen zum Verwalten von APIs, die von Azure OpenAI Service verfügbar gemacht werden, die über die Azure AI Model Inference-API oder mit OpenAI-kompatiblen Modellen bereitgestellt werden, die von Drittanbietern bereitgestellt werden.
- KI-Gatewayfunktionen sind Features des vorhandenen API-Gateways der API-Verwaltung, kein separates API-Gateway. Weitere Informationen finden Sie in der Übersicht über Azure API Management.
Herausforderungen bei der Verwaltung generativer KI-APIs
Eine der Hauptressourcen, in generativen KI-Diensten sind Token. Azure OpenAI Service weist ein Kontingent für Ihre Modellimplementierungen zu. Dieses wird in Token pro Minute (TPM) ausgedrückt und auf Ihre Modellconsumer aufgeteilt. Dabei kann es sich beispielsweise um verschiedene Anwendungen, Entwicklerteams oder Abteilungen innerhalb des Unternehmens handeln.
Mit Azure lässt sich ganz einfach eine einzelne App mit Azure OpenAI Service verbinden: Sie können eine direkte Verbindung unter Verwendung eines API-Schlüssels mit einem TPM-Grenzwert herstellen, der direkt auf der Modellimplementierungsebene konfiguriert ist. Mit zunehmender Größe Ihres Anwendungsportfolios gibt es jedoch mehrere Apps, die einzelne oder sogar mehrere Azure OpenAI Service-Endpunkte aufrufen, die als Instanzen mit nutzungsbasierter Bezahlung oder als PTU-Instanzen (Provisioned Throughput Units; bereitgestellte Durchsatzeinheiten) bereitgestellt werden. Das bringt gewisse Herausforderungen mit sich:
- Wie wird die Tokenverwendung in mehreren Anwendungen nachverfolgt? Können Verrechnungen für mehrere Anwendungen/Teams berechnet werden, die Azure OpenAI Service-Modelle verwenden?
- Wie können Sie sicherstellen, dass eine einzelne App nicht das gesamte TPM-Kontingent nutzt und andere Apps deshalb keine Azure OpenAI Service-Modelle verwenden können?
- Wie wird der API-Schlüssel sicher auf mehrere Anwendungen verteilt?
- Wie wird die Last auf mehrere Azure OpenAI-Endpunkte verteilt? Können Sie sicherstellen, dass die zugesicherte Kapazität in PTUs aufgebraucht ist, bevor auf Instanzen mit nutzungsbasierter Bezahlung zurückgegriffen wird?
Im Rest dieses Artikels erfahren Sie, wie Azure API Management Ihnen dabei helfen kann, diese Herausforderungen zu bewältigen.
Importieren einer Azure OpenAI Service-Ressource als API
Importieren Sie eine API aus einem Azure OpenAI Service-Endpunkt mit nur einem Klick in Azure API Management. API Management optimiert den Onboardingprozess durch automatisches Importieren des OpenAPI-Schemas für die Azure OpenAI-API und richtet die Authentifizierung für den Azure OpenAI-Endpunkt mittels verwalteter Identität ein, sodass keine manuelle Konfiguration mehr erforderlich ist. Innerhalb derselben benutzerfreundlichen Benutzeroberfläche können Sie Richtlinien für Tokenbeschränkungen, ausstellende Tokenmetriken und semantische Zwischenspeicherung vorkonfigurieren.
Tokengrenzwertrichtlinie
Konfigurieren Sie die Azure OpenAI-Tokengrenzwertrichtlinie, um Grenzwerte pro API-Consumer basierend auf der Verwendung von Azure OpenAI Service-Token zu verwalten und zu erzwingen. Mit dieser Richtlinie können Sie einen Satzgrenzwert festlegen, der in Token pro Minute (TPM) ausgedrückt wird. Sie können ein Tokenkontingent auch über einen bestimmten Zeitraum festlegen, z. B. stündlich, täglich, wöchentlich, monatlich oder jährlich.
Mit dieser Richtlinie können tokenbasierte Grenzwerte flexibel für einen beliebigen Zählerschlüssel zugewiesen werden. Hierzu zählen z. B. Abonnementschlüssel, Ursprungs-IP-Adresse oder ein beliebiger Schlüssel, der über einen Richtlinienausdruck definiert ist. Die Richtlinie ermöglicht auch die Vorausberechnung von Prompttoken aufseiten von API Management, wodurch unnötige Anforderungen an das Azure OpenAI Service-Back-End minimiert werden, wenn der Prompt den Grenzwert bereits überschreitet.
Das folgende einfache Beispiel veranschaulicht, wie ein TPM-Grenzwert von 500 pro Abonnementschlüssel festgelegt wird:
<azure-openai-token-limit counter-key="@(context.Subscription.Id)"
tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>
Tipp
Um Tokenlimits für andere LLM-APIs zu verwalten und zu erzwingen, stellt die API-Verwaltung die entsprechende Richtlinie für llm-token-limit bereit .
Richtlinie zum Ausgeben von Tokenmetriken
Die Azure OpenAI-Richtlinie zum Ausgeben von Tokenmetriken sendet Metriken zum Verbrauch von LLM-Token über Azure OpenAI Service-APIs an Application Insights. Die Richtlinie hilft Ihnen dabei, sich einen Überblick über die Nutzung von Azure OpenAI Service-Modellen durch mehrere Anwendungen oder API-Consumer zu verschaffen. Diese Richtlinie kann für Szenarien mit verbrauchsbasierter Kostenzuteilung sowie für die Überwachung und Kapazitätsplanung nützlich sein.
Diese Richtlinie erfasst Metriken zu Prompts und Vervollständigungen sowie zur Gesamttokennutzung und sendet sie an einen Application Insights-Namespace Ihrer Wahl. Darüber hinaus können Sie Dimensionen konfigurieren oder aus vordefinierten Dimensionen auswählen, um Tokennutzungsmetriken aufzuteilen, sodass Sie Metriken nach Abonnement-ID, IP-Adresse oder einer benutzerdefinierten Dimension Ihrer Wahl analysieren können.
Die folgende Richtlinie sendet beispielsweise Metriken an Application Insights, die nach Client-IP-Adresse, API und Benutzer aufgeteilt sind:
<azure-openai-emit-token-metric namespace="openai">
<dimension name="Client IP" value="@(context.Request.IpAddress)" />
<dimension name="API ID" value="@(context.Api.Id)" />
<dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>
Tipp
Um Metriken für andere LLM-APIs zu senden, stellt die API-Verwaltung die entsprechende llm-emit-token-metrische Richtlinie bereit.
Back-End-Lastenausgleich und Trennschalter
Eine der Herausforderungen beim Erstellen intelligenter Anwendungen besteht darin, dafür zu sorgen, dass die Anwendungen gegenüber Back-End-Fehlern resilient sind und mit hoher Last zurechtkommen. Sie können die Last auf Back-Ends verteilen, indem Sie Ihre Azure OpenAI Service-Endpunkte mit Back-Ends in Azure API Management konfigurieren. Außerdem können Sie Trennschalterregeln definieren, damit keine Anforderungen mehr an die Azure OpenAI Service-Back-Ends weitergeleitet werden, wenn diese nicht reagieren.
Der Lastenausgleich des Back-Ends unterstützt Roundrobin-basierten, gewichteten und prioritätsbasierten Lastenausgleich, sodass Sie flexibel eine Lastenverteilungsstrategie definieren können, die Ihren spezifischen Anforderungen gerecht wird. Definieren Sie beispielsweise Prioritäten innerhalb der Lastenausgleichskonfiguration, um eine optimale Nutzung bestimmter Azure OpenAI-Endpunkte zu gewährleisten – insbesondere derjenigen, die als PTUs erworben wurden.
Der Trennschalter des Back-Ends bietet eine dynamische Tripdauer. Dabei werden Werte aus dem vom Back-End bereitgestellten Retry-After-Header angewendet. Dadurch wird eine präzise und zeitnahe Wiederherstellung der Back-Ends sichergestellt und die Nutzung Ihrer priorisierten Back-Ends maximiert.
Richtlinie für die semantische Zwischenspeicherung
Konfigurieren Sie Azure OpenAI-Richtlinien für die semantische Zwischenspeicherung, um die Tokennutzung durch Speicherung von Vervollständigungen für ähnliche Prompts zu optimieren.
Aktivieren Sie in DER API-Verwaltung die semantische Zwischenspeicherung mithilfe von Azure Redis Enterprise, azure Managed Redis oder einem anderen externen Cache , der mit RediSearch kompatibel ist und in Azure API Management integriert ist. Durch Verwendung der Einbettungs-API von Azure OpenAI Service werden semantisch ähnliche Promptvervollständigungen durch die Richtlinien azure-openai-semantic-cache-store und azure-openai-semantic-cache-lookup gespeichert und aus dem Cache abgerufen. Dieser Ansatz gewährleistet die Wiederverwendung von Vervollständigungen, was die Tokennutzung reduziert und die Reaktionsleistung verbessert.
Tipp
Um die semantische Zwischenspeicherung für andere LLM-APIs zu aktivieren, stellt die API-Verwaltung die entsprechende Llm-semantic-cache-store-policy und llm-semantic-cache-lookup-policy policies bereit.
Protokollieren von Tokennutzung, Prompts und Vervollständigungen
Aktivieren Sie eine Diagnoseeinstellung in Ihrer API-Verwaltungsinstanz, um vom Gateway verarbeitete Anforderungen für REST-APIs für große Sprachenmodelle zu protokollieren. Für jede Anforderung werden Daten an Azure Monitor gesendet, einschließlich Tokenverwendung (Eingabeaufforderungstoken, Abschlusstoken und Gesamttoken), Name des verwendeten Modells und optional die Anforderungs- und Antwortnachrichten (Eingabeaufforderung und Abschluss). Große Anforderungen und Antworten werden bei Bedarf in mehrere Protokolleinträge aufgeteilt, die für die spätere Wiederherstellung sequenziell nummeriert werden.
Der API-Verwaltungsadministrator kann LLM-Gatewayprotokolle zusammen mit API-Verwaltungsgatewayprotokollen für Szenarien wie die folgenden verwenden:
- Berechnen der Nutzung für die Abrechnung: Berechnen Sie Nutzungsmetriken für die Abrechnung anhand der Anzahl der von jeder Anwendung oder jedem API-Verbraucher verbrauchten Token (z. B. segmentiert nach Abonnement-ID oder IP-Adresse).
- Nachrichten überprüfen – Um beim Debuggen oder bei der Überwachung zu helfen, überprüfen und analysieren Sie Eingabeaufforderungen und Abschlüsse.
Erfahren Sie mehr über die Überwachung der API-Verwaltung mit Azure Monitor.
Richtlinie zur Inhaltssicherheit
Um Benutzer vor schädlichen, anstößigen oder irreführenden Inhalten zu schützen, können Sie automatisch alle eingehenden Anforderungen an eine LLM-API moderieren, indem Sie die Richtlinie für llm-content-safety konfigurieren. Die Richtlinie erzwingt Inhaltssicherheitsprüfungen auf LLM-Eingabeaufforderungen, indem sie zuerst an den Azure AI Content Safety-Dienst übertragen werden, bevor sie an die BACK-END-LLM-API gesendet werden.
Labs und Beispiele
- Labore für die KI-Gateway-Funktionen von Azure API Management
- KI-Gateway-Workshop
- Azure API Management (APIM): Azure OpenAI-Beispiel (Node.js)
- Python-Beispielcode für die Verwendung von Azure OpenAI mit API Management
Architektur- und Entwurfsaspekte
- KI-Gatewayreferenzarchitektur mithilfe der API-Verwaltung
- Beschleuniger für KI-Hub-Gatewayzielzone
- Entwerfen und Implementieren einer Gatewaylösung mit Azure OpenAI-Ressourcen
- Verwenden eines vor mehreren Azure OpenAI-Bereitstellungen oder -Instanzen hinzugefügten Gateways
Zugehöriger Inhalt
- Blog: Einführung in KI-Funktionen in Azure API Management
- Blog: Integrieren von Azure-Inhaltssicherheit in API Management für Azure OpenAI-Endpunkte
- Training: Verwalten Ihrer generativen KI-APIs mit Azure API Management
- intelligenter Lastenausgleich für OpenAI-Endpunkte und Azure API Management
- Authentifizieren und Autorisieren des Zugriffs auf Azure OpenAI-APIs mithilfe von Azure API Management