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


Az Azure OpenAI API-jogkivonat használatának korlátozása

A KÖVETKEZŐKRE VONATKOZIK: Fejlesztő | Alapszintű | Alapszintű v2 | Standard | Standard v2 | Prémium | Prémium v2

A azure-openai-token-limit szabályzat megakadályozza, hogy az Azure OpenAI in Foundry Models API-kihasználtsága kulcsonként megnőjön, ha a nyelvi modell jogkivonatainak használatát egy megadott sebességre (percenkénti számra), egy adott időszakra vagy mindkettőre korlátozza. Ha túllép egy megadott jogkivonat-sebességkorlátot, a hívó válaszállapot-kódot 429 Too Many Requests kap. Ha túllép egy megadott kvótát, a hívó válaszállapot-kódot 403 Forbidden kap.

Az Azure OpenAI végpontból visszahozott token használati mutatókra támaszkodva a szabályzat a tényleges token fogyasztás alapján figyeli és érvényesíti a korlátokat. A szabályzat lehetővé teszi továbbá a prompt tokenek előzetes becslését az API Management által, minimalizálva az Azure OpenAI háttérrendszeréhez szükséges felesleges kéréseket, ha a határ már túllépett. Azonban mivel a tényleges tokenek fogyasztása mind a prompt méretétől, mind a befejezés méretétől függ (ami kérésenként változik), a politika nem tudja előre előre megjósolni a teljes token fogyasztást. Ez a kialakítás lehetővé teheti, hogy ideiglenesen átlépjék a token korlátokat, ha egyszerre több kérést dolgoznak fel.

Feljegyzés

Állítsa be a szabályzat elemeit és gyermekelemeit a szabályzatutasításban megadott sorrendben. További információ az API Management-szabályzatok beállításáról és szerkesztéséről.

Támogatott Azure OpenAI az Azure AI Foundry-modellekben

A szabályzatot az API Managementhez hozzáadott API-k használják az Azure OpenAI-ból az AI Foundry-modellekben az alábbi típusok esetében:

API-típus Támogatott modellek
Csevegés befejezése gpt-3.5

gpt-4

gpt-4o

gpt-4o-mini

o1

o3
Beágyazások text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002
Válaszok (előzetes verzió) gpt-4o(Verziók: 2024-11-20, 2024-08-06) 2024-05-13

gpt-4o-mini (Verzió: 2024-07-18)

gpt-4.1 (Verzió: 2025-04-14)

gpt-4.1-nano (Verzió: 2025-04-14)

gpt-4.1-mini (Verzió: 2025-04-14)

gpt-image-1 (Verzió: 2025-04-15)

o3 (Verzió: 2025-04-16)

