Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lär dig hur du lägger till belastningsutjämning i ditt program för att utöka chattappen utöver Azure OpenAI-tjänstens token- och modellkvotgränser. Den här metoden använder Azure Container Apps för att skapa tre Azure OpenAI-slutpunkter och en primär container för att dirigera inkommande trafik till en av de tre slutpunkterna.
Den här artikeln kräver att du distribuerar två separata exempel:
Chattapp
Om du inte har distribuerat chattappen ännu väntar du tills lastbalanserarens exempel har distribuerats.
Om du redan har distribuerat chattappen en gång ändrar du miljövariabeln så att den stöder en anpassad slutpunkt för lastbalanseraren och distribuerar om den igen.
Chattappen är tillgänglig på följande språk:
- ** .NET
- JavaScript
- Python
Appen Lastbalanserare
Kommentar
Den här artikeln använder en eller flera AI-appmallar som grund för exemplen och vägledningen i den här artikeln. MED AI-appmallar får du väl underhållna referensimplementeringar som är enkla att distribuera. De bidrar till att säkerställa en högkvalitativ startpunkt för dina AI-appar.
Arkitektur för belastningsutjämning av Azure OpenAI med Azure Container Apps
Eftersom Azure OpenAI-resursen har specifika token- och modellkvotgränser är en chattapp som använder en enda Azure OpenAI-resurs benägen att få konversationsfel på grund av dessa gränser.
Om du vill använda chattappen utan att nå dessa gränser använder du en belastningsutjämningslösning med Container Apps. Den här lösningen exponerar sömlöst en enskild slutpunkt från Container Apps till chattappservern.
Containerappen finns framför en uppsättning Azure OpenAI-resurser. Containerappen löser två scenarier: normal och dämpad. Under ett normalt scenario där token- och modellkvoten är tillgänglig returnerar Azure OpenAI-resursen 200 tillbaka via containerappen och appservern.
När en resurs befinner sig i ett begränsat scenario på grund av kvotgränser kan containerappen försöka igen med en annan Azure OpenAI-resurs omedelbart för att uppfylla den ursprungliga chattappens begäran.
Förutsättningar
Azure-prenumeration. Skapa ett gratis konto
Dev-containers är tillgängliga för båda exemplen, med alla beroenden som krävs för att genomföra det som beskrivs i den här artikeln. Du kan köra dev-containrarna i GitHub Codespaces (i en webbläsare) eller lokalt med hjälp av Visual Studio Code.
- Ett GitHub-konto.
Öppna exempelappen för lastbalanserare i Container Apps
GitHub Codespaces kör en utvecklingscontainer som hanteras av GitHub med Visual Studio Code för webben som användargränssnitt. För den enklaste utvecklingsmiljön använder du GitHub Codespaces så att du har rätt utvecklarverktyg och beroenden förinstallerade för att slutföra den här artikeln.
Viktigt!
Alla GitHub-konton kan använda GitHub Codespaces i upp till 60 timmar kostnadsfritt varje månad med två kärninstanser. Mer information finns i GitHub Codespaces månadsvis inkluderade lagrings- och kärntimmar.
Distribuera lastbalanseraren för Azure Container Apps
Logga in på Azure Developer CLI för att tillhandahålla autentisering till etablerings- och distributionsstegen:
azd auth login --use-device-codeAnge en miljövariabel för att använda Azure CLI-autentisering i steget efter installationen:
azd config set auth.useAzCliAuth "true"Distribuera lastbalanserarens app:
azd upVälj en prenumeration och region för distributionen. De behöver inte ha samma prenumeration och region som chattappen.
Vänta tills distributionen är klar innan du fortsätter.
Hämta distributionsslutpunkten
Använd följande kommando för att visa den distribuerade slutpunkten för containerappen:
azd env get-valuesKopiera
CONTAINER_APP_URL-värdet. Du använder den i nästa avsnitt.
Omdistribuera chattappen med lastbalanserarens endpoint
De här exemplen har slutförts i chattappexemplet.
Öppna chattappexemplets utvecklingscontainer med något av följande alternativ.
Språk GitHub Codespaces Visual Studio-koden .NÄT Öppna i GitHub Codespaces
Öppna i Dev Containers JavaScript Öppna i GitHub Codespaces
Öppna i Dev Containers python Öppna i GitHub Codespaces
Öppna i Dev Containers Logga in på Azure Developer CLI (
AZD):azd auth loginSlutför inloggningsinstruktionerna.
Skapa en
AZDmiljö med ett namn somchat-app:azd env new <name>Lägg till följande miljövariabel, som instruerar chattappens serverdel att använda en anpassad URL för Azure OpenAI-begäranden:
azd env set OPENAI_HOST azure_customLägg till följande miljövariabel. Ersätt
<CONTAINER_APP_URL>för URL:en från föregående avsnitt. Den här åtgärden talar om för chattappens serverdel vad värdet är för den anpassade URL:en för Azure OpenAI-begäran.azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>Driftsätt chattappen:
azd up
Använd chattappen med förtroende för att den skalar över många användare utan att kvoten tar slut.
Visa loggar för att se lastbalanseringens resultat
I Azure-portalen, sök upp din resursgrupp.
I listan över resurser i gruppen väljer du resursen Azure Container Apps.
Välj Övervakning>Loggström för att visa loggen.
Använd chattappen för att generera trafik i loggen.
Leta efter loggarna som refererar till Azure OpenAI-resurserna. Var och en av de tre resurserna har sin numeriska identitet i loggkommentaren som börjar med
Proxying to https://openai3, där3anger den tredje Azure OpenAI-resursen.
När lastbalanseraren får statusen att begäran överskrider kvoten roteras lastbalanseraren automatiskt till en annan resurs.
Konfigurera TPM-kvoten
Som standard distribueras var och en av Azure OpenAI-instanserna i lastbalanseraren med en kapacitet på 30 000 token per minut (TPM). Du kan använda chattappen med förtroende för att den skalar över många användare utan att kvoten tar slut. Ändra det här värdet när:
- Du får distributionskapacitetsfel: Sänk värdet.
- Du behöver högre kapacitet: Öka värdet.
Använd följande kommando för att ändra värdet:
azd env set OPENAI_CAPACITY 50Omdistribuera lastbalanseraren
azd up
Rensa resurser
När du är klar med chattappen och lastbalanseraren rensar du resurserna. De Azure-resurser som skapas i den här artikeln faktureras till din Azure-prenumeration. Om du inte förväntar dig att behöva dessa resurser i framtiden tar du bort dem för att undvika att debiteras mer.
Rensa chattappresurser
Gå tillbaka till chattappartikeln för att rensa resurserna:
- ** .NET
- JavaScript
- Python
Rensa resurser för uppladdningsbalanserare
Ta bort Azure-resurserna och ta bort källkoden:
azd down --purge --force
Växlarna tillhandahåller:
-
purge: Borttagna resurser rensas omedelbart så att du kan återanvända Azure OpenAI-tjänsttoken per minut. -
force: Borttagningen sker tyst, utan att behöva användarens medgivande.
Rensa GitHub Codespaces och Visual Studio Code
Genom att radera GitHub Codespaces-miljön kan du maximera antalet kostnadsfria timmar per kärna som du får för ditt konto.
Viktigt!
För mer information om ditt GitHub-kontos förmåner, se GitHub Codespaces månadsvis inkluderade lagrings- och kärntimmar.
Leta upp dina kodområden som körs och som hämtas från azure-samples/openai-aca-lb GitHub-lagringsplats.
Öppna snabbmenyn för kodområdet och välj sedan Ta bort.
Få hjälp
Om du har problem med att distribuera lastbalanseraren för Azure Container Apps kan du lägga till ditt ärende på lagringsplatsens Issues sida.
Exempelkod
Exempel som används i den här artikeln är:
Gå vidare
- Använd Azure Load Testing för att belastningstesta din chattapp med Azure Load Testing-tjänst.
- Läs mer om hur Azure Developer CLI (AZD) används i den här mallen:
- teknikgemenskapsblogginlägg
- videoserien Reactor