Škálování Azure OpenAI pro JavaScript pomocí služby Azure API Management

Přečtěte si, jak do aplikace přidat vyrovnávání zatížení na podnikové úrovni, abyste mohli chatovací aplikaci rozšířit nad rámec limitů tokenu Azure OpenAI a kvót modelu. Tento přístup využívá Azure API Management k inteligentnímu směrování provozu mezi třemi prostředky Azure OpenAI.

Tento článek vyžaduje nasazení 2 samostatných ukázek:

  • Chatovací aplikace

    • Pokud jste chatovací aplikaci ještě nenasadili, počkejte, až se ukázka nástroje pro vyrovnávání zatížení nasadí.
    • Pokud jste chatovací aplikaci už jednou nasadili, změníte proměnnou prostředí tak, aby podporovala vlastní koncový bod nástroje pro vyrovnávání zatížení, a znovu ji nasadíte.
  • Nástroj pro vyrovnávání zatížení se službou Azure API Management

Architektura pro vyrovnávání zatížení Azure OpenAI se službou Azure API Management

Vzhledem k tomu, že prostředek Azure OpenAI má konkrétní limity kvót tokenu a modelu, je chatovací aplikace využívající jeden prostředek Azure OpenAI náchylný k selhání konverzací kvůli těmto limitům.

Diagram znázorňující architekturu chatovací aplikace se zvýrazněným prostředkem Azure OpenAI

Pokud chcete chatovací aplikaci používat bez dosažení těchto limitů, použijte řešení s vyrovnáváním zatížení ve službě Azure API Management. Toto řešení bezproblémově zpřístupňuje jeden koncový bod ze služby Azure API Management na váš chatovací aplikační server.

Diagram znázorňující architekturu chatovacích aplikací se službou Azure API Management před třemi prostředky Azure OpenAI

Prostředek Azure API Management, jako vrstva rozhraní API, se nachází před sadou prostředků Azure OpenAI. Vrstva rozhraní API se vztahuje na dva scénáře: normální a omezené. Během normálního scénáře , kdy je k dispozici kvóta tokenů a modelů, vrátí prostředek Azure OpenAI 200 zpět prostřednictvím vrstvy rozhraní API a back-endového aplikačního serveru.

Diagram znázorňující normální scénář V normálním scénáři se zobrazují tři skupiny koncových bodů Azure OpenAI s první skupinou dvou koncových bodů, které získávají úspěšný provoz.

Když dojde k omezení prostředku kvůli omezením kvót, může vrstva rozhraní API okamžitě zkusit jiný prostředek Azure OpenAI, aby splnila původní žádost o chatovací aplikaci.

Diagram znázorňující scénář omezování s kódem odpovědi 429, který selhává, a hlavičkou odpovědi o tom, kolik sekund musí klient počkat na opakování

Požadavky

Otevření ukázkové aplikace místního nástroje pro vyrovnávání zůstatku ve službě Azure API Management

GitHub Codespaces spouští vývojový kontejner spravovaný GitHubem pomocí editoru Visual Studio Code pro web jako uživatelského rozhraní. Pro nejjednodušší vývojové prostředí použijte GitHub Codespaces, abyste měli předinstalované správné vývojářské nástroje a závislosti k dokončení tohoto článku.

Otevřít v GitHub Codespaces

Důležité

Všechny účty GitHubu můžou každý měsíc používat Codespaces až 60 hodin zdarma se 2 jádrovými instancemi. Další informace najdete v tématu GitHub Codespaces měsíčně zahrnuté úložiště a hodiny jádra.

Nasazení nástroje pro vyrovnávání zatížení služby Azure API Management

  1. Pokud chcete nasadit nástroj pro vyrovnávání zatížení do Azure, přihlaste se k Azure Developer CLI (AZD).

    azd auth login
    
  2. Dokončete pokyny pro přihlášení.

  3. Nasaďte aplikaci nástroje pro vyrovnávání zatížení.

    azd up
    

    Budete muset vybrat předplatné a oblast nasazení. Nemusí to být stejné předplatné a oblast jako chatovací aplikace.

  4. Než budete pokračovat, počkejte, dokud nasazování neskončí. Může to trvat až 30 minut.

Získání koncového bodu nástroje pro vyrovnávání zatížení

