Ограничение частоты
Ограничение частоты — это ограничения, которые наш API накладывает на количество обращений пользователя или клиента к нашим сервисам за определённый период времени.
Зачем нужны ограничения
Мы ввели ограничение частоты в нашем API, чтобы обеспечить наилучший опыт для всех. Вот почему это важно:
-
Чтобы наш сервис оставался безопасным и стабильным! Представьте ограничение частоты как дружелюбных охранников — они следят за тем, чтобы никто не перегружал наш API слишком большим количеством запросов одновременно. Это помогает защитить сервис от потенциальных злоупотреблений и поддерживает его бесперебойную работу.
-
Чтобы у всех была справедливая доля ресурсов. Как и при совместном использовании игрушек на детской площадке, мы хотим, чтобы у всех наших пользователей был равный доступ к API. Мягко ограничивая количество запросов, которые может сделать каждый пользователь, мы гарантируем, что никому не придётся слишком долго ждать своей очереди.
-
Чтобы производительность оставалась быстрой и надёжной. Управляя общим потоком запросов, мы можем поддерживать быстрое время отклика и стабильную работу сервиса для всех наших замечательных пользователей. Это как следить за тем, чтобы шоссе не было слишком загружено — движение идёт лучше, когда мы предотвращаем заторы!
Как работают ограничения
Ограничение частоты измеряется двумя способами:
- Запросов в секунду: это количество сетевых запросов, которые вы можете делать в секунду.
- Задачи в очереди: это количество параллельных задач генерации, которые вы можете одновременно выполнять в очереди в любой момент времени.
Задачи в очереди — это задачи в вашем аккаунте со статусом PENDING или IN_PROGRESS. Каждый эндпоинт, создающий задачу (например, Текст в 3D, Изображение в 3D, Мульти-изображение в 3D, Ретекстурирование, Ремешинг, Rigging, Анимация, Текст в изображение, эндпоинты 3D-печати и Creative Lab), проверяет этот лимит перед принятием новой задачи. Запросы, которые не создают задачу, такие как Balance, Usage, а также получение, получение списка или потоковая передача задач, не учитываются в этом лимите, хотя они по-прежнему учитываются при подсчёте запросов в секунду.
Лимиты применяются на уровне аккаунта, поэтому они являются общими для всех ваших API-ключей и Playground. Задачи, запущенные вами в веб-приложении Meshy, также учитываются в ваших задачах в очереди.
Помимо ограничения частоты, на скорость выполнения ваших задач также влияет приоритет обработки задач.
Каждый уровень пользователя имеет определённые ограничения частоты и уровни приоритета, разработанные с учётом его потребностей. Вот текущие лимиты по уровням:
| Уровень пользователя | Запросов в секунду | Задачи в очереди | Уровень приоритета |
|---|---|---|---|
| Pro | 20 | 10 | По умолчанию |
| Premium | 20 | 30 | Выше, чем у Pro |
| Ultra | 20 | 100 | Наивысший |
| Studio | 20 | 20 | Выше, чем у Pro |
| Enterprise | 100 | По умолчанию 100, можно настроить | Наивысший |
Если вы превысите эти лимиты, вы получите ответ 429 Too Many Requests от нашего API. Есть два типа ситуаций, которые могут это вызвать, каждая с отдельным ответом:
- Превышение по запросам: это происходит, когда вы делаете слишком много запросов в секунду. Вы получите ответ
429 Too Many Requestsс сообщениемRate limit exceeded. - Превышение по очереди: это происходит, когда у вас слишком много параллельных задач генерации выполняется одновременно. Вы получите ответ
429 Too Many Requestsс сообщениемNoMorePendingTasks(или, когда у вас закончатся кредиты,NoMoreConcurrentTasks). Этот429не содержитRetry-After: дождитесь завершения одной из ваших задач, прежде чем создавать новую.
Заголовки ограничения частоты
Ответы API содержат эти заголовки, чтобы вы могли регулировать темп своих запросов:
| Заголовок | Описание |
|---|---|
X-RateLimit-Limit | Количество запросов, разрешённых в секунду для вашего уровня. |
X-RateLimit-Remaining | Количество оставшихся запросов в текущей секунде. |
X-RateLimit-Reset | Количество секунд до полного восстановления вашего лимита. |
Retry-After | Количество секунд ожидания перед следующим запросом. Отправляется при превышении по запросам 429, а также когда вы получаете задачу, которая всё ещё имеет статус PENDING или IN_PROGRESS. |
Если присутствует Retry-After, подождите указанное количество секунд перед отправкой следующего запроса.