Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přečtěte si, jak do aplikace přidat vyrovnávání zatížení, abyste rozšířili chatovací aplikaci nad rámec limitů tokenu služby Azure OpenAI a kvót modelu. Tento přístup používá Azure Container Apps k vytvoření tří koncových bodů Azure OpenAI a primárního kontejneru pro směrování příchozího provozu do jednoho ze tří koncových bodů.
Tento článek vyžaduje nasazení dvou ukázkových příkladů:
Chatovací aplikace
Pokud jste chatovací aplikaci ještě nenasadili, počkejte, až bude příklad vyrovnávacího zatížení nasazen.
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.
Chatovací aplikace je dostupná v těchto jazycích:
Aplikace vyrovnávače zatížení
Poznámka:
Tento článek používá jednu nebo více šablon AI aplikací jako základ pro příklady a pokyny v tomto č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 s využitím Azure Container Apps
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.
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ě Container Apps. Toto řešení bezproblémově zpřístupňuje jeden koncový bod z Container Apps na váš chatovací aplikační server.
Kontejnerová aplikace je umístěna před sadou prostředků Azure OpenAI. Kontejnerová aplikace řeší dva scénáře: normální a omezený režim. Během normálního scénáře, kdy je k dispozici kvóta tokenu a modelu, vrátí prostředek Azure OpenAI 200 zpět prostřednictvím aplikace kontejneru a aplikačního serveru.
Pokud je prostředek v omezeném scénáři kvůli omezením kvót, kontejnerová aplikace může okamžitě zkusit jiný prostředek Azure OpenAI, aby splnila původní požadavek chatovací aplikace.
Požadavky
Předplatné Azure. Vytvořte si ho zdarma
Vývojové kontejnery jsou k dispozici pro obě ukázky, se všemi závislostmi potřebnými k dokončení tohoto článku. Vývojové kontejnery můžete spouštět v GitHub Codespaces (v prohlížeči) nebo místně pomocí editoru Visual Studio Code.
- Codespaces (doporučeno)
- Visual Studio Code
- Účet GitHubu.
Otevření ukázkové aplikace nástroje pro vyrovnávání zatížení služby Container Apps
- GitHub Codespaces (doporučeno)
- Visual Studio Code
GitHub Codespaces spouští vývojový kontejner spravovaný GitHubem s Visual Studio Code for the Web jako uživatelským rozhraním. 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.
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 části GitHub Codespaces - zahrnuté úložiště a měsíční hodinový výkaz.
Nasazení nástroje pro vyrovnávání zatížení Azure Container Apps
Přihlaste se k Azure Developer CLI pro ověření kroků zřizování a nasazení.
azd auth login --use-device-code
Nastavte proměnnou prostředí pro použití ověřování Azure CLI ve fázi po dokončení zřízení.
azd config set auth.useAzCliAuth "true"
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.
Než budete pokračovat, počkejte na dokončení nasazení.
Získejte koncový bod nasazení
K zobrazení nasazeného koncového bodu pro aplikaci kontejneru použijte následující příkaz:
azd env get-values
Zkopírujte hodnotu
CONTAINER_APP_URL
. Použijete ho v další části.
Znovu nasadit chatovou aplikaci s koncovým bodem vyrovnávače zátěže
Tyto příklady jsou dokončeny v ukázce chatovací aplikace.
- Počáteční nasazení
- Přealokace
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 Containers
JavaScript Otevřít v GitHub Codespaces Otevřít v Dev Containers
Python Otevřít v GitHub Codespaces Otevřít v Dev Containers
Přihlaste se k Azure Developer CLI (
AZD
):azd auth login
Dokončete pokyny pro přihlášení.
Vytvořte prostředí
AZD
s názvem, napříkladchat-app
:azd env new <name>
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
Přidejte následující proměnnou prostředí. Nahraďte
<CONTAINER_APP_URL>
adresou URL z předchozí části. Tato akce oznámí backendu chatové aplikace, jaká hodnota je nastavena pro vlastní adresu URL požadavku Azure OpenAI.azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>
Nasazení chatovací aplikace:
azd up
Chatovací aplikaci používejte s jistotou, že se škáluje napříč mnoha uživateli bez vyčerpání kvóty.
Streamování protokolů pro zobrazení výsledků nástroje pro vyrovnávání zatížení
Na portálu Azure vyhledejte svou skupinu prostředků.
V seznamu prostředků ve skupině vyberte prostředek Azure Container Apps.
Vyberte Monitorování>tok protokolu pro zobrazení protokolu.
K vygenerování provozu v protokolu použijte chatovací aplikaci.
Vyhledejte protokoly, které se týkají prostředků Azure OpenAI. Každý ze tří prostředků má v komentáři protokolu svou číselnou identitu, která začíná
Proxying to https://openai3
, kde3
označuje třetí prostředek Azure OpenAI.
Když nástroj pro vyrovnávání zatížení obdrží stav, že požadavek překročí kvótu, nástroj pro vyrovnávání zatížení se automaticky otočí na jiný prostředek.
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 se škáluje napříč mnoha uživateli bez vyčerpání kvóty. Tuto hodnotu změňte v těchto případech:
- Zobrazí se chyby kapacity nasazení: Změňte hodnotu na nižší.
- Potřebujete vyšší kapacitu: Zvyšte hodnotu.
Ke změně hodnoty použijte následující příkaz:
azd env set OPENAI_CAPACITY 50
Znovu nasaďte nástroj pro vyrovnávání zatížení:
azd up
Vyčištění prostředků
Až dokončíte práci s chatovací aplikací a 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 o chatovací aplikaci a uvolněte zdroje.
Vyčištění prostředků nástroje pro vyrovnávání nahrávání
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, abyste mohli znovu použít tokeny služby Azure OpenAI za minutu. -
force
: Odstranění probíhá tiše, bez nutnosti souhlasu uživatele.
Vyčištění GitHub Codespaces a Visual Studio Code
- GitHub Codespaces
- Visual Studio Code
Odstraněním prostředí GitHub Codespaces zaručíte, že můžete co nejvíce využít množství bezplatných hodin na jádro, které máte k dispozici na svém účtu.
Důležité
Další informace o oprávněních vašeho účtu GitHub najdete v tématu měsíční zahrnutí úložiště a jádrových hodin v GitHub Codespaces.
Přihlaste se k řídicímu panelu GitHub Codespaces.
Vyhledejte aktuálně spuštěné codespaces, které pocházejí z úložiště azure-samples/openai-aca-lb na GitHubu.
Otevřete kontextovou nabídku pro prostor pro kód, a pak vyberte Odstranit.
Získání pomoci
Pokud máte potíže s nasazením nástroje pro vyrovnávání zatížení Azure Container Apps, 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í:
- Chatovací aplikace v JavaScriptu s RAG
- Load Balancer pro Azure Container Apps
Další krok
- K zátěžovým testům chatovací aplikace pomocí služby Azure Load Testing service použijte Azure Load Testing.
- Další informace o tom, jak se AZD používá v této šabloně: