Ograniczanie użycia tokenu interfejsu API modelu języka
DOTYCZY: Developer | Podstawowa | Podstawowa wersja 2 | Standardowa | Standardowa, wersja 2 | Premium | Premium, wersja 2
Zasady llm-token-limit
uniemożliwiają wzrosty użycia interfejsu API modelu języka (LLM) na podstawie klucza przez ograniczenie użycia tokenów LLM 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 usługi LLM, 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 LLM, jeśli limit został już przekroczony.
Uwaga
Obecnie te zasady są dostępne w wersji zapoznawczej.
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
Użyj zasad z interfejsami API LLM dodanymi do usługi Azure API Management, które są dostępne za pośrednictwem interfejsu API wnioskowania modelu AI platformy Azure.
Instrukcja zasad
<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" />
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.
- Jeśli jest dostępna, gdy
estimate-prompt-tokens
jest ustawiona nafalse
wartość , wartości w sekcji użycia odpowiedzi z interfejsu API LLM są używane do określania użycia tokenu. - Niektóre punkty końcowe LLM 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 />
<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>
Powiązane zasady
- Ograniczanie szybkości i limity przydziału
- azure-openai-token-limit policy
- zasady metryki llm-emit-token-metric
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
- Zestaw narzędzi zasad usługi Azure API Management
- Tworzenie zasad przy użyciu rozwiązania Microsoft Copilot na platformie Azure