Het gebruik van api-token voor het grote taalmodel beperken
VAN TOEPASSING OP: Ontwikkelaar | Basic | Basic v2 | Standaard | Standard v2 | Premie
Het llm-token-limit
beleid voorkomt pieken in het api-gebruik van grote talen (LLM) per sleutel door het verbruik van LLM-tokens te beperken tot een opgegeven getal per minuut. Wanneer het tokengebruik wordt overschreden, ontvangt de aanroeper een 429 Too Many Requests
antwoordstatuscode.
Door te vertrouwen op metrische gegevens over tokengebruik die worden geretourneerd door het LLM-eindpunt, kan het beleid in realtime de limieten nauwkeurig bewaken en afdwingen. Het beleid maakt ook het vooraf berekenen van prompttokens door API Management mogelijk, waardoor onnodige aanvragen naar de LLM-back-end worden geminimaliseerd als de limiet al wordt overschreden.
Notitie
Dit beleid is momenteel beschikbaar als preview-versie.
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 modellen
Gebruik het beleid met LLM-API's die zijn toegevoegd aan Azure API Management die beschikbaar zijn via de Azure AI-modeldeductie-API.
Beleidsinstructie
<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" />
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. | Ja | N.v.t. |
schattingsprompttokens | Booleaanse waarde die bepaalt of het aantal tokens moet worden geschat dat is vereist voor een prompt: - true : schat het aantal tokens op basis van promptschema in API; kan de prestaties verminderen. - false : stel geen prompttokens in. Als dit is ingesteld false op, worden de resterende tokens per counter-key berekend met behulp van het werkelijke tokengebruik van het antwoord van het model. Dit kan ertoe leiden dat er prompts naar het model worden verzonden die de tokenlimiet overschrijden. In dat geval wordt dit gedetecteerd in het antwoord en worden alle geslaagde aanvragen geblokkeerd door het beleid totdat de tokenlimiet weer vrijkomt. |
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 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. 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 is toegestaan voor het 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 is toegestaan voor het 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 voor het geschatte aantal tokens in de prompt in backend de sectie van de pijplijn, indien estimate-prompt-tokens dat niet het enige is true . De variabele wordt bijgewerkt met het gerapporteerde aantal wanneer het antwoord in outbound de sectie wordt ontvangen. |
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.
- Indien beschikbaar wanneer
estimate-prompt-tokens
deze is ingesteldfalse
op, worden waarden in het gebruiksgedeelte van het antwoord van de LLM-API gebruikt om het tokengebruik te bepalen. - Bepaalde LLM-eindpunten ondersteunen het streamen van antwoorden. Wanneer
stream
deze is ingesteldtrue
op in de API-aanvraag om streaming in te schakelen, worden prompttokens altijd geschat, ongeacht de waarde van hetestimate-prompt-tokens
kenmerk. - API Management gebruikt één teller voor elke
counter-key
waarde 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.
Opmerking
In het volgende voorbeeld wordt de tokenlimiet 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>
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
- Beleidsfragmentenopslagplaats
- Beleid ontwerpen met Behulp van Microsoft Copilot in Azure