Перейти к содержимому

Лимиты запросов

Claudexia применяет лимиты запросов для обеспечения справедливого использования и стабильности API. На этой странице описаны значения по умолчанию, настройка и обработка ошибок 429.

Лимиты по умолчанию

Новые API-ключи начинают с этих лимитов по умолчанию:

МетрикаЛимит по умолчанию
Запросов в минуту60
Токенов в минуту100,000
Параллельных запросов10

Настройка для каждого ключа

Лимиты можно настроить для каждого ключа в личном кабинете > API-ключи.

Настраиваемые лимиты:

  • Запросов в минуту (RPM)
  • Максимум токенов на запрос
  • Дневной / недельный / месячный бюджет

Заголовки лимитов

Каждый ответ API включает заголовки с информацией о лимитах:

ЗаголовокОписание
X-RateLimit-LimitМаксимальное количество запросов в текущем окне
X-RateLimit-RemainingОставшиеся запросы в текущем окне
X-RateLimit-ResetВремя сброса окна лимита (Unix timestamp)

Обработка ошибок 429

При достижении лимита API возвращает HTTP 429. Используйте экспоненциальную задержку для повторных попыток:

python
import time
import requests

def request_with_backoff(url, headers, data, max_retries=5):
    for attempt in range(max_retries):
        response = requests.post(url, headers=headers, json=data)
        if response.status_code == 429:
            wait = 2 ** attempt  # 1, 2, 4, 8, 16 seconds
            print(f"Rate limited. Retrying in {wait}s...")
            time.sleep(wait)
            continue
        return response
    raise Exception("Max retries exceeded")
typescript
async function requestWithBackoff(
  url: string, options: RequestInit, maxRetries = 5
) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const res = await fetch(url, options);
    if (res.status === 429) {
      const wait = 2 ** attempt * 1000;
      console.log(`Rate limited. Retrying in ${wait}ms...`);
      await new Promise(r => setTimeout(r, wait));
      continue;
    }
    return res;
  }
  throw new Error("Max retries exceeded");
}

Лучшие практики

  • Проверяйте X-RateLimit-Remaining перед отправкой серии запросов.
  • Используйте отдельные ключи для разных нагрузок для изоляции лимитов.
  • Реализуйте экспоненциальную задержку с джиттером для повторных попыток.
  • Установите дневные бюджеты на ключи автоматизированных систем для предотвращения неконтролируемых расходов.