Share via


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.

Ábra a csevegőalkalmazás architektúrájáról, kiemelt Azure OpenAI-erőforrással.

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.

Ábra a csevegőalkalmazás architektúrájáról az Azure API Managementtel három Azure OpenAI-erőforrás előtt.

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.

Normál forgatókönyvet megjelenítő 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á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.

Egy szabályozási forgatókönyvet ábrázoló diagram egy 429 sikertelen válaszkóddal és egy válaszfejléccel, amely azt mutatja, hogy az ügyfélnek hány másodpercig kell várnia az újrapróbálkozásra.

Előfeltételek

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.

A projekt megnyitása a GitHub Codespacesben

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

  1. A terheléselosztó Azure-ban való üzembe helyezéséhez jelentkezzen be az Azure Developer CLI-be (AZD).

    azd auth login
    
  2. Fejezze be a bejelentkezési utasításokat.

  3. 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.

  4. 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.

  1. 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 Megnyitás a GitHub Codespacesben Megnyitás Fejlesztői tárolókban
    JavaScript Megnyitás a GitHub Codespacesben Megnyitás Fejlesztői tárolókban
    Python Megnyitás a GitHub Codespacesben Megnyitás Fejlesztői tárolókban
  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 egy olyan névvel, mint a chat-app.

    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 OpenAI-kérelmekhez.

    azd env set OPENAI_HOST azure_custom
    
  5. 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>
    
  6. 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.
  1. Az érték módosításához használja az alábbi parancsot.

    azd env set OPENAI_CAPACITY 50
    
  2. 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.

  1. Jelentkezzen be a GitHub Codespaces irányítópultjára (https://github.com/codespaces).

  2. Keresse meg a Jelenleg futó, a azure-samples/openai-apim-lb GitHub-adattárból származó kódtereket.

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

  3. Nyissa meg a Codespaces elem helyi menüjét, majd válassza a Törlés lehetőséget.

    Képernyőkép egyetlen kódtér helyi menüjéről a törlési lehetőség kiemelésével.

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