Skip to main content

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

Понимание лимитов запросов и способов их корректной обработки.

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

Следующие лимиты применяются на пользователя:

ЛимитЗначениеОбласть
Запросов в минуту100На пользователя
Токенов в минуту100,000На пользователя
Запросов в день10,000На пользователя

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

При превышении лимита (статус 429) ответ включает заголовок Retry-After:

Обработка лимитов

Реализуйте логику повторных попыток с экспоненциальной задержкой:

retry-with-backoff.ts
async function retryWithBackoff<T>(
  fn: () => Promise<T>,
  maxRetries = 3
): Promise<T> {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error: any) {
      if (error.status === 429 && i < maxRetries - 1) {
        // Get retry delay from header or use exponential backoff
        const retryAfter = error.headers?.get("Retry-After");
        const delay = retryAfter
          ? parseInt(retryAfter) * 1000
          : Math.pow(2, i) * 1000;

        console.log(`Rate limited. Retrying in ${delay}ms...`);
        await new Promise(resolve => setTimeout(resolve, delay));
        continue;
      }
      throw error;
    }
  }
  throw new Error("Max retries exceeded");
}

// Usage
const response = await retryWithBackoff(() =>
  client.chat.completions.create({
    model: "Qwen/Qwen3-235B",
    messages: [{ role: "user", content: "Hello!" }]
  })
);

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

Следуйте этим рекомендациям для избежания превышения лимитов:

  • Реализуйте клиентское ограничение Добавляйте задержки между запросами.
  • Группируйте запросы Объединяйте несколько операций в меньшее число API-вызовов.
  • Кешируйте ответы Сохраняйте и повторно используйте ответы для идентичных запросов.
Была ли эта страница полезной?