o4-mini (Verzió: '2025-04-16)

Feljegyzés

A hagyományos befejező API-k csak régi modellverziókkal érhetők el, és a támogatás korlátozott.

A modellekről és képességeikről az Azure OpenAI in Foundry Models című témakörben tájékozódhat.

Szabályzatutasítás

<azure-openai-token-limit counter-key="key value"
        tokens-per-minute="number"
        token-quota="number"
        token-quota-period="Hourly | Daily | Weekly | Monthly | Yearly"
        estimate-prompt-tokens="true | false"    
        retry-after-header-name="custom header name, replaces default 'Retry-After'" 
        retry-after-variable-name="policy expression variable name"
        remaining-quota-tokens-header-name="header name"  
        remaining-quota-tokens-variable-name="policy expression variable name"
        remaining-tokens-header-name="header name"  
        remaining-tokens-variable-name="policy expression variable name"
        tokens-consumed-header-name="header name"
        tokens-consumed-variable-name="policy expression variable name" />

Attribútumok

Attribútum Leírás Kötelező Alapértelmezett
számlálókulcs A jogkivonatkorlát-szabályzathoz használandó kulcs. Minden kulcsértékhez egyetlen számlálót használ a rendszer minden olyan hatókörhöz, amelyen a szabályzat konfigurálva van. A szabályzatkifejezések engedélyezettek. Igen n/a
tokenek percenként A kérés és a befejezés által percenként felhasznált jogkivonatok maximális száma. Vagy egy sebességkorlátot (tokens-per-minute), egy kvótát (token-quota több mint egy token-quota-period), vagy mindkettőt meg kell adni. n/a
jogkivonatkvóta A jogkivonatok maximális száma a megadott időintervallumban token-quota-period. A szabályzatkifejezések nem engedélyezettek. Vagy egy sebességkorlátot (tokens-per-minute), egy kvótát (token-quota több mint egy token-quota-period), vagy mindkettőt meg kell adni. n/a
token-quota-period Annak a rögzített ablaknak a hossza, amely után a token-quota rendszer alaphelyzetbe áll. Az értéknek a következők egyikének kell lennie: Hourly,Daily, Weekly, Monthly, . Yearly A kvótaidőszak kezdő időpontját az adott időszakra használt egységre (óra, nap stb.) csonkolt UTC időbélyeg alapján számítjuk ki. Vagy egy sebességkorlátot (tokens-per-minute), egy kvótát (token-quota több mint egy token-quota-period), vagy mindkettőt meg kell adni. n/a
estimate-prompt-tokens Logikai érték, amely meghatározza, hogy meg kell-e becsülni a parancssorhoz szükséges jogkivonatok számát:
- true: becsülje meg a jogkivonatok számát az API parancssori sémája alapján; csökkentheti a teljesítményt.
- false: ne becsülje meg a parancssori jogkivonatokat.

Ha be van falseállítva, a rendszer a modell válaszából származó tényleges jogkivonat-használat alapján számítja ki a fennmaradó jogkivonatokat counter-key . Ez azt eredményezheti, hogy a rendszer a jogkivonat-korlátot túllépő kéréseket küld a modellnek. Ebben az esetben ezt a válaszban észlelik, és minden további kérést a politika blokkol, amíg a token limit vissza nem áll.
Igen n/a
újrapróbálkozás a fejléc után Annak az egyéni válaszfejlécnek a neve, amelynek értéke az ajánlott újrapróbálkozási időköz másodpercben a megadott tokens-per-minute vagy token-quota túllépett érték után. A szabályzatkifejezések nem engedélyezettek. Nem Retry-After
újrapróbálkozó változó utáni név Egy változó neve, amely a megadott tokens-per-minute vagy token-quota túllépés után másodpercekben tárolja az ajánlott újrapróbálkozási időközt. A szabályzatkifejezések nem engedélyezettek. Nem n/a
fennmaradó kvóta-jogkivonatok-fejlécnév Annak a válaszfejlécnek a neve, amelynek értéke az egyes szabályzatok végrehajtása után az engedélyezett token-quotajogkivonatok token-quota-period becsült száma. A szabályzatkifejezések nem engedélyezettek. Nem n/a
fennmaradó kvóta-jogkivonatok-változó neve Annak a változónak a neve, amely minden szabályzat végrehajtása után tárolja az engedélyezettnek token-quotamegfelelő token-quota-period fennmaradó jogkivonatok becsült számát. A szabályzatkifejezések nem engedélyezettek. Nem n/a
remaining-tokens-header-name Annak a válaszfejlécnek a neve, amelynek értéke az egyes szabályzatok végrehajtása után az időintervallum számára tokens-per-minute engedélyezett fennmaradó jogkivonatok száma. A szabályzatkifejezések nem engedélyezettek. Nem n/a
remaining-tokens-variable-name Annak a változónak a neve, amely minden szabályzat végrehajtása után az időintervallumban tokens-per-minute engedélyezettnek megfelelő fennmaradó jogkivonatok számát tárolja. A szabályzatkifejezések nem engedélyezettek. Nem n/a
tokens-consumed-header-name Egy válaszfejléc neve, amelynek értéke a parancssor és a befejezés által felhasznált jogkivonatok száma. A fejléc csak akkor lesz hozzáadva a válaszhoz, ha a válasz a háttérrendszertől érkezik. A szabályzatkifejezések nem engedélyezettek. Nem n/a
tokens-consumed-variable-name Egy változó neve, amely inicializálva van a folyamat parancssori backend szakaszában található tokenek becsült számához, ha estimate-prompt-tokens az nem, true és egyébként nulla. A változó a megadott számmal frissül, amikor megkapja a választ a outbound szakaszban. Nem n/a

Használat

Használati megjegyzések

  • Ez a politika többször is használható egy szabályzat definíció szerint
  • Ez a szabályzat opcionálisan konfigurálható Azure OpenAI API hozzáadásakor a portál segítségével.
  • Ha a estimate-prompt-tokens beállítás falseértéke elérhető, a rendszer az Azure OpenAI API válaszának használati szakaszában szereplő értékeket használja a jogkivonatok használatának meghatározásához.
  • Ha több kérést egyszerre vagy kisebb késéssel küldenek, a politika lehetővé teheti a token fogyasztását, amely meghaladja a beállított határt. Ez azért történik, mert a politika nem tudja pontosan meghatározni, hány tokent fogyasztanak el, amíg a háttérrendszerről nem érkezik válaszok. Miután a válaszokat feldolgozták és a token korlátokat átlépték, a további kéréseket blokkolják, amíg a limit visszaáll.
  • Egyes Azure OpenAI-végpontok támogatják a válaszok streamelésének támogatását. Ha stream az API-kérésben a streamelés engedélyezésére van beállítva true , a rendszer mindig megbecsüli a parancssori jogkivonatokat, függetlenül az estimate-prompt-tokens attribútum értékétől. A befejezési jogkivonatokat a válaszok streamelésekor is megbecsüljük.
  • Az érték remaining-quota-tokens-variable-name tájékoztató jellegű becslés, remaining-quota-tokens-header-name de a tényleges jogkivonat-használat alapján a vártnál nagyobb lehet. Az érték pontosabb a kvóta közeledtével.
  • A képbemenetet elfogadó modellek esetében a rendszerkép-jogkivonatokat általában a háttérnyelvi modell számolja, és a korlát- és kvótaszámítások tartalmazzák. A streamelés használatakor vagy estimate-prompt-tokens beállításakor trueazonban a szabályzat jelenleg az egyes képeket 1200 jogkivonat maximális számaként számolja felül.
  • Az API Management egyetlen számlálót használ a szabályzatban megadott összes counter-key értékhez. A számláló minden olyan hatókörben frissül, ahol a szabályzat ezzel a kulcsértékkel van konfigurálva. Ha külön számlálókat szeretne konfigurálni különböző hatókörökben (például egy adott API-n vagy terméken), adjon meg különböző kulcsértékeket a különböző hatókörökben. Hozzáfűzhet például egy sztringet, amely azonosítja a hatókört egy kifejezés értékéhez.
  • A v2 szintek token bucket algoritmust használnak a sebességkorlátozáshoz, amely eltér a klasszikus szintek csúszóablak algoritmusától. Ennek a megvalósítási különbségnek a következtében, amikor a token korlátokat több területen is konfigurálod ugyanazzal a területtel counter-key, győződj meg róla, hogy az tokens-per-minute érték minden szabályzat esetén következetes legyen. Az ellentmondásos értékek kiszámíthatatlan viselkedést okozhatnak.
  • Ez a szabályzat egymástól függetlenül követi nyomon a tokenhasználatot az egyes átjárókon, ahol alkalmazva van, beleértve a munkaterületi átjárókat és a regionális átjárókat egy többrégiós üzemelő példányban. Nem összesíti a jogkivonatok számát a teljes példányon.

Példák

Jogkivonat sebességkorlátja

Az alábbi példában az 5000/perc jogkivonat-sebességkorlátot a hívó IP-címe határozza meg. A szabályzat nem becsüli meg a parancssorhoz szükséges jogkivonatok számát. Az egyes szabályzatok végrehajtása után az adott hívó IP-címéhez engedélyezett fennmaradó jogkivonatok az adott időszakban a változóban remainingTokenslesznek tárolva.

<policies>
    <inbound>
        <base />
        <azure-openai-token-limit
            counter-key="@(context.Request.IpAddress)"
            tokens-per-minute="5000" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Jogkivonatkvóta

Az alábbi példában az 10000 tokenkvótát az előfizetés azonosítója határozza meg, és havonta alaphelyzetbe állítja. Az egyes szabályzatok végrehajtása után az adott előfizetés-azonosítóhoz engedélyezett fennmaradó jogkivonatok száma az adott időszakban a változóban remainingQuotaTokenslesz tárolva.

<policies>
    <inbound>
        <base />
        <azure-openai-token-limit
            counter-key="@(context.Subscription.Id)"
            token-quota="100000" token-quota-period="Monthly" remaining-quota-tokens-variable-name="remainingQuotaTokens" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

A szabályzatok használatával kapcsolatos további információkért lásd: