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.
Erfahren Sie, wie Sie Ihrer Anwendung lastenausgleich auf Unternehmensniveau hinzufügen, um die Chat-App über das Azure OpenAI-Diensttoken und modellbasierte Kontingentgrenzen hinaus zu erweitern. Dieser Ansatz verwendet Azure API Management, um den Datenverkehr zwischen drei Azure OpenAI-Ressourcen intelligent zu leiten.
In diesem Artikel müssen Sie zwei separate Beispiele bereitstellen:
- Chat-App:
- Wenn Sie die Chat-App noch nicht bereitgestellt haben, warten Sie, bis das Beispiel zum Lastenausgleich bereitgestellt wurde.
- Wenn Sie die Chat-App bereits einmal bereitgestellt haben, ändern Sie die Umgebungsvariable so, dass ein benutzerdefinierter Endpunkt für das Lastenausgleichsmodul unterstützt und erneut bereitgestellt wird.
- Lastenausgleich mit Azure API Management.
Anmerkung
In diesem Artikel werden eine oder mehrere KI-App-Vorlagen als Grundlage für die Beispiele und Anleitungen im Artikel verwendet. KI-App-Vorlagen bieten Ihnen gut gepflegte Referenzimplementierungen, die einfach bereitzustellen sind. Sie tragen dazu bei, einen qualitativ hochwertigen Ausgangspunkt für Ihre KI-Apps zu gewährleisten.
Architektur für den Lastenausgleich von Azure OpenAI mit Azure API Management
Da die Azure OpenAI-Ressource bestimmte Token- und Modellkontingentbeschränkungen aufweist, ist eine Chat-App, die eine einzelne Azure OpenAI-Ressource verwendet, anfällig für Unterhaltungsfehler aufgrund dieser Grenzwerte.
Um die Chat-App zu verwenden, ohne diese Grenzwerte zu erreichen, verwenden Sie eine Lastenausgleichslösung mit API-Verwaltung. Diese Lösung stellt reibungslos einen einzelnen Endpunkt von der API-Verwaltung zu Ihrem Chat-App-Server bereit.
Die API-Verwaltungsressource als API-Ebene befindet sich vor einer Reihe von Azure OpenAI-Ressourcen. Die API-Ebene gilt für zwei Szenarien: normal und gedrosselt. In einem normalen Szenario, bei dem ein Token- und Modell-Kontingent verfügbar ist, gibt die Azure OpenAI-Ressource über die API-Ebene und den Back-End-App-Server einen Wert von 200 zurück.
Wenn eine Ressource aufgrund von Kontingentbeschränkungen gedrosselt wird, kann die API-Schicht sofort eine andere Azure OpenAI Ressource erneut versuchen, um die ursprüngliche Anfrage der Chat App zu erfüllen.
Voraussetzungen
Azure-Abonnement. Kostenlos erstellen
Dev-Container sind für beide Beispiele verfügbar, wobei alle Abhängigkeiten erforderlich sind, um diesen Artikel abzuschließen. Sie können die Entwicklercontainer in GitHub Codespaces (in einem Browser) oder lokal mit Visual Studio Code ausführen.
- Für die Verwendung von Codespaces ist nur ein GitHub-Konto erforderlich
Öffnen der lokalen Balancer-Beispiel-App für Azure API Management
GitHub Codespaces führt einen von GitHub verwalteten Entwicklungscontainer mit Visual Studio Code für das Web als Benutzeroberfläche aus. Verwenden Sie für die einfachste Entwicklungsumgebung GitHub Codespaces, damit Sie die richtigen Entwicklertools und Abhängigkeiten vorinstalliert haben, um diesen Artikel abzuschließen.
Wichtig
Alle GitHub-Konten können GitHub Codespaces für bis zu 60 Stunden kostenlos jeden Monat mit zwei Kerninstanzen verwenden. Weitere Informationen finden Sie im Artikel zu monatlich enthaltener Speicherkapazität und Kernstunden in GitHub Codespaces.
Bereitstellen des Azure API Management-Lastenausgleichsmoduls
Um das Lastenausgleichsmodul in Azure bereitzustellen, melden Sie sich bei der Azure Developer CLI (
AZD
) an:azd auth login
Schließen Sie die Anmeldeanweisungen ab.
Bereitstellen der Lastenausgleichs-App:
azd up
Wählen Sie ein Abonnement und eine Region für die Bereitstellung aus. Sie müssen nicht dasselbe Abonnement und dieselbe Region wie die Chat-App sein.
Warten Sie, bis die Bereitstellung abgeschlossen ist, bevor Sie fortfahren. Dieser Vorgang kann bis zu 30 Minuten dauern.
Holen Sie den Load-Balancer Endpunkt
Führen Sie den folgenden Bash-Befehl aus, um die Umgebungsvariablen aus der Bereitstellung anzuzeigen. Sie benötigen diese Informationen später.
azd env get-values | grep APIM_GATEWAY_URL
Verteilen Sie die Chat-Anwendung mit dem Lastausgleichsendpunkt neu
Diese Beispiele werden auf dem Chat-App-Beispiel vervollständigt.
Öffnen Sie den Dev-Container des Chat-App-Beispiels, indem Sie eine der folgenden Optionen verwenden.
Sprache GitHub-Codespaces Visual Studio Code .NET JavaScript Python Melden Sie sich bei der Azure Developer CLI (
AZD
) an:azd auth login
Schließen Sie die Anmeldeanweisungen ab.
Erstellen Sie eine Umgebung
AZD
mit einem Namen wiechat-app
:azd env new <name>
Fügen Sie die folgende Umgebungsvariable hinzu, die das Back-End der Chat-App angibt, eine benutzerdefinierte URL für die Azure OpenAI-Anforderungen zu verwenden:
azd env set OPENAI_HOST azure_custom
Fügen Sie die folgende Umgebungsvariable hinzu, die dem Back-End der Chat-App angibt, was der Wert der benutzerdefinierten URL für die Azure OpenAI-Anforderung ist:
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
Bereitstellen der Chat-App:
azd up
Konfigurieren Sie die TPM-Quote
Standardmäßig wird jede Azure OpenAI-Instanz im Lastenausgleich mit einer Kapazität von 30.000 Token pro Minute (TPM) bereitgestellt. Sie können die Chat-App mit dem Vertrauen verwenden, dass sie so aufgebaut ist, dass sie für viele Benutzer skaliert wird, ohne dass das Kontingent überschritten wird. Ändern Sie diesen Wert in folgenden Fällen:
- Sie erhalten Fehler bei der Bereitstellungskapazität: Verringern Sie den Wert.
- Sie benötigen eine höhere Kapazität: Erhöhen Sie den Wert.
Verwenden Sie den folgenden Befehl, um den Wert zu ändern:
azd env set OPENAI_CAPACITY 50
Stellen Sie den Load Balancer neu ein:
azd up
Bereinigen von Ressourcen
Wenn Sie mit der Chat-App und dem Load Balancer fertig sind, löschen Sie die Ressourcen. Die in diesem Artikel erstellten Azure-Ressourcen werden Ihrem Azure-Abonnement in Rechnung gestellt. Wenn Sie nicht erwarten, dass diese Ressourcen in Zukunft benötigt werden, löschen Sie sie, um mehr Gebühren zu vermeiden.
Bereinigen der Chat-App-Ressourcen
Kehren Sie zum Artikel der Chat-App zurück, um diese Ressourcen zu bereinigen.
Bereinigen Sie die Load-Balancer Ressourcen
Führen Sie den folgenden Azure Developer CLI-Befehl aus, um die Azure-Ressourcen zu löschen und den Quellcode zu entfernen:
azd down --purge --force
Die Schalter bieten:
purge
: Gelöschte Ressourcen werden sofort gelöscht. Sie können die Azure OpenAI-Token pro Minute wiederverwenden.force
: Die Löschung erfolgt im Hintergrund, ohne dass die Zustimmung des Benutzers erforderlich ist.
Bereinigen von Ressourcen
Durch das Löschen der GitHub Codespaces-Umgebung wird sichergestellt, dass Sie die anzahl der kostenlosen Berechtigungen pro Kernstunden maximieren können, die Sie für Ihr Konto erhalten.
Wichtig
Weitere Informationen zu den Berechtigungen Ihres GitHub-Kontos finden Sie im Artikel zu monatlich enthaltener Speicherkapazität und Kernstunden in GitHub Codespaces.
Melden Sie sich beim GitHub Codespaces-Dashboardan.
Ermitteln Sie Ihre aktuell ausgeführten Codespaces, die aus dem
azure-samples/openai-apim-lb
GitHub-Repository stammen.Öffnen Sie das Kontextmenü für das GitHub Codespaces-Element, und wählen Sie dann Löschenaus.
Hilfe anfordern
Wenn Sie Probleme beim Bereitstellen des Azure API Management-Lastenausgleichs haben, fügen Sie Ihr Problem dem Repository hinzu. Probleme Webseite.
Beispielcode
Beispiele, die in diesem Artikel verwendet werden, umfassen:
Nächste Schritte
- Anzeigen von Azure API Management-Diagnosedaten in Azure Monitor
- Verwenden Sie Azure Load Testing, um Ihre Chat-App mit dem Azure Load Testing-Dienst zu laden.
- Erfahren Sie mehr darüber, wie AZD in dieser Vorlage verwendet wird: