Справочник API

Лимиты и повторы

#Как работают лимиты

Лимиты RPM и RPD для каждого ключа. При 429 шлюз передаёт Retry-After; лимиты провайдеров защищены автоматическими выключателями (circuit breaker), чтобы проблемный канал не перегружал всю систему.

Лимиты действуют на уровне ключа, поэтому, разнеся проекты по разным ключам, вы изолируете их ограничения. Лимиты ключа редактируются в разделе Консоль → API-ключи.

#Правильные повторы

Учитывайте Retry-After, если он есть, иначе увеличивайте задержку экспоненциально со случайным разбросом. Ограничьте общее число попыток — о полностью недоступной модели лучше сообщить вызывающей стороне, чем бесконечно повторять запросы.

backoff.py
import time, requests

def call_with_backoff(url, headers, body, tries=5):
    for i in range(tries):
        r = requests.post(url, headers=headers, json=body)
        if r.status_code != 429:
            return r
        # Respect Retry-After (seconds); fall back to 2**i backoff.
        wait = int(r.headers.get("Retry-After", 2 ** i))
        time.sleep(wait)
    r.raise_for_status()

Проблема не решена?

Пришлите нам ID запроса или текст ошибки, и мы разберёмся.