Sdílet prostřednictvím


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

Zjistěte, jak do aplikace přidat vyrovnávání zatížení na podnikové úrovni, abyste mohli chatovací aplikaci rozšířit nad rámec limitů tokenu služby 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í dvou samostatných vzorků:

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

Poznámka

Tento článek používá jednu nebo více šablon aplikací AI jako základ pro příklady a pokyny v článku. Šablony aplikací AI poskytují dobře udržované referenční implementace, které se dají snadno nasadit. Pomáhají zajistit vysoce kvalitní výchozí bod pro vaše aplikace AI.

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 tokenů a modelů, je chatovací aplikace, která používá 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ě API Management. Toto řešení bezproblémově zpřístupňuje jeden koncový bod ze služby API Management na váš chatovací aplikační server.

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

Prostředek API Management, jako vrstva rozhraní API, je umístěn před souborem 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ů, prostředek Azure OpenAI vrátí 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ář se třemi skupinami koncových bodů Azure OpenAI První skupina dvou koncových bodů získá úspěšný provoz.

Pokud je prostředek omezený kvůli limitům kvót, může vrstva API okamžitě zkusit jiný prostředek Azure OpenAI, aby splnila původní požadavek chatovací aplikace.

Diagram který ukazuje scénář omezování přenosu s chybovým kódem 429 a hlavičkou odpovědi, která udává, kolik sekund musí klient čekat před opětovným pokusem.

Požadavky

Otevřete ukázkovou aplikaci místního vyrovnávače zatížení v Azure API Management

GitHub Codespaces spouští vývojový kontejner spravovaný GitHubem s Visual Studio Code pro web jako uživatelské 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 GitHub Codespaces až na 60 hodin zdarma se dvěma základními instancemi. Další informace najdete v tématu GitHub Codespaces měsíčně zahrnutého úložiště a základních hodin.

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. Nasazení aplikace nástroje pro vyrovnávání zatížení:

    azd up
    

    Vyberte předplatné a oblast pro nasazení. Nemusí být stejné předplatné a oblast jako chatovací aplikace.

  4. Než budete pokračovat, počkejte na dokončení nasazení. Tento proces může trvat až 30 minut.

Získej koncový bod vyrovnávače 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

Znovu nasadit chatovací aplikaci s koncovým bodem vyrovnávače zatížení

Tyto příklady jsou dokončeny 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 GitHub Codespaces Visual Studio Code
    .NET Otevřít v GitHub Codespaces Otevřít v Dev Containerech
    JavaScript Otevřít v GitHub Codespaces Otevřít ve Vývojářských kontejnerech
    Python Otevřít v GitHub Codespaces Otevřít ve vývojářských kontejnerech
  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 Azure OpenAI používala vlastní adresu URL:

    azd env set OPENAI_HOST azure_custom
    
  5. Přidejte následující proměnnou prostředí, která informuje backend chatovací aplikace o hodnotě vlastní adresy URL pro požadavek Azure OpenAI:

    azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
    
  6. Nasazení chatovací aplikace:

    azd up
    

Nakonfigurujte kvótu TPM

Ve výchozím nastavení se každá instance Azure OpenAI v nástroji pro vyrovnávání zatížení nasadí s kapacitou 30 000 tokenů za minutu (TPM). Chatovací aplikaci můžete používat s jistotou, že je vytvořená tak, aby se dala škálovat pro mnoho uživatelů, aniž by se vyčerpala kvóta. Tuto hodnotu změňte v těchto případech:

  • Zobrazí se chyby kapacity nasazení: Snižte hodnotu.
  • Potřebujete vyšší kapacitu: Zvyšte 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
    

Uvolnit zdroje

Až dokončíte práci s chatovací aplikací a vyrovnávačem 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čistěte prostředky chatové aplikace

Vraťte se k článku o chatovací aplikaci, abyste tyto prostředky uklidili.

Vyčistěte prostředky vyrovnávače zátěže

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ě důkladně vymažou. Tokeny Azure OpenAI můžete opakovaně používat za minutu.
  • force: Odstranění probíhá bezobslužně bez nutnosti souhlasu uživatele.

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

Odstraněním prostředí GitHub Codespaces zajistíte, že můžete maximalizovat nárok na počet bezplatných hodin na 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 měsíčně zahrnované úložiště GitHub Codespaces a hodiny procesoru.

  1. Přihlaste se k řídicímu panelu GitHub Codespaces.

  2. Vyhledejte aktuálně spuštěné codespaces, které jsou zdrojové z úložiště azure-samples/openai-apim-lb GitHubu.

    snímek obrazovky, který zobrazuje všechny spuštěné prostory kódu včetně jejich stavu a šablon

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

    Snímek obrazovky, který zobrazuje místní nabídku pro jednotlivý codespace se zvýrazněnou možností Odstranit

Získání nápovědy

Pokud máte potíže s nasazením nástroje pro vyrovnávání zatížení služby Azure API Management, přidejte svůj problém na webovou stránku Problémy úložiště.

Ukázkový kód

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