Azure OpenAI schalen voor JavaScript met Azure API Management
Meer informatie over het toevoegen van taakverdeling op bedrijfsniveau aan uw toepassing om de chat-app uit te breiden buiten het Azure OpenAI Service-token en modelquotumlimieten. Deze benadering maakt gebruik van Azure API Management om op intelligente wijze verkeer te leiden tussen drie Azure OpenAI-resources.
Voor dit artikel moet u twee afzonderlijke voorbeelden implementeren:
- Chat-app:
- Als u de chat-app nog niet hebt geïmplementeerd, wacht u totdat het voorbeeld van de load balancer is geïmplementeerd.
- Als u de chat-app al eenmaal hebt geïmplementeerd, wijzigt u de omgevingsvariabele ter ondersteuning van een aangepast eindpunt voor de load balancer en implementeert u deze opnieuw.
- Een load balancer met Azure API Management.
Notitie
In dit artikel worden een of meer AI-app-sjablonen gebruikt als basis voor de voorbeelden en richtlijnen in het artikel. AI-app-sjablonen bieden u goed onderhouden referentie-implementaties die eenvoudig te implementeren zijn. Ze helpen u om een startpunt van hoge kwaliteit voor uw AI-apps te garanderen.
Architectuur voor taakverdeling van Azure OpenAI met Azure API Management
Omdat de Azure OpenAI-resource specifieke token- en modelquotumlimieten heeft, is een chat-app die gebruikmaakt van één Azure OpenAI-resource gevoelig voor gespreksfouten vanwege deze limieten.
Als u de chat-app wilt gebruiken zonder deze limieten te bereiken, gebruikt u een oplossing met gelijke taakverdeling met API Management. Met deze oplossing wordt naadloos één eindpunt van API Management beschikbaar gesteld aan uw chat-app-server.
De API Management-resource bevindt zich als API-laag voor een set Azure OpenAI-resources. De API-laag is van toepassing op twee scenario's: normaal en beperkt. Tijdens een normaal scenario waarin token- en modelquota beschikbaar zijn, retourneert de Azure OpenAI-resource een 200 terug via de API-laag en de back-end-app-server.
Wanneer een resource wordt beperkt vanwege quotumlimieten, kan de API-laag een andere Azure OpenAI-resource onmiddellijk opnieuw proberen om te voldoen aan de oorspronkelijke aanvraag voor de chat-app.
Vereisten
Azure-abonnement. Maak er gratis een
Dev-containers zijn beschikbaar voor beide voorbeelden, waarbij alle afhankelijkheden vereist zijn om dit artikel te voltooien. U kunt de dev-containers uitvoeren in GitHub Codespaces (in een browser) of lokaal met behulp van Visual Studio Code.
- Alleen een GitHub-account is vereist voor het gebruik van Codespaces
De lokale balancer-voorbeeld-app van Azure API Management openen
GitHub Codespaces voert een ontwikkelcontainer uit die wordt beheerd door GitHub met Visual Studio Code voor het web als de gebruikersinterface. Voor de eenvoudigste ontwikkelomgeving gebruikt u GitHub Codespaces zodat u de juiste ontwikkelhulpprogramma's en afhankelijkheden vooraf hebt geïnstalleerd om dit artikel te voltooien.
Belangrijk
Alle GitHub-accounts kunnen Elke maand maximaal 60 uur gratis GitHub Codespaces gebruiken met twee kernexemplaren. Zie GitHub Codespaces maandelijks inbegrepen opslag- en kernuren voor meer informatie.
De Load Balancer van Azure API Management implementeren
Als u de load balancer wilt implementeren in Azure, meldt u zich aan bij de Azure Developer CLI (
AZD
):azd auth login
Voltooi de aanmeldingsinstructies.
Implementeer de load balancer-applicatie:
azd up
Selecteer een abonnement en regio voor de implementatie. Ze hoeven niet hetzelfde abonnement en dezelfde regio te zijn als de chat-app.
Wacht tot de implementatie is voltooid voordat u doorgaat. Dit proces kan tot 30 minuten duren.
Het eindpunt van de load balancer ophalen
Voer de volgende Bash-opdracht uit om de omgevingsvariabelen van de implementatie te bekijken. U hebt deze informatie later nodig.
azd env get-values | grep APIM_GATEWAY_URL
Herimplementeren van de chat-app met het eindpunt van de load balancer
Deze voorbeelden zijn voltooid in het chat-app voorbeeld.
Open de dev-container van de chat-app met behulp van een van de volgende opties.
Taal GitHub Codespaces Visual Studio Code .NET Openen in GitHub Codespaces Openen in Dev Containers JavaScript Openen in GitHub Codespaces Openen in Dev Containers Python Openen in GitHub Codespaces Openen in Dev Containers Meld u aan bij de Azure Developer CLI (
AZD
):azd auth login
Voltooi de aanmeldingsinstructies.
Maak een
AZD
-omgeving met een naam zoalschat-app
:azd env new <name>
Voeg de volgende omgevingsvariabele toe, waarmee de back-end van de chat-app een aangepaste URL voor de Azure OpenAI-aanvragen moet gebruiken:
azd env set OPENAI_HOST azure_custom
Voeg de volgende omgevingsvariabele toe, waarmee de back-end van de chat-app wordt aangegeven wat de waarde is van de aangepaste URL voor de Azure OpenAI-aanvraag:
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
De chat-app implementeren:
azd up
Het TPM-quotum configureren
Standaard wordt elk van de Azure OpenAI-exemplaren in de load balancer geïmplementeerd met een capaciteit van 30.000 tokens per minuut (TPM). U kunt de chat-app gebruiken met het vertrouwen dat deze is gebouwd om te schalen voor veel gebruikers zonder dat er geen quotum meer is. Wijzig deze waarde wanneer:
- U krijgt fouten in de implementatiecapaciteit: verlaag de waarde.
- U hebt een hogere capaciteit nodig: Verhoog de waarde.
Gebruik de volgende opdracht om de waarde te wijzigen:
azd env set OPENAI_CAPACITY 50
Implementeer de load balancer opnieuw:
azd up
Resources opschonen
Wanneer u klaar bent met de chat-app en de load balancer, moet u de resources opschonen. De Azure-resources die in dit artikel zijn gemaakt, worden gefactureerd voor uw Azure-abonnement. Als u deze resources in de toekomst niet meer nodig hebt, verwijdert u deze om te voorkomen dat er meer kosten in rekening worden gebracht.
De resources van de chat-app opschonen
Ga terug naar het artikel van de chat-app om deze resources op te schonen.
De resources van de load balancer opschonen
Voer de volgende Azure Developer CLI-opdracht uit om de Azure-resources te verwijderen en de broncode te verwijderen:
azd down --purge --force
De schakelopties bieden:
purge
: Verwijderde resources worden onmiddellijk verwijderd. U kunt de Azure OpenAI-tokens per minuut opnieuw gebruiken.force
: het verwijderen gebeurt op de achtergrond, zonder dat hiervoor toestemming van de gebruiker is vereist.
Resources opschonen
Als u de GitHub Codespaces-omgeving verwijdert, zorgt u ervoor dat u de hoeveelheid gratis rechten per kernuren die u voor uw account krijgt, kunt maximaliseren.
Belangrijk
Zie GitHub Codespaces maandelijks inbegrepen opslag- en kernuren voor meer informatie over de rechten van uw GitHub-account.
Meld u aan bij het GitHub Codespaces-dashboard.
Zoek uw coderuimten die momenteel actief zijn en afkomstig zijn van de
azure-samples/openai-apim-lb
GitHub-opslagplaats.Open het contextmenu voor het GitHub Codespaces-item en selecteer Verwijderen.
Hulp vragen
Als u problemen ondervindt bij het implementeren van de Load Balancer van Azure API Management, voegt u uw probleem toe aan de problemen van de opslagplaats webpagina.
Voorbeeldcode
Voorbeelden die in dit artikel worden gebruikt, zijn:
Volgende stappen
- Diagnostische gegevens van Azure API Management weergeven in Azure Monitor
- Gebruik Azure Load Testing om uw chat-app te laden met de Azure Load Testing-service.