Ograniczanie użycia tokenu interfejsu API usługi Azure OpenAI
DOTYCZY: Developer | Podstawowa | Podstawowa wersja 2 | Standardowa | Standardowa, wersja 2 | Premia
Zasady azure-openai-token-limit
uniemożliwiają wzrost użycia interfejsu API usługi Azure OpenAI na podstawie klucza przez ograniczenie użycia tokenów modelu języka do określonej liczby na minutę. Gdy użycie tokenu zostanie przekroczone, obiekt wywołujący otrzyma 429 Too Many Requests
kod stanu odpowiedzi.
Korzystając z metryk użycia tokenu zwróconych z punktu końcowego interfejsu OpenAI, zasady mogą dokładnie monitorować i wymuszać limity w czasie rzeczywistym. Zasady umożliwiają również wstępne obliczanie tokenów monitów przez usługę API Management, minimalizując niepotrzebne żądania do zaplecza openAI, jeśli limit został już przekroczony.
Uwaga
Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.
Obsługiwane modele usługi Azure OpenAI Service
Zasady są używane z interfejsami API dodanymi do usługi API Management z poziomu usługi Azure OpenAI Service następujących typów:
Typ API | Obsługiwane modele |
---|---|
Uzupełnianie czatu | gpt-3.5 gpt-4 |
Zakończenie | gpt-3.5-turbo-poinstruowanie |
Osadzanie | osadzanie tekstu —3 — duże osadzanie tekstu — 3 małe text-embedding-ada-002 |
Aby uzyskać więcej informacji, zobacz Modele usługi Azure OpenAI Service.
Instrukcja zasad
<azure-openai-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" />
Atrybuty
Atrybut | opis | Wymagani | Wartość domyślna |
---|---|---|---|
counter-key | Klucz do użycia dla zasad limitu tokenów. Dla każdej wartości klucza jest używany pojedynczy licznik dla wszystkich zakresów, w których skonfigurowano zasady. Wyrażenia zasad są dozwolone. | Tak | Nie dotyczy |
tokeny na minutę | Maksymalna liczba tokenów używanych przez monit i ukończenie na minutę. | Tak | Nie dotyczy |
estimate-prompt-tokens | Wartość logiczna określająca, czy oszacować liczbę tokenów wymaganych dla monitu: - true : oszacować liczbę tokenów na podstawie schematu monitu w interfejsie API; może zmniejszyć wydajność. - false : nie szacuj tokenów monitów. W przypadku ustawienia false wartości pozostałe tokeny na są obliczane counter-key przy użyciu rzeczywistego użycia tokenu z odpowiedzi modelu. Może to spowodować wysłanie monitów do modelu, który przekracza limit tokenu. W takim przypadku zostanie to wykryte w odpowiedzi, a wszystkie pomyślne żądania zostaną zablokowane przez zasady do momentu ponownego zwolnienia limitu tokenu. |
Tak | Nie dotyczy |
retry-after-header-name | Nazwa niestandardowego nagłówka odpowiedzi, którego wartość jest zalecanym interwałem ponawiania prób w sekundach po przekroczeniu określonego tokens-per-minute parametru. Wyrażenia zasad nie są dozwolone. |
Nie. | Retry-After |
retry-after-variable-name | Nazwa zmiennej, która przechowuje zalecany interwał ponawiania prób w sekundach po przekroczeniu określonej tokens-per-minute wartości. Wyrażenia zasad nie są dozwolone. |
Nie. | Nie dotyczy |
remaining-tokens-header-name | Nazwa nagłówka odpowiedzi, którego wartość po każdym wykonaniu zasad jest liczbą pozostałych tokenów dozwolonych przez interwał czasu. Wyrażenia zasad nie są dozwolone. | Nie. | Nie dotyczy |
remaining-tokens-variable-name | Nazwa zmiennej, która po każdym wykonaniu zasad przechowuje liczbę pozostałych tokenów dozwolonych przez przedział czasu. Wyrażenia zasad nie są dozwolone. | Nie. | Nie dotyczy |
tokens-consumed-header-name | Nazwa nagłówka odpowiedzi, którego wartość to liczba tokenów używanych zarówno przez monit, jak i ukończenie. Nagłówek jest dodawany do odpowiedzi dopiero po odebraniu odpowiedzi z zaplecza. Wyrażenia zasad nie są dozwolone. | Nie. | Nie dotyczy |
tokens-consumed-variable-name | Nazwa zmiennej zainicjowanej do szacowanej liczby tokenów w wierszu polecenia w backend sekcji potoku, jeśli estimate-prompt-tokens jest true i zero w przeciwnym razie. Zmienna jest aktualizowana z zgłoszoną liczbą po otrzymaniu odpowiedzi w outbound sekcji . |
Nie. | Nie dotyczy |
Użycie
- Sekcje zasad: ruch przychodzący
- Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
- Bramy: klasyczne, wersja 2, self-hosted, obszar roboczy
Uwagi dotyczące użycia
- Te zasady mogą być używane wiele razy na definicję zasad.
- Te zasady można opcjonalnie skonfigurować podczas dodawania interfejsu API z usługi Azure OpenAI Przy użyciu portalu.
- Jeśli jest dostępna, gdy
estimate-prompt-tokens
jest ustawiona nafalse
wartość , wartości w sekcji użycia odpowiedzi z interfejsu API usługi Azure OpenAI są używane do określania użycia tokenu. - Niektóre punkty końcowe usługi Azure OpenAI obsługują przesyłanie strumieniowe odpowiedzi. Gdy
stream
parametr jest ustawiony natrue
wartość w żądaniu interfejsu API w celu włączenia przesyłania strumieniowego, tokeny monitu są zawsze szacowane, niezależnie od wartości atrybutuestimate-prompt-tokens
. - Usługa API Management używa pojedynczego licznika dla każdej
counter-key
wartości określonej w zasadach. Licznik jest aktualizowany we wszystkich zakresach, w których zasady są skonfigurowane przy użyciu tej wartości klucza. Jeśli chcesz skonfigurować oddzielne liczniki w różnych zakresach (na przykład określony interfejs API lub produkt), określ różne wartości klucza w różnych zakresach. Na przykład dołącz ciąg identyfikujący zakres do wartości wyrażenia.
Przykład
W poniższym przykładzie limit tokenu 5000 na minutę jest kluczem adresu IP obiektu wywołującego. Zasady nie szacują liczby tokenów wymaganych do wyświetlenia monitu. Po każdym wykonaniu zasad pozostałe tokeny dozwolone dla tego adresu IP obiektu wywołującego w okresie są przechowywane w zmiennej remainingTokens
.
<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>
Powiązane zasady
- Ograniczanie szybkości i limity przydziału
- llm-token-limit zasad
- azure-openai-emit-token-metric policy
Powiązana zawartość
Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz:
- Samouczek: przekształcanie i ochrona interfejsu API
- Dokumentacja zasad dla pełnej listy instrukcji zasad i ich ustawień
- Wyrażenia zasad
- Ustawianie lub edytowanie zasad
- Ponowne używanie konfiguracji zasad
- Repozytorium fragmentów zasad
- Tworzenie zasad przy użyciu rozwiązania Microsoft Copilot na platformie Azure