Anteckning
Å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.
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
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 eller med OpenAI-kompatibla modeller som hanteras via tredjeparts slutsatsdragningsproviders.
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 entoken-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 inte. | Antingen måste en hastighetsgräns ( tokens-per-minute), en kvot (token-quotaöver entoken-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, .YearlyStarttiden för en kvotperiod beräknas som UTC-tidsstämpeln trunkerad till den enhet (timme, dag osv.) som används för perioden. | Antingen måste en hastighetsgräns ( tokens-per-minute), en kvot (token-quotaöver entoken-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 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 percounter-keymed 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å en anpassad svarsrubrik vars värde är det rekommenderade återförsöksintervallet i sekunder efter den angivna tokens-per-minuteellertoken-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-minuteellertoken-quotahar ö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-quotatillåtet förtoken-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-quotatillåtet förtoken-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-minutetillå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-minutetillå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 initierats till det uppskattade antalet token i prompten i backendavsnittet av pipelinen omestimate-prompt-tokensärtrueoch noll annars. Variabeln uppdateras med det rapporterade antalet när svaret tas emot ioutboundavsnittet. | 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.
- 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 streamanges tilltruei API-begäran för att aktivera strömning beräknas alltid prompttoken, oavsett värdet förestimate-prompt-tokensattributet.
- Värdet för remaining-quota-tokens-variable-nameellerremaining-quota-tokens-header-nameär en uppskattning i informationssyfte men kan vara större än förväntat baserat på faktisk tokenförbrukning. Värdet är mer exakt när kvoten närmar sig.
- För modeller som accepterar bildindata räknas bildtoken vanligtvis av serverdelsspråkmodellen och ingår i gräns- och kvotberäkningar. Men när direktuppspelning används eller estimate-prompt-tokensär inställd påtrueöverberäkning av principen för närvarande varje bild som ett maximalt antal 1 200 token.
- 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.
- 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.
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
- Lagringsplats för principlekplats
- Principverktyg för Azure API Management
- Få Hjälp med Copilot för att skapa, förklara och felsöka principer