Teilen über


Einschränken der Azure OpenAI-API-Tokennutzung

GILT FÜR: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2

Die azure-openai-token-limit Richtlinie verhindert die Verwendung von Azure OpenAI in Foundry Models API-Nutzungsspitzen pro Schlüsselbasis, indem der Verbrauch von Sprachmodelltoken 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.

Indem sie sich auf Token-Nutzungsmetriken stützt, die vom Azure OpenAI-Endpunkt zurückgegeben werden, überwacht und setzt die Richtlinie Limits basierend auf dem tatsächlichen Tokenverbrauch durch. Die Richtlinie ermöglicht außerdem die frühzeitige Schätzung von Prompt-Tokens durch API-Management, wodurch unnötige Anfragen an das Azure-OpenAI-Backend minimiert werden, falls das Limit bereits überschritten wird. Da jedoch die tatsächliche Anzahl der verbrauchten Token sowohl von der Promptgröße als auch von der Abschlussgröße (die je nach Anfrage variiert) abhängt, kann die Richtlinie den gesamten Tokenverbrauch nicht im Voraus vorhersagen. Dieses Design könnte es ermöglichen, Token-Limits vorübergehend zu überschreiten, wenn mehrere Anfragen gleichzeitig verarbeitet werden.

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 Azure OpenAI in Azure AI Foundry-Modellen

Die Richtlinie wird mit APIs verwendet, die der API-Verwaltung aus azure OpenAI in AI Foundry-Modellen der folgenden Typen hinzugefügt werden:

API-Typ Unterstützte Modelle
Chatvervollständigung gpt-3.5

gpt-4

gpt-4o

gpt-4o-mini

o1

o3
Einbettungen text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002
Antworten (Vorschau) gpt-4o (Versionen: 2024-11-20, 2024-08-06, 2024-05-13)

gpt-4o-mini (Version: 2024-07-18)

gpt-4.1 (Version: 2025-04-14)

gpt-4.1-nano (Version: 2025-04-14)

gpt-4.1-mini (Version: 2025-04-14)

gpt-image-1 (Version: 2025-04-15)

o3 (Version: 2025-04-16)

o4-mini (Version: '2025-04-16)

Hinweis

Herkömmliche Vervollständigungs-APIs sind nur mit älteren Modellversionen verfügbar, und die Unterstützung ist eingeschränkt.

Aktuelle Informationen zu den Modellen und ihren Funktionen finden Sie unter Azure OpenAI in Foundry Models.

Richtlinienanweisung

<azure-openai-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 nicht 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 mithilfe des UTC-Zeitstempels berechnet, der auf die Einheit (Stunde, Tag usw.) abgeschnitten ist, die für den Zeitraum verwendet wird. 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: Die Anzahl der Token basierend auf dem Eingabeaufforderungsschema in der API schätzen; kann die Leistung beeinträchtigen.
- false: Eingabeaufforderungstoken nicht schätzen.

Bei Festlegung auf false werden die verbleibenden Token pro counter-key mithilfe der tatsächlichen Tokenverwendung aus der Antwort des Modells berechnet. Dies kann dazu führen, dass Prompts an das Modell gesendet werden, das den Tokengrenzwert überschreitet. In diesem Fall wird dies in der Antwort erkannt, und alle nachfolgenden Anfragen werden von der Richtlinie blockiert, bis das Token-Limit zurückgesetzt wird.
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 mit der geschätzten Anzahl von Token in der Eingabeaufforderung im backend-Abschnitt der Pipeline initialisiert wurde, wenn estimate-prompt-tokens gleich true ist, und andernfalls null ist. Nachdem die Antwort im outbound-Abschnitt empfangen wurde, wird die Variable mit der gemeldeten Anzahl aktualisiert. Nein N/V

Verwendung

Hinweise zur Verwendung

  • Diese Richtlinie kann mehrfach pro Richtliniendefinition verwendet werden
  • Diese Richtlinie kann optional konfiguriert werden, wenn eine Azure OpenAI-API über das Portal hinzugefügt wird.
  • Wenn verfügbar, wenn dieser wert estimate-prompt-tokens ist false, werden Werte im Verwendungsbereich der Antwort aus der Azure OpenAI-API verwendet, um die Tokenverwendung zu bestimmen.
  • Wenn mehrere Anfragen gleichzeitig oder mit leichten Verzögerungen gesendet werden, kann die Richtlinie einen Tokenverbrauch erlauben, der das konfigurierte Limit überschreitet. Dies geschieht, weil die Richtlinie die genaue Anzahl der verbrauchten Token erst bestimmen kann, wenn Antworten vom Backend empfangen werden. Sobald Antworten verarbeitet und Token-Limits überschritten sind, werden nachfolgende Anfragen blockiert, bis das Limit zurückgesetzt wird.
  • Bestimmte Azure OpenAI-Endpunkte unterstützen das Streaming von Antworten. Wenn stream in der API-Anforderung zum Aktivieren des Streamings auf true festgelegt ist, werden Prompttokens unabhängig vom Wert des Attributs estimate-prompt-tokens immer geschätzt. Abschlusstoken werden auch geschätzt, wenn Antworten gestreamt werden.
  • Der Wert von remaining-quota-tokens-variable-name oder remaining-quota-tokens-header-name ist eine Schätzung für Informationszwecke, kann jedoch basierend auf der tatsächlichen Tokennutzung größer als erwartet sein. Der Wert ist genauer, wenn das Kontingent nähert wird.
  • Bei Modellen, die Bildeingaben akzeptieren, werden Bildtoken im Allgemeinen vom Back-End-Sprachmodell gezählt und in Limit- und Kontingentberechnungen einbezogen. Wenn das Streaming jedoch verwendet oder estimate-prompt-tokens auf festgelegt trueist, zählt die Richtlinie derzeit jedes Bild als maximale Anzahl von 1200 Token.
  • 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-Stufen verwenden einen Token-Bucket-Algorithmus zur Ratenbegrenzung, der sich vom Sliding-Window-Algorithmus in klassischen Stufen 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 der tokens-per-minute Wert über alle Policy-Instanzen hinweg konsistent ist. Inkonsistente Werte können zu unvorhersehbarem Verhalten führen.
  • 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.

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 />
        <azure-openai-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 />
        <azure-openai-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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: