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 false på 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
- Principavsnitt: inkommande
- Principomfattningar: global, arbetsyta, produkt, API, åtgärd
- Gatewayer: klassisk, v2, lokalt installerad, arbetsyta
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åfalse
anvä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 tilltrue
i API-begäran för att aktivera strömning beräknas alltid prompttoken, oavsett värdet förestimate-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>
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Principreferens för en fullständig lista över principinstruktioner och deras inställningar
- Principuttryck
- Ange eller redigera principer
- Återanvända principkonfigurationer
- Lagringsplats för principfragment
- Skapa principer med Microsoft Copilot i Azure