Azure OpenAI for JavaScript-csevegés skálázása RAG használatával az Azure Container Apps használatával
Megtudhatja, hogyan adhat hozzá terheléselosztást az alkalmazáshoz, hogy a csevegőalkalmazás az Azure OpenAI-jogkivonaton és a modellkvótakorláton túl is kiterjeszthető legyen. Ez a megközelítés az Azure Container Apps használatával három Azure OpenAI-végpontot hoz létre, valamint egy elsődleges tárolót, amely a bejövő forgalmat a három végpont egyikére irányítja.
Ebben a cikkben 2 különálló mintát kell üzembe helyeznie:
Csevegőalkalmazás
Ha még nem telepítette a csevegőalkalmazást, várjon, amíg a terheléselosztó-minta üzembe lett helyezve.
Ha egyszer már üzembe helyezte a csevegőalkalmazást, a környezeti változót úgy fogja módosítani, hogy támogassa a terheléselosztó egyéni végpontját, és újból üzembe helyezi azt.
A csevegőalkalmazás az alábbi nyelveken érhető el:
Terheléselosztó alkalmazás
Az Azure OpenAI és az Azure Container Apps terheléselosztásának architektúrája
Mivel az Azure OpenAI-erőforrás meghatározott jogkivonat- és modellkvótakorlátokkal rendelkezik, az egyetlen Azure OpenAI-erőforrást használó csevegőalkalmazások e korlátok miatt hajlamosak a beszélgetési hibákra.
Ha úgy szeretné használni a csevegőalkalmazást, hogy nem éri el ezeket a korlátokat, használjon terheléselosztási megoldást az Azure Container Appsszel. Ez a megoldás zökkenőmentesen elérhetővé tesz egy végpontot az Azure Container Appsből a csevegőalkalmazás-kiszolgálónak.
Az Azure Container alkalmazás az Azure OpenAI-erőforrások egy készlete előtt helyezkedik el. A Tárolóalkalmazás két forgatókönyvet old meg: normál és szabályozott. Egy normál forgatókönyvben, ahol a jogkivonat és a modellkvóta elérhető, az Azure OpenAI-erőforrás egy 200-ás értéket ad vissza a Container App és az App Server segítségével.
Ha egy erőforrás szabályozott forgatókönyvben van, például a kvótakorlátok miatt, az Azure Container alkalmazás azonnal újrapróbálkozott egy másik Azure OpenAI-erőforrást az eredeti csevegőalkalmazás-kérés teljes körű teljesítéséhez.
Előfeltételek
Egy Azure-előfizetés. Hozzon létre egyet ingyen
A hozzáférést az Azure OpenAI a kívánt Azure-előfizetésen belül kapja meg.
Ezen szolgáltatáshoz jelenleg csak alkalmazás útján kapható hozzáférés. Az Azure OpenAI-hoz való hozzáférésre a következő https://aka.ms/oai/accessűrlap kitöltésével jelentkezhet: .
A fejlesztői tárolók mindkét mintához elérhetők, és a cikk elvégzéséhez minden függőség szükséges. A fejlesztői tárolókat futtathatja a GitHub Codespacesben (böngészőben), vagy helyileg a Visual Studio Code használatával.
- GitHub-fiók
Tárolóalkalmazások helyi kiegyensúlyozó mintaalkalmazásának megnyitása
A GitHub Codespaces egy, a GitHub által felügyelt fejlesztői tárolót futtat a Webes Visual Studio Code-tal felhasználói felületként. A legegyszerűbb fejlesztési környezethez használja a GitHub Codespacest, hogy a megfelelő fejlesztői eszközökkel és függőségekkel rendelkezzen a cikk elvégzéséhez.
Fontos
Minden GitHub-fiók legfeljebb 60 órán át használhatja a Codespace-eket havonta 2 magpéldánysal. További információ: GitHub Codespaces havonta tartalmazza a tárterületet és az alapórákat.
Az Azure Container Apps terheléselosztó üzembe helyezése
A terheléselosztó Azure-ban való üzembe helyezéséhez jelentkezzen be az Azure Developer CLI-be (AZD).
azd auth login
Fejezze be a bejelentkezési utasításokat.
Telepítse a terheléselosztó alkalmazást.
azd up
Ki kell választania egy előfizetést és régiót az üzembe helyezéshez. Ezeknek nem kell azonos előfizetésnek és régiónak lenniük, mint a csevegőalkalmazásnak.
Folytatás előtt várja meg, amíg az üzembe helyezési folyamat befejeződik.
Kérje le az URL-címet a végpont nevű üzembe helyezés végén. Ez a
CONTAINER_APP_URL
következő szakaszban használatos.
Csevegőalkalmazás ismételt üzembe helyezése terheléselosztó-végponttal
Ezek a csevegési alkalmazás mintáján fejeződnek be.
Nyissa meg a csevegőalkalmazás-minta fejlesztői tárolóját az alábbi lehetőségek egyikével.
Nyelv Kódterek Visual Studio Code .NET JavaScript Python Jelentkezzen be az Azure Developer CLI-be (AZD).
azd auth login
Fejezze be a bejelentkezési utasításokat.
Hozzon létre egy AZD-környezetet egy olyan névvel, mint a
chat-app
.azd env new <name>
Adja hozzá a következő környezeti változót, amely arra utasítja a csevegőalkalmazás háttérrendszerét, hogy egyéni URL-címet használjon az OpenAI-kérelmekhez.
azd env set OPENAI_HOST azure_custom
Adja hozzá a következő környezeti változót
<CONTAINER_APP_URL>
az előző szakasz URL-címének helyettesítésével. Ez a művelet megmutatja a csevegőalkalmazás háttérrendszerének, hogy milyen érték van az OpenAI-kérés egyéni URL-címében.azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>
Telepítse a csevegőalkalmazást.
azd up
Most már magabiztosan használhatja a csevegőalkalmazást, hogy számos felhasználó skálázására lett kialakítva anélkül, hogy elfogy a kvóta.
Naplók streamelése a terheléselosztó eredményeinek megtekintéséhez
Az Azure Portalon keressen rá az erőforráscsoportra.
A csoport erőforrásainak listájában válassza ki a Container App erőforrást.
Válassza a Figyelés –> Naplóstream lehetőséget a napló megtekintéséhez.
A csevegőalkalmazással forgalmat generálhat a naplóban.
Keresse meg az Azure OpenAI-erőforrásokra hivatkozó naplókat. A három erőforrás mindegyike numerikus identitással rendelkezik a napló megjegyzésében
Proxying to https://openai3
, amely3
a harmadik Azure OpenAI-erőforrást jelzi.A csevegőalkalmazás használatakor, amikor a terheléselosztó állapotba kerül, hogy a kérés túllépte a kvótát, a terheléselosztó automatikusan egy másik erőforrásra vált.
A jogkivonatok percenkénti kvótájának (TPM) konfigurálása
Alapértelmezés szerint a terheléselosztóban lévő OpenAI-példányok mindegyike 30 000 TPM -kapacitással (jogkivonatok percenként) lesznek üzembe helyezve. A csevegőalkalmazást azzal a magabiztossággal használhatja, hogy számos felhasználóra kiterjedő skálázásra készült anélkül, hogy elfogy a kvóta. Módosítsa ezt az értéket a következő esetekben:
- Az üzembehelyezési kapacitás hibáit tapasztalja: csökkentse ezt az értéket.
- Nagyobb kapacitás tervezése, az érték növelése.
Az érték módosításához használja az alábbi parancsot.
azd env set OPENAI_CAPACITY 50
Helyezze újra üzembe a terheléselosztót.
azd up
Az erőforrások eltávolítása
Ha végzett a csevegőalkalmazással és a terheléselosztóval is, törölje az erőforrásokat. A cikkben létrehozott Azure-erőforrások számlázása az Azure-előfizetésbe kerül. Ha a jövőben nem lesz szüksége ezekre az erőforrásokra, törölje őket, hogy elkerülje a további költségek felmerülését.
Csevegőalkalmazás-erőforrások eltávolítása
Térjen vissza a csevegőalkalmazás cikkéhez, hogy megtisztítsa ezeket az erőforrásokat.
A feltöltési kiegyensúlyozó erőforrásainak tisztítása
Futtassa a következő Azure Developer CLI-parancsot az Azure-erőforrások törléséhez és a forráskód eltávolításához:
azd down --purge --force
A kapcsolók a következőt biztosítják:
purge
: A törölt erőforrások azonnal törlődnek. Ez lehetővé teszi az Azure OpenAI TPM újrafelhasználását.force
: A törlés csendesen, felhasználói hozzájárulás nélkül történik.
GitHub-kódterek eltávolítása
A GitHub Codespaces-környezet törlése biztosítja, hogy maximálisan kihasználható legyen a fiókhoz tartozó ingyenes óránkénti jogosultság.
Fontos
A GitHub-fiók jogosultságairól további információt a GitHub Codespaces havi tartalmazza a tárterületet és az alapórákat.
Jelentkezzen be a GitHub Codespaces irányítópultjára (https://github.com/codespaces).
Keresse meg a Jelenleg futó, a
azure-samples/openai-aca-lb
GitHub-adattárból származó kódtereket.Nyissa meg a kódtér helyi menüjét, majd válassza a Törlés lehetőséget.
Segítség kérése
Ha nem sikerül üzembe helyeznie az Azure API Management terheléselosztót, naplózza a problémát az adattár problémái között.
Mintakód
A cikkben használt minták a következők:
Következő lépés
- Az Azure Load Testing használata a csevegőalkalmazás teszteléséhez
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: