Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: Ontwikkelaar | Basic | Basic v2 | Standaard | Standard v2 | Premium | Premium v2
Het llm-token-limit beleid voorkomt pieken in het api-gebruik van grote talen (LLM) per sleutel door het verbruik van taalmodeltokens te beperken tot een opgegeven snelheid (aantal per minuut), een quotum gedurende een opgegeven periode of beide. Wanneer een opgegeven tokensnelheidslimiet wordt overschreden, ontvangt de aanroeper een 429 Too Many Requests antwoordstatuscode. Wanneer een opgegeven quotum wordt overschreden, ontvangt de aanroeper een 403 Forbidden antwoordstatuscode.
Notitie
Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.
Ondersteunde model-API's
Dit beleid werkt met LLM-API's die zijn toegevoegd aan API Management die voldoen aan een van de volgende API-schema's:
- OpenAI Chat-voltooiingen of antwoorden-API
- Anthropic Berichten-API (momenteel ondersteund in API Management v2-lagen)
Beleidsinstructie
<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" />
Kenmerken
| Kenmerk | Beschrijving | Vereist | Standaardinstelling |
|---|---|---|---|
| tellertoets | De sleutel die moet worden gebruikt voor het tokenlimietbeleid. Voor elke sleutelwaarde wordt één teller gebruikt voor alle bereiken waarop het beleid is geconfigureerd. Beleidsexpressies zijn toegestaan. | Ja | N.v.t. |
| tokens per minuut | Het maximum aantal tokens dat wordt verbruikt door prompt en voltooiing per minuut. | Een frequentielimiet (), een quotum (tokens-per-minutetoken-quotaboven eentoken-quota-period), of beide moeten worden opgegeven. |
N.v.t. |
| tokenquotum | Het maximum aantal tokens dat is toegestaan tijdens het tijdsinterval dat is opgegeven in de token-quota-period. Beleidsexpressies zijn toegestaan. |
Een frequentielimiet (), een quotum (tokens-per-minutetoken-quotaboven eentoken-quota-period), of beide moeten worden opgegeven. |
N.v.t. |
| tokenquotumperiode | De lengte van het vaste venster waarna het token-quota opnieuw wordt ingesteld. De waarde moet een van de volgende zijn: Hourly,Daily, Weekly, , Monthly. Yearly De begintijd van een quotumperiode wordt berekend als de UTC-tijdstempel afgekapt tot de eenheid (uur, dag, enzovoort) die voor de periode wordt gebruikt. Beleidsexpressies zijn toegestaan. |
Een frequentielimiet (), een quotum (tokens-per-minutetoken-quotaboven eentoken-quota-period), of beide moeten worden opgegeven. |
N.v.t. |
| schattingsprompttokens | Booleaanse waarde die bepaalt of het aantal tokens moet worden geschat dat is vereist voor een prompt: - true: schatting van prompttokens vooraf op basis van promptschema in API. - false: stel geen prompttokens in; gebruik van het werkelijke tokengebruik van het modelantwoord. Zie Overwegingen voor tokenaantallen en schattingen voor het tellen en schatten van tokens. |
Ja | N.v.t. |
| naam na koptekst opnieuw proberen | De naam van een aangepaste antwoordheader waarvan de waarde het aanbevolen interval voor opnieuw proberen is in seconden nadat de opgegeven tokens-per-minute waarde token-quota is overschreden. Beleidsexpressies zijn niet toegestaan. |
Nee | Retry-After |
| naam na variabele opnieuw proberen | De naam van een variabele waarin het aanbevolen interval voor opnieuw proberen wordt opgeslagen in seconden nadat de opgegeven tokens-per-minute waarde is overschreden.token-quota Beleidsexpressies zijn niet toegestaan. |
Nee | N.v.t. |
| resterende quotatokens-header-name | De naam van een antwoordheader waarvan de waarde na elke beleidsuitvoering het geschatte aantal resterende tokens is dat overeenkomt met token-quota het token-quota-periodtoegestane aantal . Beleidsexpressies zijn niet toegestaan. |
Nee | N.v.t. |
| resterende quotatokens-variabele-naam | De naam van een variabele die na elke beleidsuitvoering het geschatte aantal resterende tokens opslaat dat overeenkomt met token-quota het token-quota-periodtoegestane aantal . Beleidsexpressies zijn niet toegestaan. |
Nee | N.v.t. |
| resterende tokens-header-name | De naam van een antwoordheader waarvan de waarde na elke beleidsuitvoering het aantal resterende tokens is dat overeenkomt met tokens-per-minute het toegestane tijdsinterval. Beleidsexpressies zijn niet toegestaan. |
Nee | N.v.t. |
| resterende tokens-variabele-naam | De naam van een variabele die na elke beleidsuitvoering het aantal resterende tokens opslaat dat overeenkomt met tokens-per-minute het toegestane tijdsinterval. Beleidsexpressies zijn niet toegestaan. |
Nee | N.v.t. |
| tokens-consumed-header-name | De naam van een antwoordheader waarvan de waarde het aantal tokens is dat wordt gebruikt door prompt en voltooiing. De header wordt pas toegevoegd aan het antwoord nadat het antwoord is ontvangen van de back-end. Beleidsexpressies zijn niet toegestaan. | Nee | N.v.t. |
| tokens-verbruikt-variabele-naam | De naam van een variabele die is geïnitialiseerd naar het geschatte aantal prompttoken in de backend sectie (of nul als estimate-prompt-tokens dat is false), bijgewerkt met de werkelijke gerapporteerde telling in de outbound sectie. |
Nee | N.v.t. |
Gebruik
- Beleidssecties: inkomend
- Beleidsbereik: globaal, werkruimte, product, API, bewerking
- Gateways: klassiek, v2, zelf-hostend, werkruimte
Gebruiksnotities
- Dit beleid kan meerdere keren per beleidsdefinitie worden gebruikt.
- Dit beleid kan optioneel worden geconfigureerd bij het toevoegen van een LLM-API via het portaal.
- De waarde van
remaining-quota-tokens-variable-nameofremaining-quota-tokens-header-nameis een schatting en kan groter zijn dan verwacht op basis van het werkelijke tokenverbruik. Zie Overwegingen voor tokenaantallen en schattingen voor meer informatie. - API Management gebruikt één teller voor elke
counter-keywaarde die u in het beleid opgeeft. De teller wordt bijgewerkt op alle bereiken waarop het beleid is geconfigureerd met die sleutelwaarde. Als u afzonderlijke tellers wilt configureren voor verschillende bereiken (bijvoorbeeld een specifieke API of een specifiek product), geeft u verschillende sleutelwaarden op voor de verschillende bereiken. Voeg bijvoorbeeld een tekenreeks toe waarmee het bereik wordt geïdentificeerd aan de waarde van een expressie. - De v2-lagen maken gebruik van een tokenbucket-algoritme voor snelheidsbeperking, wat verschilt van het schuifvenster-algoritme in klassieke lagen. Vanwege dit implementatieverschil, wanneer je tokenlimieten configureert in de v2-tiers op meerdere scopes door dezelfde
counter-keyte gebruiken, zorg ervoor dat detokens-per-minutewaarde consistent is over alle beleidsinstanties. Inconsistente waarden kunnen onvoorspelbaar gedrag veroorzaken. Zie Advanced-aanvraagbeperking met Azure API Management voor meer informatie - Met dit beleid wordt het tokengebruik onafhankelijk bijgehouden bij elke gateway waarop het wordt toegepast, inclusief werkruimtegateways en regionale gateways in een implementatie met meerdere regio's. Het aggregaat geen tokenaantallen voor het hele exemplaar.
Overwegingen voor tokenaantallen en schattingen
Het beleid bewaakt en dwingt tokenlimieten af met behulp van werkelijke tokengebruiksgegevens die worden geretourneerd vanaf het LLM-eindpunt. U kunt eventueel een schatting van prompttoken inschakelen om onnodige back-endaanvragen te verminderen. De volgende overwegingen zijn van toepassing.
- Tokentypen: Het beleid telt momenteel alleen prompt- en voltooiingstokens.
-
Zonder prompttokenraming (
estimate-prompt-tokens="false"): Het beleid gebruikt werkelijke tokengebruikswaarden uit deusagesectie van het ANTWOORD van de LLM-API. Prompts kunnen naar de back-end worden verzonden, zelfs wanneer de limiet wordt overschreden; dit wordt gedetecteerd vanuit het antwoord, waarna volgende aanvragen worden geblokkeerd totdat de limiet opnieuw wordt ingesteld. -
Met schatting van prompttoken (
estimate-prompt-tokens="true"): Het beleid schat prompttokens uit het promptschema in de API-definitie voordat de aanvraag wordt verzonden. Dit kan onnodige back-endaanvragen verminderen wanneer de limiet al wordt overschreden, maar kan de prestaties verminderen. -
Streaming: wanneer streaming is ingeschakeld in de API-aanvraag (
stream: true), worden prompttokens altijd geschat, ongeacht deestimate-prompt-tokensinstelling. Voltooiingstokens worden ook geschat wanneer reacties worden gestreamd. -
Afbeeldingsinvoer: Voor modellen die afbeeldingsinvoer accepteren, worden afbeeldingstokens over het algemeen geteld door de back-end-LLM en opgenomen in limiet- en quotumberekeningen. Wanneer streaming echter is ingeschakeld of
estimate-prompt-tokensis ingesteldtrueop, wordt elk installatiekopieën met een maximum van 1200 tokens door het beleid overschreden. - Gelijktijdigheid: omdat het exacte aantal verbruikte tokens niet kan worden bepaald totdat antwoorden van de back-end worden ontvangen, kunnen gelijktijdige of bijna-gelijktijdige aanvragen de geconfigureerde tokenlimiet tijdelijk overschrijden. Zodra antwoorden zijn verwerkt en de limiet wordt overschreden, worden volgende aanvragen geblokkeerd totdat de limiet opnieuw wordt ingesteld.
-
Resterende nauwkeurigheid van het quotum: het geschatte resterende tokenquotum dat wordt geretourneerd in
remaining-quota-tokens-variable-nameofremaining-quota-tokens-header-namekan groter zijn dan verwacht op basis van het werkelijke tokenverbruik en wordt nauwkeuriger naarmate het quotum wordt benaderd.
Voorbeelden
Tokensnelheidslimiet
In het volgende voorbeeld wordt de limiet voor tokensnelheid van 5000 per minuut bepaald door het IP-adres van de beller. Het beleid maakt geen schatting van het aantal tokens dat is vereist voor een prompt. Na elke beleidsuitvoering worden de resterende tokens die zijn toegestaan voor dat aanroeper-IP-adres in de periode opgeslagen in de variabele 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>
Tokenquotum
In het volgende voorbeeld wordt het tokenquotum van 10000 door de abonnements-id bepaald en wordt het maandelijks opnieuw ingesteld. Na elke uitvoering van het beleid wordt het aantal resterende tokens dat is toegestaan voor die abonnements-id in de periode opgeslagen in de variabele 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>
Gerelateerd beleid
Gerelateerde inhoud
Zie voor meer informatie over het werken met beleid:
- Zelfstudie: Uw API transformeren en beveiligen
- Beleidsreferentie voor een volledige lijst met beleidsinstructies en hun instellingen
- Beleidsexpressies
- Beleid instellen of bewerken
- Beleidsconfiguraties opnieuw gebruiken
- Policy-fragmentenopslagplaats
- Policy-opslagplaats voor voorbeelden
- Azure API Management-beleidstoolkit
- Get Copilot hulp bij het maken, uitleggen en oplossen van problemen met beleidsregels