Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Базовая версия 2 | Стандартный | Standard v2 | Премиум | Премиум версии 2
Политика llm-token-limit предотвращает пики использования API больших языковых моделей (LLM) на основе каждого ключа путем ограничения потребления маркеров языковой модели на указанную скорость (число в минуту), квоту за указанный период или оба. При превышении указанного ограничения скорости маркера вызывающий объект получает 429 Too Many Requests код состояния ответа. При превышении указанной квоты вызывающий получает 403 Forbidden код состояния ответа.
Опираясь на метрики использования токенов, возвращаемые с LLM-конечной точки, политика отслеживает и устанавливает ограничения на основе фактического потребления токенов. Политика также позволяет заранее оценивать токены запросов API Management, минимизируя ненужные запросы к бэкенду LLM, если лимит уже превышён. Однако, поскольку фактическое количество потребленных токенов зависит как от размера запроса, так и от размера завершения (который зависит от запроса), политика не может заранее предсказать общее потребление токенов. Такая конструкция позволяет временно превышать лимиты токенов при одновременной обработке нескольких запросов.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Поддерживаемые модели
Используйте политику с API LLM, добавленными в службу управления API Azure, доступные через API вывода модели ИИ Azure или с моделями, совместимыми с OpenAI, которые обслуживаются сторонними поставщиками выводов.
Правило политики
<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" />
Атрибуты
| Атрибут | Описание | Обязательное поле | По умолчанию. |
|---|---|---|---|
| counter-key | Ключ, используемый для политики ограничения маркеров. Для каждого значения ключа используется один счетчик для всех областей, для которых настроена политика. Допустимы выражения политики. | Да | Н/П |
| токены в минуту | Максимальное количество маркеров, потребляемых запросом и завершением в минуту. | Необходимо указать ограничение скорости (), квоту (tokens-per-minutetoken-quotaпо сравнению с) token-quota-periodили оба. |
Н/П |
| квота токена | Максимальное количество маркеров, разрешенных в течение интервала времени, указанного в параметре token-quota-period. Выражения политики не допускаются. |
Необходимо указать ограничение скорости (), квоту (tokens-per-minutetoken-quotaпо сравнению с) token-quota-periodили оба. |
Н/П |
| период квоты токена | Длина фиксированного окна, после которого token-quota сбрасывается. Значение должно быть одним из следующих значений: Hourly,Daily, Weekly, Monthly, Yearly. Время начала периода квоты вычисляется как метка времени UTC, усеченная на единицу (час, день и т. д.), используемая в течение периода. |
Необходимо указать ограничение скорости (), квоту (tokens-per-minutetoken-quotaпо сравнению с) token-quota-periodили оба. |
Н/П |
| estimate-prompt-token | Логическое значение, определяющее, следует ли оценить количество маркеров, необходимых для запроса: - true: оцените количество токенов на основе схемы запроса в API; может снизить производительность. - false: не оцените маркеры запроса. Если задано значение false, остальные маркеры counter-key вычисляются с помощью фактического использования маркеров из ответа модели. Это может привести к отправке запросов в модель, превышающую ограничение маркера. В таком случае это будет обнаружено в ответе, и все последующие запросы будут блокироваться политикой до сброса лимита токена. |
Да | Н/П |
| retry-after-header-name | Имя пользовательского заголовка ответа, значение которого является рекомендуемой интервалом повтора в секундах после указанного tokens-per-minute или token-quota превышения. Выражения политики не допускаются. |
нет | Retry-After |
| retry-after-variable-name | Имя переменной, которая сохраняет рекомендуемый интервал повторных попыток в секундах после указанного tokens-per-minute или token-quota превышения. Выражения политики не допускаются. |
нет | Н/П |
| оставшаяся квота-token-header-name | Имя заголовка ответа, значение которого после каждого выполнения политики — это предполагаемое количество оставшихся маркеров, token-quota соответствующих разрешенным token-quota-period. Выражения политики не допускаются. |
нет | Н/П |
| оставшаяся квота-token-variable-name | Имя переменной, которая после каждого выполнения политики сохраняет предполагаемое количество оставшихся token-quota маркеров, соответствующих разрешенным token-quota-period. Выражения политики не допускаются. |
нет | Н/П |
| остальные токены-заголовок-name | Имя заголовка ответа, значение которого после каждого выполнения политики — это количество оставшихся маркеров, tokens-per-minute соответствующих допустимому интервалу времени. Выражения политики не допускаются. |
нет | Н/П |
| остальные токены-переменные-name | Имя переменной, которая после каждого выполнения политики сохраняет количество оставшихся маркеров, соответствующих tokens-per-minute допустимому интервалу времени. Выражения политики не допускаются. |
нет | Н/П |
| token-consumed-header-name | Имя заголовка ответа, значение которого — количество маркеров, потребляемых как запросом, так и завершением. Заголовок добавляется в ответ только после получения ответа от серверной части. Выражения политики не допускаются. | нет | Н/П |
| token-consumed-variable-name | Имя переменной, инициализированной с предполагаемым количеством маркеров в запросе в разделе конвейера, backend если estimate-prompt-tokens значение равно true нулю. Переменная обновляется с указанным числом при получении ответа в outbound разделе. |
нет | Н/П |
Использование
- Разделы политики: inbound.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, локальная, рабочая область
Примечания об использовании
- Эту политику можно использовать несколько раз для определения политики.
- Эту политику можно настроить при добавлении LLM API через портал.
-
estimate-prompt-tokensЕсли задано значениеfalse, значения в разделе использования ответа от API LLM используются для определения использования маркеров. - Когда несколько запросов отправляются одновременно или с небольшими задержками, политика может позволить потребление токенов, превышающее установленный лимит. Это происходит потому, что политика не может определить точное количество потребленных токенов до получения ответов от бэкенда. После обработки ответов и превышения лимита токенов последующие запросы блокируются до сброса лимита.
- Некоторые конечные точки LLM поддерживают потоковую передачу ответов. Если
streamзадано значениеtrueв запросе API для включения потоковой передачи, маркеры запроса всегда оцениваются независимо от значения атрибутаestimate-prompt-tokens. - Значение
remaining-quota-tokens-variable-nameилиremaining-quota-tokens-header-nameявляется оценкой для информационных целей, но может быть больше, чем ожидалось на основе фактического потребления маркеров. Значение является более точным по мере приближения квоты. - Для моделей, которые принимают входные данные изображения, маркеры изображений обычно учитываются серверной языковой моделью и включаются в вычисления ограничения и квоты. Однако при использовании или
estimate-prompt-tokensустановкеtrueпотоковой передачи политика в настоящее время пересчитывает каждый образ как максимальное число 1200 маркеров. - Управление API использует один счетчик для каждого
counter-keyзначения, указанного в политике. Счетчик обновляется во всех областях, в которых политика настроена с этим значением ключа. Если вы хотите настроить отдельные счетчики в разных областях (например, определенный API или продукт), укажите разные значения ключей в разных областях. Например, добавьте строку, которая определяет область к значению выражения. - Уровни v2 используют алгоритм token bucket для ограничения скорости, который отличается от алгоритма скользящего окна в классических уровнях. Из-за этой разницы в реализации, когда вы настраиваете лимиты токенов в уровнях v2 на нескольких областях с использованием одного и того
counter-keyже , убедитесь, что значениеtokens-per-minuteодинаковое для всех экземпляров политик. Несогласованные значения могут привести к непредсказуемому поведению. - Эта политика отслеживает использование маркеров независимо от каждого шлюза, в котором она применяется, включая шлюзы рабочей области и региональные шлюзы в развертывании с несколькими регионами. Он не агрегирует количество маркеров во всем экземпляре.
Примеры
Ограничение скорости токенов
В следующем примере ограничение скорости токена составляет 5000 в минуту, задается IP-адресом вызывающего абонента. Политика не оценивает количество маркеров, необходимых для запроса. После каждого выполнения политики остальные маркеры, разрешенные для этого ВЫЗЫВАющего IP-адреса в период времени, хранятся в переменной 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>
Квота маркера
В следующем примере квота маркера 10000 определяется идентификатором подписки и сбрасывается ежемесячно. После каждого выполнения политики количество оставшихся маркеров, разрешенных для этого идентификатора подписки в период времени, хранится в переменной remainingQuotaTokens.
<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>
Связанные политики
- Ограничение скорости и квоты
- политика azure-openai-token-limit
- политика метрики llm-emit-token-metric
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Репозиторий игровой площадки политики
- Набор средств политики Управление API Azure
- Получите помощь Copilot для создания, объяснения и устранения неполадок в политике