Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
Die llm-token-limit Richtlinie verhindert höchstwertige API-Verwendungsspitzen (LARGE Language Model, LLM) pro Schlüssel, indem der Verbrauch von Sprachmodelltoken entweder auf eine angegebene Rate (Anzahl pro Minute), ein Kontingent über einen bestimmten Zeitraum oder beides beschränkt wird. Wenn ein angegebenes Tokenratenlimit überschritten wird, empfängt der Aufrufer einen 429 Too Many Requests Antwortstatuscode. Wenn ein angegebenes Kontingent überschritten wird, empfängt der Aufrufer einen 403 Forbidden Antwortstatuscode.
Hinweis
Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.
Unterstützte Modell-APIs
Diese Richtlinie funktioniert mit LLM-APIs, die der API-Verwaltung hinzugefügt wurden, die einem der folgenden API-Schemas entsprechen:
- OpenAI-Chatabschluss- oder Antwort-API
- Anthropic Nachrichten-API (derzeit in API-Verwaltungsebenen v2 unterstützt)
Richtlinienanweisung
<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" />
Attribute
| Attribut | BESCHREIBUNG | Erforderlich | Standard |
|---|---|---|---|
| Gegentaste | Der Schlüssel, der für die Ratenbegrenzungsrichtlinie verwendet werden soll Für jeden Schlüsselwert wird ein einzelner Indikator für alle Bereiche verwendet, in denen die Richtlinie konfiguriert ist. Richtlinienausdrücke sind zulässig. | Ja | N/V |
| Token pro Minute | Die maximale Anzahl von Token, die von Eingabeaufforderung und Abschluss pro Minute verbraucht werden. | Entweder ein Satzlimit (tokens-per-minute), ein Kontingent (token-quota über ein token-quota-period) oder beides muss angegeben werden. |
N/V |
| Tokenkontingent | Die maximale Anzahl von Token, die während des in der token-quota-periodAngegebenen Zeitintervalls zulässig sind. Richtlinienausdrücke sind zulässig. |
Entweder ein Satzlimit (tokens-per-minute), ein Kontingent (token-quota über ein token-quota-period) oder beides muss angegeben werden. |
N/V |
| token-quota-period | Die Länge des festen Fensters, nach dem die token-quota Zurücksetzung durchgeführt wird. Der Wert muss einer der folgenden Werte sein: Hourly,Daily, , Weekly, Monthly. Yearly Die Startzeit eines Kontingentzeitraums wird als UTC-Zeitstempel berechnet, der auf die Einheit (Stunde, Tag usw.) abgeschnitten ist, die für den Zeitraum verwendet wird. Richtlinienausdrücke sind zulässig. |
Entweder ein Satzlimit (tokens-per-minute), ein Kontingent (token-quota über ein token-quota-period) oder beides muss angegeben werden. |
N/V |
| Schätzaufforderungstoken | Boolescher Wert, der bestimmt, ob die Anzahl der für eine Eingabeaufforderung erforderlichen Token geschätzt werden soll: - true: Schätzen Von Eingabeaufforderungstoken im Voraus basierend auf dem Eingabeaufforderungsschema in der API. - false: schätzen Sie keine Aufforderungstoken; verwenden Sie die tatsächliche Tokenverwendung aus der Modellantwort. Informationen zum Zähl- und Schätzungsverhalten von Token finden Sie unter Überlegungen zur Tokenanzahl und -schätzung. |
Ja | N/V |
| Retry-after-header-name | Der Name eines benutzerdefinierten Antwortheaders, dessen Wert das empfohlene Wiederholungsintervall in Sekunden nach dem angegebenen tokens-per-minute oder token-quota überschrittenen Wert ist. Richtlinienausdrücke sind nicht zulässig. |
Nein | Retry-After |
| retry-after-variable-name | Der Name einer Variablen, die das empfohlene Wiederholungsintervall in Sekunden nach dem angegebenen tokens-per-minute oder token-quota überschrittenen Intervall speichert. Richtlinienausdrücke sind nicht zulässig. |
Nein | N/V |
| Restkontingenttoken-Headername | Der Name eines Antwortheaders, dessen Wert nach jeder Richtlinienausführung die geschätzte Anzahl der verbleibenden Token entspricht, token-quota die für die Zulässigkeit token-quota-periodentsprechen. Richtlinienausdrücke sind nicht zulässig. |
Nein | N/V |
| Restkontingenttoken-Variable-Name | Der Name einer Variablen, die nach jeder Richtlinienausführung die geschätzte Anzahl der verbleibenden Token speichert, die token-quotadem zulässigen Wert entsprechentoken-quota-period. Richtlinienausdrücke sind nicht zulässig. |
Nein | N/V |
| Resttoken-Headername | Der Name eines Antwortheaders, dessen Wert nach jeder Richtlinienausführung die Anzahl der verbleibenden Token ist, die für das Zeitintervall zulässig sind tokens-per-minute . Richtlinienausdrücke sind nicht zulässig. |
Nein | N/V |
| Resttoken-Variable-Name | Der Name einer Variablen, die nach jeder Richtlinienausführung die Anzahl der verbleibenden Token speichert, die für das Zeitintervall zulässig sind tokens-per-minute . Richtlinienausdrücke sind nicht zulässig. |
Nein | N/V |
| token-consumed-header-name | Der Name eines Antwortheaders, dessen Wert die Anzahl der Token ist, die sowohl von der Eingabeaufforderung als auch vom Abschluss verbraucht werden Der Header wird der Antwort erst hinzugefügt, nachdem die Antwort vom Back-End empfangen wurde. Richtlinienausdrücke sind nicht zulässig. | Nein | N/V |
| token-consumed-variable-name | Der Name einer Variablen, die für die geschätzte Anzahl von Eingabeaufforderungstoken im backend Abschnitt (oder null, falls estimate-prompt-tokens vorhanden) initialisiert wurde false, aktualisiert mit der tatsächlich gemeldeten Anzahl im outbound Abschnitt. |
Nein | N/V |
Verwendung
- Richtlinienabschnitte: inbound
- Richtlinienbereiche: global, Arbeitsbereich, Produkt, API, Vorgang
- Gateways: klassisch, v2, selbstgehostet, Arbeitsbereich
Hinweise zur Verwendung
- Diese Richtlinie kann pro Richtliniendefinition mehrmals verwendet werden.
- Diese Richtlinie kann optional konfiguriert werden, wenn eine LLM-API über das Portal hinzugefügt wird.
- Der Wert von
remaining-quota-tokens-variable-nameoderremaining-quota-tokens-header-nameist eine Schätzung und kann basierend auf der tatsächlichen Tokennutzung größer als erwartet sein. Weitere Informationen finden Sie unter Überlegungen zur Tokenanzahl und -schätzung. - API Management verwendet einen einzelnen Zähler für jeden
counter-key-Wert, den Sie in der Richtlinie angeben. Der Zähler wird für alle Bereiche aktualisiert, für die die Richtlinie mit diesem Schlüsselwert konfiguriert ist. Wenn Sie für verschiedene Bereiche separate Zähler konfigurieren möchten (z. B. eine bestimmte API oder ein bestimmtes Produkt), geben Sie für die verschiedenen Bereiche unterschiedliche Schlüsselwerte an. Fügen Sie beispielsweise eine Zeichenfolge an, die den Bereich auf den Wert eines Ausdrucks festlegt. - Die v2-Ebenen verwenden einen Token-Bucketalgorithmus zum Einschränken der Geschwindigkeit, der sich vom Gleitfensteralgorithmus in klassischen Ebenen unterscheidet. Aufgrund dieses Implementierungsunterschieds stellen Sie bei der Konfiguration von Token-Limits in den v2-Tiers an mehreren Scopes mit demselben
counter-keyWert sicher, dass dertokens-per-minuteWert über alle Policy-Instanzen hinweg konsistent ist. Inkonsistente Werte können zu unvorhersehbarem Verhalten führen. Weitere Informationen finden Sie unter Advanced-Anforderungseinschränkung mit Azure API Management - Diese Richtlinie verfolgt die Tokennutzung unabhängig von jedem Gateway, in dem es angewendet wird, einschließlich Arbeitsbereichsgateways und regionalen Gateways in einer Bereitstellung mit mehreren Regionen. Das Token zählt nicht über die gesamte Instanz hinweg.
Überlegungen zur Tokenanzahl und -schätzung
Die Richtlinie überwacht und erzwingt Tokengrenzwerte mithilfe tatsächlicher Tokennutzungsdaten, die vom LLM-Endpunkt zurückgegeben werden. Sie können optional die Eingabeaufforderungstokenschätzung aktivieren, um unnötige Back-End-Anforderungen zu reduzieren. Die folgenden Überlegungen gelten:
- Tokentypen: Die Richtlinie zählt derzeit nur Eingabeaufforderungs- und Abschlusstoken.
-
Ohne Aufforderungstokenschätzung (
estimate-prompt-tokens="false"): Die Richtlinie verwendet tatsächliche Tokenverwendungswerte aus demusageAbschnitt der LLM-API-Antwort. Aufforderungen können auch dann an das Back-End gesendet werden, wenn der Grenzwert überschritten wird; dies wird von der Antwort erkannt, nach der nachfolgende Anforderungen blockiert werden, bis der Grenzwert zurückgesetzt wird. -
Mit der Eingabeaufforderungstokenschätzung (
estimate-prompt-tokens="true"): Die Richtlinie schätzt Eingabeaufforderungstoken aus dem Eingabeaufforderungsschema in der API-Definition, bevor die Anforderung gesendet wird. Dies kann unnötige Back-End-Anforderungen reduzieren, wenn der Grenzwert bereits überschritten wurde, die Leistung kann jedoch verringert werden. -
Streaming: Wenn Streaming in der API-Anforderung
stream: true() aktiviert ist, werden Eingabeaufforderungstoken unabhängig von derestimate-prompt-tokensEinstellung immer geschätzt. Abschlusstoken werden auch geschätzt, wenn Antworten gestreamt werden. -
Bildeingabe: Für Modelle, die Bildeingaben akzeptieren, werden Bildtoken im Allgemeinen vom Back-End-LLM gezählt und in Limit- und Kontingentberechnungen einbezogen. Wenn das Streaming jedoch aktiviert oder auf
estimate-prompt-tokensfestgelegttrueist, überschreibt die Richtlinie jedes Bild als maximal 1200 Token. - Parallelität: Da die genaue Anzahl der verbrauchten Token erst bestimmt werden kann, wenn Antworten vom Back-End empfangen werden, können gleichzeitige oder nahezu gleichzeitige Anforderungen vorübergehend den konfigurierten Tokengrenzwert überschreiten. Sobald Antworten verarbeitet und der Grenzwert überschritten wird, werden nachfolgende Anforderungen blockiert, bis der Grenzwert zurückgesetzt wird.
-
Verbleibende Kontingentgenauigkeit: Das geschätzte verbleibende Tokenkontingent, das
remaining-quota-tokens-variable-namebasierend auf der tatsächlichen Tokennutzung zurückgegeben wird oderremaining-quota-tokens-header-namegrößer als erwartet ist, und wird genauer, wenn das Kontingent nähert wird.
Beispiele
Tokenratenlimit
Im folgenden Beispiel wird der Tokenratengrenzwert von 5000 pro Minute von der IP-Adresse des Anrufers schlüsselt. Die Richtlinie schätzt die für eine Eingabeaufforderung erforderliche Anzahl von Token nicht. Nach jeder Richtlinienausführung werden die verbleibenden Token, die in dem Zeitraum für diese aufrufende IP-Adresse zulässig sind, in der Variablen remainingTokens gespeichert.
<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>
Tokenkontingent
Im folgenden Beispiel wird das Tokenkontingent von 10000 durch die Abonnement-ID schlüsselt und monatlich zurückgesetzt. Nach jeder Richtlinienausführung wird die Anzahl der verbleibenden Token, die für diese Abonnement-ID im Zeitraum zulässig sind, in der Variablen remainingQuotaTokensgespeichert.
<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>
Verwandte Richtlinien
Zugehöriger Inhalt
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
- Tutorial: Transformieren und Schützen Ihrer API
- Unter Richtlinien für die API-Verwaltung finden Sie eine komplette Liste der Richtlinienanweisungen und der zugehörigen Einstellungen.
- Richtlinienausdrücke
- Festlegen oder Bearbeiten von Richtlinien
- Wiederverwenden von Richtlinienkonfigurationen
- Richtlinien-Schnipsel-Repo
- Policy-Beispiel-Repository
- Azure API Management Policy Toolkit
- > Hilfe Copilot zum Erstellen, Erläutern und Beheben von Richtlinien