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


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 Szolgáltatás jogkivonatán és a modellkvóta korlátain 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.

A cikk szerint két különálló mintát kell üzembe helyeznie:

  • Csevegőalkalmazás:
    • Várja meg a csevegőalkalmazás üzembe helyezését a terheléselosztó-minta üzembe helyezéséig.
    • 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.
  • Terheléselosztó az Azure API Managementtel.

Feljegyzés

Ez a cikk egy vagy több AI-alkalmazássablont használ a példák és útmutatók 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 API Management 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 jeleníti meg, 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 terheléselosztásos megoldást az API Managementtel. Ez a megoldás zökkenőmentesen elérhetővé tesz egy végpontot az API Managementből a csevegőalkalmazás-kiszolgáló számára.

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

Az 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 működés és korlátozott. 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.

Diagram, amely egy normál forgatókönyvet mutat be három Azure OpenAI-végpontcsoporttal. A két végpont első csoportja sikeres forgalmat kap.

Ha egy erőforrást kvótakorlátok miatt szabályozni kell, az API-réteg azonnal megpróbálhat egy másik Azure OpenAI-erőforrást az eredeti csevegőalkalmazás-kérés teljesítésére.

diagram, amely egy szabályozási forgatókönyvet mutat be egy 429-es hibakóddal, valamint egy válaszfejlécet arra vonatkozóan, 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 konténert futtat a Visual Studio Code for the Web 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.

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ásd: GitHub Codespaces havi tárterület és alapóra tartalma.

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. 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. Ez a folyamat akár 30 percet is igénybe vehet.

A terheléselosztó végpontjának 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

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.

  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 Codespaces alkalmazásban Open in Dev ContainersMegnyitás a Fejlesztői konténerekben
    JavaScript Open in GitHub CodespacesMegnyitás a GitHub Codespaces alkalmazásban Open in Dev ContainersMegnyitás a Fejlesztői konténerekben
    Piton Open in GitHub CodespacesMegnyitás a GitHub Codespaces alkalmazásban Open in Dev ContainersMegnyitás a 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, nevezze el a chat-appnéven:

    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á ezt a környezeti változót, amely közli a csevegőalkalmazás háttérrendszerével az Azure OpenAI-kérés egyéni URL-címét:

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

    azd up
    

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 felszabadí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ásokat az Ön Azure-előfizetésére terheljük. 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.

A csevegőalkalmazás erőforrásainak törlése

Menjen vissza a csevegőalkalmazás cikkéhez az erőforrások megtisztítása érdekében.

A terheléselosztó erőforrásainak törlése

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 megsemmisítésre kerülnek. Az Azure OpenAI-jogkivonatokat percenként újra felhasználhatja.
  • : A törlés csendesen, felhasználói hozzájárulás nélkül történik.

Az erőforrások felszabadí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 biztosított tárhelyéről és alapóráiról talál.

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

  2. Keresse meg a azure-samples/openai-apim-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 GitHub Codespaces elem 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 API Management 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ések

  • Az Azure API Management diagnosztikai adatainak áttekintése az Azure Monitorban
  • Az Azure Load Testing használatával végezze el a csevegőalkalmazás terheléses tesztelését az Azure Load Testing szolgáltatással.