Лимиты запросов
Лимиты запросов OfoxAI обеспечивают стабильность платформы. Ознакомьтесь с правилами ограничений и оптимизируйте стратегию вызовов.
Лимиты по умолчанию
OfoxAI работает по модели оплаты за использование, все пользователи имеют единую политику лимитов:
| Параметр | Лимит |
|---|---|
| RPM (запросов/мин) | 200 |
| TPM (токенов/мин) | Без ограничений |
Если вам необходима более высокая квота RPM, свяжитесь с поддержкой OfoxAI для корректировки.
Rate Limit Header
Каждый ответ API содержит информацию о лимитах:
x-ratelimit-limit-requests: 200
x-ratelimit-remaining-requests: 195
x-ratelimit-reset-requests: 12s| Заголовок | Описание |
|---|---|
x-ratelimit-limit-requests | Значение лимита RPM |
x-ratelimit-remaining-requests | Оставшееся количество запросов |
x-ratelimit-reset-requests | Время сброса лимита запросов |
Обработка ошибки 429
При срабатывании ограничения API возвращает 429 Too Many Requests:
from openai import RateLimitError
import time
try:
response = client.chat.completions.create(...)
except RateLimitError as e:
retry_after = float(e.response.headers.get("retry-after", 1))
print(f"Сработал лимит, ожидание {retry_after}s...")
time.sleep(retry_after)Стратегии оптимизации
1. Использование Prompt Caching
Для повторяющихся системных промптов включение кэширования помогает снизить потребление токенов:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# Длинные системные промпты кэшируются автоматически
{"role": "system", "content": "Вы — профессиональный... (длинный текст опущен)"},
{"role": "user", "content": "Вопрос пользователя"}
]
)Подробности см. в разделе Кэширование промптов.
2. Пакетная обработка
Объединяйте несколько коротких запросов в один:
# ❌ Не рекомендуется: отдельный запрос для каждого вопроса
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# ✅ Рекомендуется: объединить в один запрос
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"Пожалуйста, ответьте на следующие вопросы по порядку:\n{combined}"}]
)3. Выбор подходящей модели
| Сценарий | Рекомендуемая модель | Причина |
|---|---|---|
| Простой диалог | openai/gpt-4o-mini | Быстро, экономия токенов |
| Сложные рассуждения | openai/gpt-4o | Высококачественный вывод |
| Генерация кода | anthropic/claude-sonnet-4.5 | Отличные возможности кодирования |
| Обработка длинных текстов | google/gemini-3-flash-preview | Большой контекст, выгодная цена |
4. Управление max_tokens
Устанавливайте разумные ограничения max_tokens, чтобы избежать ненужного расхода токенов:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Резюмируйте одним предложением"}],
max_tokens=100 # Ограничение длины вывода
)5. Использование аварийного переключения моделей
Автоматическое переключение на резервную модель при достижении лимита основной:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}
}
)Подробности см. в разделе Аварийное переключение.