Megosztás a következőn keresztül:


Azure OpenAI skálázása JavaScript-csevegéshez RAG és Azure Container Apps használatával

Megtudhatja, hogyan vehet fel terheléselosztást az alkalmazáshoz, hogy a csevegőalkalmazás az Azure OpenAI Szolgáltatás jogkivonatán és a modellkvóta korlátain túl is kiterjeszthető legyen. Ez a megközelítés az Azure Container Apps használatával három Azure OpenAI-végpontot és egy elsődleges tárolót hoz létre, amelyek a bejövő forgalmat a három végpont egyikére irányítják.

A cikk szerint két ö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, módosítsa a környezeti változót úgy, hogy támogassa a terheléselosztó egyéni végpontját, és újból üzembe helyezze azt.

    • A csevegőalkalmazás az alábbi nyelveken érhető el:

      • .NET
      • JavaScript
      • Python
  • Terheléselosztó alkalmazás

Feljegyzés

Ez a cikk egy vagy több AI alkalmazássablont használ példái és útmutatásai alapjául. Az AI-alkalmazássablonok könnyen üzembe helyezhető, jól karbantartott referencia-implementációkat biztosítanak. Segítenek magas színvonalú kiindulópontot biztosítani az AI-alkalmazások számára.

Az Azure OpenAI és az Azure Container Apps terheléselosztásának architektúrája

Mivel az Azure OpenAI-erőforráshoz meghatározott jogkivonat- és modellkvótakorlátok tartoznak, az egyetlen Azure OpenAI-erőforrást használó csevegőalkalmazások e korlátok miatt hajlamosak a beszélgetési hibákra.

Diagram, amely a csevegőalkalmazás architektúráját mutatja ki az Azure OpenAI-erőforrás kiemelésével.

Ha úgy szeretné használni a csevegőalkalmazást, hogy nem éri el ezeket a korlátokat, használjon terheléselosztásos megoldást a Container Apps használatával. Ez a megoldás zökkenőmentesen elérhetővé tesz egy végpontot a Container Appsből a csevegőalkalmazás-kiszolgálónak.

diagram, amely három Azure OpenAI-erőforrás előtt mutatja be a csevegőalkalmazás architektúráját az Azure Container Appsszel.

A tároló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 korlátozott. 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 tárolóalkalmazáson és az alkalmazáskiszolgálón keresztül.

normál forgatókönyvet bemutató diagram. A normál forgatókönyv három Azure OpenAI-végpontcsoportot mutat be, és az első két végpontból álló csoport sikeres forgalmat kap.

Ha egy erőforrás korlátozott helyzetben van a kvótakorlátok miatt, a konténer alkalmazás azonnal megkísérelhet egy másik Azure OpenAI-erőforrást, hogy teljesítse az eredeti csevegőalkalmazás-kérést.

diagram, amely egy szabályozási forgatókönyvet mutat be egy 429-re vonatkozó sikertelen válaszkóddal, és egy válaszfejlécet arról, hogy az ügyfélnek hány másodpercig kell várnia az újrapróbálkozásra.

Előfeltételek

  • Egy Azure-előfizetés. Hozzon létre egyet ingyen

  • A fejlesztői tárolók mindkét mintához elérhetők, a cikk befejezéséhez szükséges összes függőséggel együtt. A fejlesztői tárolókat futtathatja a GitHub Codespacesben (böngészőben), vagy helyileg a Visual Studio Code használatával.

    • Kódterek (ajánlott)
    • Visual Studio Code
    • Egy GitHub-fiók.

A Container Apps terheléselosztó mintaalkalmazásának megnyitása

A GitHub Codespaces egy, a GitHub által felügyelt fejlesztői konténert futtat, a Visual Studio Code for the Web-et használva mint felhasználói felületet. 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.

Megnyitás a GitHub Codespacesben.

Fontos

Minden GitHub-fiók legfeljebb 60 órán át használhatja a GitHub Codespace-eket havonta két alapvető példánnyal. További információért látogasson el a(z) GitHub Codespaces havi tárhely- és óraszámkeretéhez.

Az Azure Container Apps terheléselosztójának üzembe helyezése

  1. Jelentkezzen be az Azure Developer CLI-be, hogy hitelesítést biztosítson a kiépítési és üzembe helyezési lépésekhez:

    azd auth login --use-device-code
    
  2. Állítson be egy környezeti változót az Azure CLI-hitelesítés használatára a kiépítés utáni lépéshez:

    azd config set auth.useAzCliAuth "true"
    
  3. A terheléselosztó alkalmazás üzembe helyezése:

    azd up
    

    Válasszon ki egy előfizetést és régiót az üzembe helyezéshez. Nem kell ugyanazzal az előfizetéssel és régióval rendelkezniük, mint a csevegőalkalmazásnak.

  4. A folytatás előtt várja meg, amíg az üzembe helyezés befejeződik.

Az üzembehelyezési végpont lekérése

  1. A tárolóalkalmazás üzembe helyezett végpontjának megjelenítéséhez használja az alábbi parancsot:

    azd env get-values
    
  2. Másolja ki a CONTAINER_APP_URL értéket. A következő szakaszban használod.

