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 företagsklass 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 API Management för att intelligent dirigera trafik mellan tre Azure OpenAI-resurser.
Den här artikeln kräver att du distribuerar två separata exempel:
- Chattapp:
- Vänta med att distribuera chattappen 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.
- Lastbalanserare med Azure API Management.
Anmärkning
Den här artikeln använder en eller flera AI-appmallar som grund för exemplen och instruktionerna i 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 API Management
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 API Management. Den här lösningen exponerar sömlöst en enskild slutpunkt från API Management till chattappservern.
API Management-resursen, som ett API-lager, finns framför en uppsättning Azure OpenAI-resurser. API-lagret gäller för två scenarier: normalt och begränsat. I ett normalt scenario där token- och modellkvoten är tillgänglig returnerar Azure OpenAI-resursen 200 via API-lagret och bakgrundsappservern.
När en resurs begränsas på grund av kvotgränser kan API-lagret försöka igen med en annan Azure OpenAI-resurs omedelbart för att uppfylla den ursprungliga chattappens begäran.
Förutsättningar
Ett Azure-abonnemang. Skapa en kostnadsfritt.
Dev-containrar är tillgängliga för båda exemplen, med alla beroenden som krävs för att slutföra 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.
- Endast ett GitHub-konto krävs för att använda GitHub Codespaces.
Öppna exempelappen för Azure API Management Local Balancer
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. För mer information, se GitHub Codespaces månadsvis inkluderade lagrings- och kärntimmar.
Distribuera Lastbalanseraren för Azure API Management
Om du vill distribuera lastbalanseraren till Azure loggar du in på Azure Developer CLI (
AZD):azd auth loginSlutför inloggningsinstruktionerna.
Distribuera lastbalanseringsappen:
azd upVälj en prenumeration och region för distributionen. Det behöver inte vara samma abonnemang och region som chattapplikationen.
Vänta tills distributionen är klar innan du fortsätter. Den här processen kan ta upp till 30 minuter.
Hämta lastbalanserarens slutpunkt
Kör följande Bash-kommando för att se miljövariablerna från distributionen. Du behöver den här informationen senare.
azd env get-values | grep APIM_GATEWAY_URL
Återdistribuera chattappen med lastbalanserarens slutpunkt
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 Code .NÄT Öppna i Dev Containers JavaScript Öppna i Dev Containers python Ö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 den här miljövariabeln för att berätta för chattappens serverdel den anpassade URL:en för Azure OpenAI-begäran:
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>Driftsätt chattappen:
azd up
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 chattappens resurser
Gå tillbaka till chattappartikeln för att rensa resurserna.
Rensa lastbalanserarens resurser
Ta bort Azure-resurserna och ta bort källkoden:
azd down --purge --force
Växlarna tillhandahåller:
-
purge: Borttagna resurser rensas omedelbart. Du kan återanvända Azure OpenAI-token per minut. -
force: Borttagningen sker tyst, utan att behöva användarens medgivande.
Rensa resurser
Att ta bort GitHub Codespaces-miljön säkerställer att du kan maximera antalet kostnadsfria timmar per kärna som du får för ditt konto.
Viktigt!
För mer information om rättigheterna för ditt GitHub-konto, se GitHub Codespaces månadsvis inkluderad lagringskapacitet och kärntimmar.
Leta upp dina kodområden som körs och som hämtas från
azure-samples/openai-apim-lbGitHub-lagringsplats.
Öppna snabbmenyn för objektet GitHub Codespaces och välj sedan Ta bort.
Få hjälp
Om du har problem med att distribuera Azure API Management-lastbalanseraren, lägg till ditt problem på lagringsplatsens Problemsida.
Exempelkod
Exempel som används i den här artikeln är:
Relaterat innehåll
- Visa diagnostikdata för Azure API Management i Azure Monitor.
- Använd Azure Load Testing för att läsa in test av chattappen.