Лимиты запросов
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 перед отправкой серии запросов.
- Используйте отдельные ключи для разных нагрузок для изоляции лимитов.
- Реализуйте экспоненциальную задержку с джиттером для повторных попыток.
- Установите дневные бюджеты на ключи автоматизированных систем для предотвращения неконтролируемых расходов.