A csevegőalkalmazás ismételt üzembe helyezése a terheléselosztó végpontjával

Ezek a példák a csevegőalkalmazás mintáján fejeződnek be.

  • Kezdeti üzembe helyezés
  • Átcsoportosítás
  1. Nyissa meg a csevegőalkalmazás-minta fejlesztői tárolóját az alábbi lehetőségek egyikével.

    Nyelv GitHub Codespaces Visual Studio Code
    .NET Open in GitHub CodespacesMegnyitás a GitHub Codespacesben Open in Dev ContainersMegnyitás Fejlesztői Konténerekben
    JavaScript Open in GitHub CodespacesMegnyitás a GitHub Codespacesben Open in Dev ContainersMegnyitás Fejlesztői Konténerekben
    Python Open in GitHub CodespacesMegnyitás a GitHub Codespacesben Open in Dev ContainersMegnyitás Fejlesztői Konténerekben
  2. Jelentkezzen be az Azure Developer CLI-be (AZD):

    azd auth login
    

    Fejezze be a bejelentkezési utasításokat.

  3. Hozzon létre egy AZD környezetet például chat-appnévvel:

    azd env new <name>
    
  4. 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 Azure OpenAI-kérelmekhez:

    azd env set OPENAI_HOST azure_custom
    
  5. Adja hozzá a következő környezeti változót. Helyettesítse a <CONTAINER_APP_URL>-t az előző szakasz URL-címével. Ez a művelet megmutatja a csevegőalkalmazás háttérrendszerének, hogy mi az érték az Azure OpenAI-kérés egyéni URL-címében.

    azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>
    
  6. A csevegőalkalmazás üzembe helyezése:

    azd up
    

Használja a csevegőalkalmazást azzal a magabiztossággal, hogy a kvóta elfogyása nélkül skálázható több felhasználóra.

Naplók streamelése a terheléselosztó eredményeinek megtekintéséhez

  1. Az Azure portálon keressen rá az erőforráscsoportra.

  2. A csoport erőforrásainak listájában válassza ki az Azure Container Apps-erőforrást.

  3. A napló megtekintéséhez válassza a Figyelési>naplófolyam lehetőséget.

  4. A csevegőalkalmazással forgalmat generálhat a naplóban.

  5. 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, amely Proxying to https://openai3kezdődik, ahol 3 a harmadik Azure OpenAI-erőforrást jelöli.

    Képernyőkép az Azure Container Apps streamelési naplóiról két kiemelt naplósorsal a naplóbejegyzések bemutatásához.

Amikor a terheléselosztó olyan állapotot kap, hogy a kérelem túllépi a kvótát, a terheléselosztó automatikusan egy másik erőforrásra vált.

A TPM-kvóta konfigurálása

Alapértelmezés szerint a terheléselosztóban lévő Összes Azure OpenAI-példány 30 000 token/perc kapacitással (TPM) van üzembe helyezve. A csevegőalkalmazást azzal a magabiztossággal használhatja, hogy a kvóta elfogyása nélkül skálázható több felhasználóra. Módosítsa ezt az értéket a következő esetekben:

  • Az üzembehelyezési kapacitás hibáit tapasztalja: Csökkentse az értéket.
  • Nagyobb kapacitásra van szüksége: Növelje az értéket.
  1. Az érték módosításához használja a következő parancsot:

    azd env set OPENAI_CAPACITY 50
    
  2. A terheléselosztó ismételt üzembe helyezése:

    azd up
    

Az erőforrások tisztítása

Ha végzett a csevegőalkalmazással és a terheléselosztóval, törölje az erőforrásokat. A cikkben létrehozott Azure-erőforrások számlázása az Azure-előfizetésén keresztül történik. 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 az erőforrások törléséhez:

  • .NET
  • JavaScript
  • Python

A feltöltési kiegyensúlyozó erőforrásainak tisztítása

Törölje az Azure-erőforrásokat, és távolítsa el a forráskódot:

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, így percenként újra felhasználhatja az Azure OpenAI szolgáltatás jogkivonatait.
  • force: A törlés észrevétlenül, felhasználói hozzájárulás nélkül történik.

A GitHub Codespaces és a Visual Studio Code 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 havonta foglalt tárterületéről és alapóráiról a következő oldalon talál: GitHub Codespaces havi foglalt tárterület és alapórák.

  1. Lépjen be a GitHub Codespaces irányítópultra.

  2. Keresse meg az azure-samples/openai-aca-lb GitHub-adattárból származó jelenleg futó kódtereket.

    Képernyőkép az összes futó kódtérről, beleértve azok állapotát és sablonjait.

  3. Nyissa meg a kódtér helyi menüjét, majd válassza a Törléslehetőséget.

    Képernyőkép, amely egyetlen kódtér helyi menüjét jeleníti meg a Törlés lehetőség kiemelésével.

Segítség kérése

Ha nem sikerül üzembe helyeznie az Azure Container Apps terheléselosztót, vegye fel a problémát az adattár Problémák weblapjára.

Mintakód

A cikkben használt minták a következők:

Következő lépés

  • Az Azure Load Testing segítségével tesztelje a csevegőalkalmazás teljesítményét az Azure Terheléses Tesztelési szolgáltatással.