Ограничение использования маркера API OpenAI в Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Базовая версия 2 | Стандартный | Standard v2 | Премия
Политика azure-openai-token-limit
предотвращает пики использования API службы OpenAI Azure на основе ключа путем ограничения потребления маркеров языковой модели до указанного числа в минуту. При превышении использования маркера вызывающий объект получает 429 Too Many Requests
код состояния ответа.
Используя метрики использования маркеров, возвращаемые из конечной точки OpenAI, политика может точно отслеживать и применять ограничения в режиме реального времени. Политика также включает предварительное вычисление маркеров запроса Управление API, минимизируя ненужные запросы к серверной части OpenAI, если ограничение уже превышено.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Поддерживаемые модели службы OpenAI Azure
Политика используется с API- интерфейсами, добавленными в Управление API из службы Azure OpenAI следующих типов:
Тип API | Поддерживаемые модели |
---|---|
Завершение чата | gpt-3.5 gpt-4 |
Completion | gpt-3.5-turbo-instruct |
Внедрение | text-embedding-3-large text-embedding-3-small text-embedding-ada-002 |
Для получения дополнительной информации см. Модели Службы Azure OpenAI.
Правило политики
<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" />
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
counter-key | Ключ, используемый для политики ограничения маркеров. Для каждого значения ключа используется один счетчик для всех областей, для которых настроена политика. Допустимы выражения политики. | Да | Н/П |
токены в минуту | Максимальное количество маркеров, потребляемых запросом и завершением в минуту. | Да | Н/П |
estimate-prompt-token | Логическое значение, определяющее, следует ли оценить количество маркеров, необходимых для запроса: - true : оцените количество токенов на основе схемы запроса в API; может снизить производительность. - false : не оцените маркеры запроса. Если задано значение false , остальные маркеры counter-key вычисляются с помощью фактического использования маркеров из ответа модели. Это может привести к отправке запросов в модель, превышающую ограничение маркера. В таком случае это будет обнаружено в ответе, и все успешные запросы будут заблокированы политикой до тех пор, пока ограничение маркера не будет освобождено снова. |
Да | Н/П |
retry-after-header-name | Имя пользовательского заголовка ответа, значение которого является рекомендуемой интервалом повтора в секундах после превышения указанного tokens-per-minute значения. Выражения политики не допускаются. |
No | Retry-After |
retry-after-variable-name | Имя переменной, которая сохраняет рекомендуемый интервал повторных попыток в секундах после превышения указанного tokens-per-minute значения. Выражения политики не допускаются. |
No | Н/П |
остальные токены-заголовок-name | Имя заголовка ответа, значение которого после каждого выполнения политики — это количество оставшихся маркеров, разрешенных для интервала времени. Выражения политики не допускаются. | No | Н/П |
остальные токены-переменные-name | Имя переменной, которая после каждого выполнения политики сохраняет количество оставшихся маркеров, разрешенных для интервала времени. Выражения политики не допускаются. | No | Н/П |
token-consumed-header-name | Имя заголовка ответа, значение которого — количество маркеров, потребляемых как запросом, так и завершением. Заголовок добавляется в ответ только после получения ответа от серверной части. Выражения политики не допускаются. | No | Н/П |
token-consumed-variable-name | Имя переменной, инициализированной с предполагаемым количеством маркеров в запросе в разделе конвейера, backend если estimate-prompt-tokens значение равно true нулю. Переменная обновляется с указанным числом при получении ответа в outbound разделе. |
No | Н/П |
Использование
- Разделы политики: inbound.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, локальная, рабочая область
Примечания об использовании
- Эту политику можно использовать несколько раз для определения политики.
- Эта политика может быть настроена при добавлении API из службы Azure OpenAI с помощью портала.
estimate-prompt-tokens
Если задано значениеfalse
, значения в разделе использования ответа из API службы Azure OpenAI используются для определения использования маркеров.- Некоторые конечные точки Azure OpenAI поддерживают потоковую передачу ответов. Если
stream
задано значениеtrue
в запросе API для включения потоковой передачи, маркеры запроса всегда оцениваются независимо от значения атрибутаestimate-prompt-tokens
. Маркеры завершения также оцениваются при потоковой передаче ответов. - Управление API использует один счетчик для каждого
counter-key
значения, указанного в политике. Счетчик обновляется во всех областях, в которых политика настроена с этим значением ключа. Если вы хотите настроить отдельные счетчики в разных областях (например, определенный API или продукт), укажите разные значения ключей в разных областях. Например, добавьте строку, которая определяет область к значению выражения.
Пример
В следующем примере ограничение маркера в 5000 в минуту определяется IP-адресом вызывающего объекта. Политика не оценивает количество маркеров, необходимых для запроса. После каждого выполнения политики остальные маркеры, разрешенные для этого ВЫЗЫВАющего IP-адреса в период времени, хранятся в переменной 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>
Связанные политики
- Ограничение скорости и квоты
- Политика llm-token-limit
- политика метрик azure-openai-emit-token-metric
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Создание политик с помощью Microsoft Copilot в Azure