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

A azure-openai-token-limit szabályzat megakadályozza, hogy az Azure OpenAI Service API-használat kulcsonkénti kiugróan magas legyen, mert a nyelvi modell jogkivonatainak használatát percenként meghatározott számúra korlátozza. Ha túllépi a jogkivonat használatát, a hívó válaszállapot-kódot 429 Too Many Requests kap.

Az OpenAI-végponttól visszaadott tokenhasználati metrikákra támaszkodva a szabályzat valós időben pontosan monitorozza és érvényesíti a korlátokat. A szabályzat lehetővé teszi a parancssori jogkivonatok API Management általi előzetes számítását is, minimalizálva az OpenAI-háttérrendszer felé irányuló szükségtelen kéréseket, ha a korlátot már túllépte.

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-szolgáltatásmodellek

A szabályzatot az API Managementhez hozzáadott API-k használják az Azure OpenAI szolgáltatásból a következő típusok közül:

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

gpt-4
Teljesítés gpt-3.5-turbo-instruct
Beágyazások text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002

További információért lásd: Azure OpenAI szolgáltatási modellek.

Szabályzatutasítás

<azure-openai-token-limit counter-key="key value"
        tokens-per-minute="number"
        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-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. Igen 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.
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 érték túllépése után. A szabályzatkifejezések nem engedélyezettek. Nem Retry-After
újrapróbálkozó változó utáni név Annak a változónak a neve, amely a megadott tokens-per-minute időtartam túllépése 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.
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őintervallumban engedélyezett fennmaradó jogkivonatok száma. A szabályzatkifejezések nem engedélyezettek. Nem N.A.
remaining-tokens-variable-name Egy változó neve, amely minden szabályzat végrehajtása után tárolja az időintervallumban engedélyezett fennmaradó jogkivonatok számát. 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 szabályzat szabályzatdefiníciónként többször is használható.
  • Ez a szabályzat opcionálisan konfigurálható, ha api-t ad hozzá az Azure OpenAI szolgáltatásból a portál használatával.
  • 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.
  • 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.

Példa

Az alábbi példában az 5000/perc jogkivonat-korlá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>

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