Dela via


Begränsa användningen av API-token för stora språkmodeller

GÄLLER FÖR: Utvecklare | Grundläggande | Basic v2 | Standard | Standard v2 | Premie

Principen llm-token-limit förhindrar att api-användningstoppar för stora språkmodeller (LLM) per nyckel begränsas genom att förbrukningen av LLM-token begränsas till ett angivet tal per minut. När tokenanvändningen har överskridits får anroparen en 429 Too Many Requests svarsstatuskod.

Genom att förlita sig på tokenanvändningsmått som returneras från LLM-slutpunkten kan principen övervaka och tillämpa gränser i realtid korrekt. Principen möjliggör också förberäkning av prompttoken från API Management, vilket minimerar onödiga begäranden till LLM-serverdelen om gränsen redan har överskridits.

Kommentar

För närvarande finns den här principen i förhandsversion.

Kommentar

Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.

Modeller som stöds

Använd principen med LLM-API:er som lagts till i Azure API Management som är tillgängliga via Azure AI Model Inference API.

Principuttryck

<llm-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" />

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
counter-key Nyckeln som ska användas för tokengränsprincipen. För varje nyckelvärde används en enskild räknare för alla omfång där principen har konfigurerats. Principuttryck tillåts. Ja Ej tillämpligt
tokens per minut Det maximala antalet token som förbrukas av prompt och slutförande per minut. Ja Ej tillämpligt
estimate-prompt-tokens Booleskt värde som avgör om du vill uppskatta antalet token som krävs för en fråga:
- true: beräkna antalet token baserat på promptschemat i API; kan minska prestandan.
- false: beräkna inte prompttoken.

När de är inställda falsepå beräknas de återstående token per counter-key med den faktiska tokenanvändningen från modellens svar. Detta kan leda till att prompter skickas till modellen som överskrider tokengränsen. I sådana fall identifieras detta i svaret och alla efterföljande begäranden blockeras av principen tills tokengränsen frigörs igen.
Ja Ej tillämpligt
retry-after-header-name Namnet på ett anpassat svarshuvud vars värde är det rekommenderade återförsöksintervallet i sekunder efter att angivet tokens-per-minute har överskridits. Principuttryck tillåts inte. Nej Retry-After
retry-after-variable-name Namnet på en variabel som lagrar det rekommenderade återförsöksintervallet i sekunder efter att den angivna tokens-per-minute har överskridits. Principuttryck tillåts inte. Nej Ej tillämpligt
remaining-tokens-header-name Namnet på en svarsrubrik vars värde efter varje principkörning är antalet återstående token som tillåts för tidsintervallet. Principuttryck tillåts inte. Nej Ej tillämpligt
remaining-tokens-variable-name Namnet på en variabel som efter varje principkörning lagrar antalet återstående token som tillåts för tidsintervallet. Principuttryck tillåts inte. Nej Ej tillämpligt
tokens-consumed-header-name Namnet på en svarsrubrik vars värde är antalet token som förbrukas av både prompt och slutförande. Huvudet läggs till i svaret först när svaret har tagits emot från serverdelen. Principuttryck tillåts inte. Nej Ej tillämpligt
tokens-consumed-variable-name Namnet på en variabel som initierats till det uppskattade antalet token i prompten i backend avsnittet av pipelinen om estimate-prompt-tokens är true och noll annars. Variabeln uppdateras med det rapporterade antalet när svaret tas emot i outbound avsnittet. Nej Ej tillämpligt

Användning

Användningsanteckningar

  • Den här principen kan användas flera gånger per principdefinition.
  • Om tillgängligt när estimate-prompt-tokens är inställt på falseanvänds värden i användningsavsnittet i svaret från LLM-API:et för att fastställa tokenanvändning.
  • Vissa LLM-slutpunkter stöder strömning av svar. När stream anges till true i API-begäran för att aktivera strömning beräknas alltid prompttoken, oavsett värdet för estimate-prompt-tokens attributet.
  • API Management använder en enskild räknare för varje counter-key värde som du anger i principen. Räknaren uppdateras i alla omfång där principen har konfigurerats med det nyckelvärdet. Om du vill konfigurera separata räknare i olika omfång (till exempel ett specifikt API eller en specifik produkt) anger du olika nyckelvärden i de olika omfången. Du kan till exempel lägga till en sträng som identifierar omfånget till värdet för ett uttryck.

Exempel

I följande exempel styrs tokengränsen på 5 000 per minut av anroparens IP-adress. Principen uppskattar inte antalet token som krävs för en fråga. Efter varje principkörning lagras de återstående token som tillåts för anroparens IP-adress under tidsperioden i variabeln remainingTokens.

<policies>
    <inbound>
        <base />
        <llm-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>

Mer information om hur du arbetar med principer finns i: