Škálování chatu Azure OpenAI pro Javu s využitím RAG s Azure Container Apps
Zjistěte, jak do aplikace přidat vyrovnávání zatížení, abyste mohli chatovací aplikaci rozšířit nad rámec limitů kvóty modelu a tokenu Azure OpenAI. 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 samostatných ukázek:
Chatovací aplikace
Pokud jste chatovací aplikaci ještě nenasadili, počkejte, až bude nasazen ukázkový příklad vyrovnávače zátěže.
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.
Chatovací aplikace dostupná v těchto jazycích:
- .NET
- JavaScriptu
- Python
Aplikace pro vyrovnávání zatížení
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é a snadno použitelné referenční implementace, které 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 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.
Pokud chcete chatovací aplikaci používat bez dosažení těchto limitů, použijte řešení s vyrovnáváním zatížení se službou Azure Container Apps. Toto řešení bezproblémově zpřístupňuje jeden koncový bod z Azure Container Apps na váš chatovací aplikační server.
Aplikace Azure Container se nachází před sadou prostředků Azure OpenAI. Aplikace Container řeší dva scénáře: běžné a omezené. Během normálního scénáře, kde je k dispozici kvóta tokenu a modelu, vrátí prostředek Azure OpenAI 200 zpět prostřednictvím container App a App Serveru.
Pokud je prostředek v omezené situaci, například kvůli limitům kvót, může aplikace Kontejner Azure zkusit znovu jiný prostředek Azure OpenAI, aby splnila původní požadavek chatovací aplikace.
Požadavky
Předplatné Azure. Vytvořit zdarma
Přístup udělený službě Azure OpenAI v požadovaném předplatném Azure
V současné době je přístup k této službě udělen pouze aplikací. Pokud chcete získat přístup k Azure OpenAI, vyplňte formulář na https://aka.ms/oai/access.
dev containers 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.
- Účet GitHub
Ukázková aplikace pro místní vyrovnávání zátěže v aplikacích Open Container
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.
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 naleznete v GitHub Codespaces v měsíčně zahrnutém úložišti a hodinách jádra.
Nasazení nástroje pro vyrovnávání zatížení Azure Container Apps
Přihlaste se k Azure Developer CLI, abyste zajistili ověřování pro kroky 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 zřízení.
azd config set auth.useAzCliAuth "true"
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.
Než budete pokračovat, počkejte na dokončení nasazení.
Získání koncového bodu nasazení
K zobrazení nasazeného koncového bodu pro aplikaci Kontejner Azure použijte následující příkaz.
azd env get-values
Zkopírujte hodnotu
CONTAINER_APP_URL
. Použijete ho v další části.
Opětovné nasazení chatovací aplikace s koncovým bodem nástroje pro vyrovnávání zatížení
Tyto jsou dokončeny na ukázce aplikace pro chat.
Otevřete ukázkový vývojový kontejner chatovací aplikace pomocí jedné z následujících možností.
Jazyk Codespaces Visual Studio Code .NET JavaScript Python Přihlaste se k Azure Developer CLI (AZD).
azd auth login
Dokončete instrukce k přihlášení.
Vytvořte prostředí AZD s názvem, například
chat-app
.azd env new <name>
Přidejte následující proměnnou prostředí, která instruuje backend chatovací aplikace, aby pro požadavky OpenAI používal vlastní adresu URL.
azd env set OPENAI_HOST azure_custom
Přidejte následující proměnnou prostředí, která nahrazuje
<CONTAINER_APP_URL>
adresy URL z předchozí části. Tato akce řekne back-endu chatovací aplikace, jaká je hodnota vlastní adresy URL požadavku OpenAI.azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>
Nasaďte chatovací aplikaci.
azd up
Chatovací aplikaci teď můžete používat s jistotou, že je vytvořená tak, aby byla škálovatelná pro velký počet uživatelů bez vyčerpání kvóty.
Streamování protokolů pro zobrazení výsledků nástroje pro vyrovnávání zatížení
Na webu Azure Portalvyhledejte skupinu prostředků.
V seznamu prostředků ve skupině vyberte prostředek Kontejnerová aplikace.
Vyberte Monitorování –> protokolový stream pro zobrazení protokolu.
K vygenerování provozu v protokolu použijte chatovací aplikaci.
Vyhledejte protokoly související s prostředky Azure OpenAI. Každý ze tří prostředků má v komentáři protokolu svou číselnou identitu začínající
Proxying to https://openai3
, kde3
označuje třetí prostředek Azure OpenAI.Když při používání chatovací aplikace obdrží nástroj pro vyrovnávání zatížení stav, že žádost překročila kvótu, nástroj pro vyrovnávání zatížení se automaticky otočí do jiného prostředku.
Konfigurujte 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 škálovala pro mnoho uživatelů bez vyčerpání kvót. Tuto hodnotu změňte v těchto případech:
- Zobrazí se chyby kapacity nasazení: Snižte hodnotu.
- 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ž 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 k článku o chatovací aplikaci, abyste tyto prostředky uvolnili.
- .NET
- JavaScriptu
- Python
Vyčištění prostředků nástroje pro vyrovnávání nahrávání
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 počet hodin zdarma na jádro, které máte k dispozici 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ě zahrnované úložiště a základní hodiny.
Přihlaste se k řídicímu panelu Codespaces GitHubu (https://github.com/codespaces).
Vyhledejte své aktuálně spuštěné Codespaces ze zdrojového úložiště
azure-samples/openai-aca-lb
na GitHubu.Otevřete místní nabídku pro codespace a pak vyberte 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, zapište svůj problém do sekce problémy v úložišti.
Ukázkový kód
Ukázky použité v tomto článku zahrnují:
Další krok
- Použijte Azure Load Testing pro zátěžové testování vaší chatovací aplikace