Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Utvecklare | Grundläggande | Basic v2 | Standard | Standard v2 | Premium | Premium v2
Principen llm-token-limit förhindrar att användningen av API:et för stor språkmodell (LLM) ökar per nyckel genom att begränsa förbrukningen av språkmodelltoken till antingen en angiven hastighet (antal per minut), en kvot under en angiven period eller båda. När en angiven gräns för tokenfrekvens överskrids får anroparen en 429 Too Many Requests svarsstatuskod. När en angiven kvot överskrids får anroparen en 403 Forbidden svarsstatuskod.
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.
Modell-API:er som stöds
Den här principen fungerar med LLM-API:er som lagts till i API Management och som överensstämmer med något av följande API-scheman:
- OpenAI-chattens slutförande eller svars-API
- Anthropic Messages API (stöds för närvarande på API Management v2-nivåer)
Principuttryck
<llm-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" />
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. | Antingen måste en hastighetsgräns (tokens-per-minute), en kvot (token-quota över en token-quota-period) eller båda anges. |
Ej tillämpligt |
| token-quota | Det maximala antalet token som tillåts under tidsintervallet som anges i token-quota-period. Principuttryck tillåts. |
Antingen måste en hastighetsgräns (tokens-per-minute), en kvot (token-quota över en token-quota-period) eller båda anges. |
Ej tillämpligt |
| token-quota-period | Längden på det fasta fönstret varefter token-quota återställs. Värdet måste vara något av följande: Hourly,Daily, Weekly, Monthly, . Yearly Starttiden för en kvotperiod beräknas som UTC-tidsstämpeln trunkerad till den enhet (timme, dag osv.) som används för perioden. Principuttryck tillåts. |
Antingen måste en hastighetsgräns (tokens-per-minute), en kvot (token-quota över en token-quota-period) eller båda anges. |
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 prompttoken i förväg baserat på promptschemat i API:et. - false: uppskatta inte prompttoken; använd faktisk tokenanvändning från modellsvaret. Information om tokenräkning och uppskattningsbeteende finns i Överväganden för tokenantal och uppskattning. |
Ja | Ej tillämpligt |
| retry-after-header-name | Namnet på en anpassad svarsrubrik vars värde är det rekommenderade återförsöksintervallet i sekunder efter den angivna tokens-per-minute eller token-quota överskridna. 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 eller token-quota har överskridits. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
| remaining-quota-tokens-header-name | Namnet på en svarsrubrik vars värde efter varje principkörning är det uppskattade antalet återstående token som motsvarar token-quota tillåtet för token-quota-period. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
| remaining-quota-tokens-variable-name | Namnet på en variabel som efter varje principkörning lagrar det uppskattade antalet återstående token som motsvarar token-quota tillåtet för token-quota-period. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
| remaining-tokens-header-name | Namnet på ett svarshuvud vars värde efter varje principkörning är antalet återstående token som motsvarar tokens-per-minute tillåtet 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 motsvarar tokens-per-minute tillåtna 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 initierades till det uppskattade antalet prompttoken i backend avsnittet (eller noll om estimate-prompt-tokens är false), uppdateras med det faktiska rapporterade antalet i outbound avsnittet. |
Nej | Ej tillämpligt |
Förbrukning
- 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.
- Denna policy kan valfritt konfigureras när man lägger till ett LLM-API via portalen.
- Värdet för
remaining-quota-tokens-variable-nameellerremaining-quota-tokens-header-nameär en uppskattning och kan vara större än förväntat baserat på den faktiska tokenförbrukningen. Mer information finns i Överväganden för tokenantal och uppskattning. - API Management använder en enskild räknare för varje
counter-keyvä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. - V2-nivåerna använder en token bucket-algoritm för hastighetsbegränsning, som skiljer sig från algoritmen för skjutfönster på klassiska nivåer. På grund av denna implementeringsskillnad, när du konfigurerar tokengränser i v2-nivåerna vid flera scopes genom att använda samma,
counter-keyse till atttokens-per-minutevärdet är konsekvent över alla policyinstanser. Oöverensstämmande värden kan orsaka oförutsägbart beteende. Mer information finns i Avancerad begränsning av begäran med Azure API Management - Den här principen spårar tokenanvändningen oberoende av varje gateway där den tillämpas, inklusive arbetsytegatewayer och regionala gatewayer i en distribution i flera regioner. Den aggregerar inte antalet token i hela instansen.
Överväganden för tokenantal och uppskattning
Principen övervakar och tillämpar tokengränser med hjälp av faktiska tokenanvändningsdata som returneras från LLM-slutpunkten. Du kan också aktivera uppskattning av prompttoken för att minska onödiga serverdelsbegäranden. Följande överväganden gäller.
- Tokentyper: Principen räknar för närvarande endast prompt- och slutförandetoken.
-
Utan uppskattning av prompttoken (
estimate-prompt-tokens="false"): Principen använder faktiska tokenanvändningsvärden frånusageavsnittet i LLM API-svaret. Prompter kan skickas till serverdelen även när gränsen överskrids. detta identifieras från svaret, varefter efterföljande begäranden blockeras tills gränsen återställs. -
Med uppskattning av prompttoken (
estimate-prompt-tokens="true"): Principen uppskattar prompttoken från promptschemat i API-definitionen innan begäran skickas. Detta kan minska onödiga serverdelsbegäranden när gränsen redan har överskridits, men kan minska prestandan. -
Direktuppspelning: När strömning är aktiverat i API-begäran (
stream: true), uppskattas alltid prompttoken oavsett inställningestimate-prompt-tokens. Slutförandetoken uppskattas också när svar strömmas. -
Bildinmatning: För modeller som accepterar bildindata räknas bildtoken vanligtvis av serverdelens LLM och ingår i gräns- och kvotberäkningar. Men när direktuppspelning är aktiverat eller
estimate-prompt-tokensär inställt påtrue, överskrider principen varje bild som högst 1 200 token. - Samtidighet: Eftersom det exakta antalet förbrukade token inte kan fastställas förrän svar tas emot från serverdelen kan samtidiga eller nästan samtidiga begäranden tillfälligt överskrida den konfigurerade tokengränsen. När svar har bearbetats och gränsen har överskridits blockeras efterföljande begäranden tills gränsen återställs.
-
Återstående kvotprecision: Den uppskattade återstående tokenkvoten som returneras i
remaining-quota-tokens-variable-nameellerremaining-quota-tokens-header-namekan vara större än förväntat baserat på faktisk tokenförbrukning och blir mer exakt när kvoten närmar sig.
Exempel
Gräns för tokenfrekvens
I följande exempel styrs gränsen för tokenfrekvens 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>
Tokenkvot
I följande exempel styrs tokenkvoten på 1 0000 av prenumerations-ID:t och återställs varje månad. Efter varje principkörning lagras antalet återstående token som tillåts för prenumerations-ID:t under tidsperioden i variabeln remainingQuotaTokens.
<policies>
<inbound>
<base />
<llm-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>
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
- Policy-exempellagringsplats
- Azure API Management principverktyg
- Hämta Copilot hjälp med att skapa, förklara och felsöka principer