Az Azure OpenAI for JavaScript méretezése az Azure API Management használatával
Megtudhatja, hogyan adhat hozzá nagyvállalati szintű 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 API Management használatával intelligensen irányítja a forgalmat három Azure OpenAI-erőforrás között.
Ebben a cikkben két 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.
Terheléselosztó az Azure API Managementtel
Feljegyzés
Ez a cikk egy vagy több AI-alkalmazássablont használ a cikkben szereplő példák és útmutatók alapjául. Az AI-alkalmazássablonok jól karbantartott, könnyen üzembe helyezhető referencia-implementációkat biztosítanak, amelyek segítenek magas színvonalú kiindulópontot biztosítani az AI-alkalmazások számára.
Az Azure OpenAI és az Azure API Management 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 egy elosztott terhelésű megoldást az Azure API Managementtel. Ez a megoldás zökkenőmentesen elérhetővé tesz egy végpontot az Azure API Managementből a csevegőalkalmazás-kiszolgáló számára.
Az Azure API Management-erőforrás API-rétegként az Azure OpenAI-erőforrások egy készlete előtt helyezkedik el. Az API-réteg két forgatókönyvre vonatkozik: normál és szabályozott. Egy olyan normál forgatókönyvben, amelyben a jogkivonat és a modellkvóta elérhető, az Azure OpenAI-erőforrás egy 200-ás értéket ad vissza az API-rétegen és a háttéralkalmazás-kiszolgálón keresztül.
Ha egy erőforrást kvótakorlátok miatt szabályoznak, az API-réteg azonnal újrapróbálkozott egy másik Azure OpenAI-erőforrással az eredeti csevegőalkalmazás-kérés 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.
Az Azure API Management 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 API Management 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. Ez akár 30 percet is igénybe vehet.
Terheléselosztó végpont lekérése
Futtassa a következő bash-parancsot az üzembe helyezés környezeti változóinak megtekintéséhez. Később szüksége lesz ezekre az információkra.
azd env get-values | grep APIM_GATEWAY_URL
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, amely közli a csevegőalkalmazás háttérrendszerével, hogy milyen érték van az OpenAI-kérés egyéni URL-címében.
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
Telepítse a csevegőalkalmazást.
azd up
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.
Terheléselosztó 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-apim-lb
GitHub-adattárból származó kódtereket.Nyissa meg a Codespaces elem 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 API Management diagnosztikai adatainak megtekintése az Azure Monitorban
- Az Azure Load Testing használata a csevegőalkalmazás teszteléséhez