Spuštěním následujícího příkazu Bash zobrazte proměnné prostředí z nasazení. Tyto informace budete potřebovat později.

azd env get-values | grep APIM_GATEWAY_URL

Opětovné nasazení chatovací aplikace s koncovým bodem nástroje pro vyrovnávání zatížení

Ty jsou hotové v ukázce chatovací aplikace.

  1. Otevřete ukázkový vývojový kontejner chatovací aplikace pomocí jedné z následujících možností.

    Jazyk Codespaces Visual Studio Code
    .NET Otevřít v GitHub Codespaces Otevřít v Dev Containers
    JavaScript Otevřít v GitHub Codespaces Otevřít v Dev Containers
    Python Otevřít v GitHub Codespaces Otevřít v Dev Containers
  2. Přihlaste se k Azure Developer CLI (AZD).

    azd auth login
    

    Dokončete pokyny pro přihlášení.

  3. Vytvořte prostředí AZD s názvem, například chat-app.

    azd env new <name>
    
  4. Přidejte následující proměnnou prostředí, která říká back-endu chatovací aplikace, aby pro požadavky OpenAI používala vlastní adresu URL.

    azd env set OPENAI_HOST azure_custom
    
  5. Přidejte následující proměnnou prostředí, která říká back-endu chatovací aplikace, jaká je hodnota vlastní adresy URL požadavku OpenAI.

    azd env set set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
    
  6. Nasaďte chatovací aplikaci.

    azd up
    

Konfigurace tokenů za minutu (TPM)

Ve výchozím nastavení se každá instance OpenAI v nástroji pro vyrovnávání zatížení nasadí s 30 000 čipy TPM (tokeny za minutu). Chatovací aplikaci můžete používat s jistotou, že je vytvořená tak, aby se škálovat napříč mnoha uživateli bez vyčerpání kvóty. Tuto hodnotu změňte v těchto případech:

  • Zobrazí se chyby kapacity nasazení: nižší hodnota.
  • Plánování vyšší kapacity zvýší hodnotu.
  1. Ke změně hodnoty použijte následující příkaz.

    azd env set OPENAI_CAPACITY 50
    
  2. Znovu nasaďte nástroj pro vyrovnávání zatížení.

    azd up
    

Vyčištění prostředků

Až budete hotovi s chatovací aplikací i nástrojem pro vyrovnávání zatížení, vyčistěte prostředky. Prostředky Azure vytvořené v tomto článku se fakturují k vašemu předplatnému Azure. Pokud v budoucnu tyto prostředky nepotřebujete, odstraňte je, abyste se vyhnuli účtování dalších poplatků.

Vyčištění prostředků chatovací aplikace

Vraťte se do článku chatovací aplikace, abyste tyto prostředky vyčistili.

Vyčištění prostředků nástroje pro vyrovnávání zatížení

Spuštěním následujícího příkazu Azure Developer CLI odstraňte prostředky Azure a odeberte zdrojový kód:

azd down --purge --force

Přepínače poskytují:

  • purge: Odstraněné prostředky se okamžitě vymažou. To vám umožní opakovaně používat čip TPM Azure OpenAI.
  • force: Odstranění probíhá bezobslužně bez nutnosti souhlasu uživatele.

Vyčištění služby GitHub Codespaces

Odstraněním prostředí GitHub Codespaces zajistíte, že můžete maximalizovat nárok na počet bezplatných hodin za jádro, které získáte pro svůj účet.

Důležité

Další informace o oprávněních účtu GitHub najdete v tématu GitHub Codespaces měsíčně zahrnuté hodiny úložiště a jádra.

  1. Přihlaste se k řídicímu panelu GitHub Codespaces (https://github.com/codespaces).

  2. Vyhledejte aktuálně spuštěné Codespaces zdrojové z azure-samples/openai-apim-lb úložiště GitHub.

    Snímek obrazovky se všemi spuštěnými codespaces včetně jejich stavu a šablon

  3. Otevřete místní nabídku pro položku Codespaces a pak vyberte Odstranit.

    Snímek obrazovky s místní nabídkou pro jeden prostor kódu se zvýrazněnou možností odstranit

Získání pomoci

Pokud máte potíže s nasazením nástroje pro vyrovnávání zatížení služby Azure API Management, zapište problém do problémů úložiště.

Ukázkový kód

Ukázky použité v tomto článku zahrnují:

Další krok