OpenAI
Эта страница была переведена машинным переводом. Открыть оригинальную статью на английском.

Как устранить ошибки 429: «Too Many Requests»?

Обновлено: 5 days ago

Ошибки лимита запросов ('Слишком много запросов', «Достигнут лимит запросов») возникают, когда вы достигаете лимита запросов вашей организации — максимального числа запросов и токенов, которые можно отправить в минуту. Если лимит достигнут, организация не сможет успешно отправлять запросы, пока лимит запросов не будет сброшен. Сообщение об ошибке выглядит так:

Достигнут лимит запросов для gpt-3.5-turbo в организации org-exampleorgid123 по токенам в минуту. 
Лимит: 10000.000000 / мин. Текущее значение: 10020.000000 / мин.

Мы рекомендуем обрабатывать эти ошибки с помощью экспоненциальной задержки. Экспоненциальная задержка означает короткую паузу при возникновении ошибки лимита запросов, а затем повторную отправку неудачного запроса. Если запрос по-прежнему не выполняется, длительность паузы увеличивается, и процесс повторяется. Это продолжается, пока запрос не будет успешным или пока не будет достигнуто максимальное число повторных попыток.

Поскольку неудачные запросы учитываются в вашем поминутном лимите, непрерывная повторная отправка запроса не сработает. Лимиты запросов могут применяться и к более коротким периодам — например, 1 запрос в секунду при лимите 60 RPM, — то есть короткие всплески большого числа запросов тоже могут приводить к ошибкам лимита запросов. Экспоненциальная задержка хорошо работает, поскольку разносит запросы по времени и снижает частоту таких ошибок.

В Python решение с экспоненциальной задержкой может выглядеть так:

from openai import OpenAI, RateLimitError
import backoff

client = OpenAI()

@backoff.on_exception(backoff.expo, RateLimitError)
def completions_with_backoff(**kwargs):
response = client.completions.create(**kwargs)
return response

(Обратите внимание: библиотека backoff — это сторонний инструмент. Мы рекомендуем всем нашим клиентам тщательно проверять любой внешний код перед использованием в своих проектах.)

Если даже после внедрения экспоненциальной задержки эта ошибка сохраняется, возможно, вам нужно повысить уровень использования. Посмотреть текущие лимиты запросов и узнать, как повысить ваш уровень доверия для увеличения лимитов запросов, можно в разделе лимитов в настройках аккаунта.

Была ли эта статья полезной?