Лимит задач API#
API генерации используют асинхронную обработку задач. При успешном создании задачи API возвращает taskId. Используйте конечную точку получения результата, чтобы проверять статус задачи, ход выполнения, позицию в очереди и итоговый результат.
Этот документ описывает публичные лимиты задач для интеграций API, включая запросы в минуту, незавершённые задания и то, как тарифицируются кредиты при отправке нескольких задач.
Сводка ограничений частоты запросов#
API генерации не используют фиксированный публичный лимит запросов в минуту для создания задач. Практический лимит основан на том, сколько незавершённых заданий есть у аккаунта одновременно.
| Рабочий процесс | Запросы в минуту | Одновременные / незавершённые задания | Тарификация кредитов |
|---|---|---|---|
| AI 3D | Нет фиксированного публичного лимита RPM | 1 активное задание одновременно. Дополнительные отправленные задания ожидают в очереди. | Тарифицируется за каждую принятую задачу |
| Другие API генерации | Нет фиксированного публичного лимита RPM | До 30 незавершённых заданий на аккаунт и рабочий процесс | Тарифицируется за каждую принятую задачу |
Незавершённые задания включают как задания в очереди, так и активные задания.
Лимит в 30 заданий — это лимит количества задач, а не пакет кредитов или бесплатная квота. Каждая принятая задача генерации тарифицируется согласно правилам кредитов этого API.
Статус задачи#
| Статус | Значение | Учитывается как незавершённое |
|---|---|---|
Unprocessed | Задача принята и ожидает запуска | Да |
Processing | Задача сейчас выполняется | Да |
Success | Задача успешно завершена | Нет |
Failed | Задача завершилась ошибкой | Нет |
Конечная точка результата также может возвращать waitNumber, что указывает на позицию в очереди для ожидающей задачи. Когда задача выполняется или завершена, waitNumber обычно равно 0.
Задачи AI 3D#
Задачи AI 3D обрабатываются по одной.
Вы можете отправлять несколько задач AI 3D, и каждая успешная отправка возвращает taskId. Однако одновременно выполняется только одна задача AI 3D. Дополнительные задачи AI 3D ожидают, пока текущая задача не завершится.
Рекомендуемое поведение интеграции:
- Сохраняйте возвращённый
taskId. - Опрашивайте конечную точку результата каждые 3-5 секунд.
- Рассматривайте
Unprocessedкак ожидание. - Рассматривайте
Processingкак активное выполнение. - Используйте
waitNumberиpercentage, чтобы показывать прогресс вашим пользователям.
Другие задачи генерации#
Для рабочих процессов генерации, отличных от AI 3D, каждый аккаунт может иметь до 30 незавершённых заданий для одного и того же рабочего процесса.
Это лимит на уровне аккаунта. Если под одним и тем же аккаунтом создано несколько ключей API, они разделяют один и тот же лимит.
Это не всегда означает, что все 30 заданий выполняются одновременно. Часть заданий может ожидать в очереди, а часть — выполняться. Лимит учитывает обе группы.
Когда у аккаунта уже есть 30 незавершённых заданий для рабочего процесса, новые отправки задач для этого рабочего процесса могут быть временно отклонены, пока существующие задания не завершатся.
| Код | Название | Значение |
|---|---|---|
9015 | TASK_NOT_COMPLETED | Аккаунт достиг лимита незавершённых заданий для этого рабочего процесса. Повторите попытку после завершения существующих заданий. |
Кредиты и незавершённые задания#
Кредиты списываются, когда задача генерации успешно создана. Если задача в конечном счёте завершается ошибкой, списанные кредиты автоматически возвращаются.
Лимит незавершённых заданий не меняет стоимость каждой задачи в кредитах. Если вы отправляете несколько задач, плата списывается отдельно за каждую принятую задачу.
Примеры:
| Пример | Активные незавершённые задания | Списанные кредиты при создании задачи |
|---|---|---|
| Отправить 30 задач по замене мебели | 30 | 30 x 1 кредит = 30 кредитов |
Отправить 30 задач по декорированию дома с modelType: "Base" | 30 | 30 x 3 кредита = 90 кредитов |
Отправить 30 задач по декорированию дома с modelType: "Pro" | 30 | 30 x 10 кредитов = 300 кредитов |
Отправить 10 задач по ландшафтному дизайну Flash, 10 Base и 10 Pro | 30 | 10 x 1 + 10 x 3 + 10 x 10 = 140 кредитов |
Полную таблицу кредитов см. в Справочнике по списанию кредитов.
Опрос конечной точки результата не создаёт новую задачу генерации и не учитывается как незавершённое задание.
Временные ответы о занятости службы#
В некоторых случаях новые отправки задач могут быть временно отклонены, потому что служба занята. Это может происходить даже если у вашего аккаунта меньше, чем 30 незавершённых заданий.
| Код | Название | Значение |
|---|---|---|
5020 | QUEUE_TASK_OVERFLOW | Служба сейчас занята. Повторите попытку позже. |
Это временное состояние. Не рассматривайте его как постоянный сбой.
Рекомендуемое поведение клиента#
- Сохраняйте каждый возвращённый
taskId. - Регулярно опрашивайте статус задачи.
- Ведите локальный список незавершённых заданий по аккаунту и рабочему процессу.
- Удаляйте задания из списка незавершённых, когда статус становится
SuccessилиFailed. - Для рабочих процессов, не относящихся к AI-3D, держите количество незавершённых заданий на уровне не выше 30 перед отправкой новых.
- Если вы получаете
9015или5020, повторите попытку после задержки.
Рекомендуемое поведение при повторе:
| Ситуация | Рекомендуемое действие |
|---|---|
9015 TASK_NOT_COMPLETED | Дождитесь завершения существующих заданий от того же аккаунта и рабочего процесса, затем повторите попытку. |
5020 QUEUE_TASK_OVERFLOW | Подождите и повторяйте попытки, увеличивая задержку между ними. |
Задача в состоянии Unprocessed | Продолжайте опрос; задача ожидает. |
Задача в состоянии Processing | Продолжайте опрос; задача выполняется. |
Нужна более высокая пропускная способность?#
Если стандартный лимит 30 незавершённых заданий на аккаунт и рабочий процесс не соответствует потребностям вашей интеграции, напишите на [email protected]. Мы рассмотрим ваш сценарий и обсудим повышение пропускной способности или индивидуальные условия обслуживания.