Skip to main content

Краткий ответ

APIYI на данный момент НЕ предоставляет интерфейс асинхронного запроса по task-ID для генерации изображений. Все модели image generation работают синхронно: запрос открывает длинное соединение → ожидает генерацию → возвращает image напрямую. Мы работаем как upstream pass-through и не храним никакие бизнес-данные пользователя, поэтому не можем предложить «повторное подключение по ID для получения ранее сгенерированного результата». Мы рекомендуем установить разумный timeout на стороне клиента, поддерживать соединение активным и вести записи запросов/ответов в вашем собственном backend.
Если говорить простыми словами: синхронные вызовы + разумный timeout + записи задач на стороне клиента = по сути легковесная асинхронная очередь, которую вы контролируете. Восприятие для конечного пользователя почти такое же.

Почему нет асинхронного запроса по Task-ID?

Сквозная передача upstream

Наши эндпоинты генерации изображений в точности повторяют синхронное поведение официального upstream API, без дополнительного слоя очереди, который мог бы внести несогласованность или задержку

Конфиденциальность и безопасность в первую очередь

Для защиты конфиденциальности пользователей и безопасности данных мы не записываем никакое бизнес-содержимое (prompt, сгенерированные изображения), поэтому получение прошлых результатов по ID невозможно по замыслу

Синхронный режим покрывает большинство случаев

При правильно настроенном timeout и подключении keep-alive подавляющее большинство запросов на генерацию изображений успешно завершается за один вызов

Рекомендуемый подход

1

Используйте долгоживущие соединения + разумный timeout на клиенте

Установите timeout вашего HTTP client на безопасную верхнюю границу времени генерации модели (обычно 60–300 секунд в зависимости от модели) и включите keep-alive, чтобы промежуточные сетевые уровни не разрывали соединение раньше времени.Время генерации существенно отличается между моделями — обратитесь в support за таблицей рекомендованных timeout по моделям.
2

Ведите учет задач и ответов в своем backend

Поскольку мы не храним бизнес-данные, создавайте бизнес-ID задачи для каждого запроса и сохраняйте prompt, параметры и финальный результат (или ошибку) в вашей базе данных. Даже если frontend отключится, в вашем backend все равно останется полный журнал.
3

Реализуйте собственную async-обертку

Если вашему продукту обязательно нужен async-режим (например, frontend не может ждать долго выполняющийся вызов), добавьте тонкий async-слой в backend:
  • Frontend отправляет POST на task → backend ставит в очередь → возвращает бизнес-ID задачи
  • backend worker синхронно вызывает APIYI → записывает результат обратно в базу данных
  • Frontend опрашивает или подписывается через WebSocket, используя свой task ID
По сути это эквивалентно нативному async API платформы, и все ваши данные остаются под вашим контролем.

Клиентская асинхронная обертка (Справка)

Ключевая идея: идентификатор бизнес-задачи генерируется вашим кодом и сохраняется в вашей базе данных. APIYI отвечает только за шаг «синхронной генерации».

Часто задаваемые вопросы

Большинство таймаутов связано либо с слишком коротким таймаутом клиента, либо с промежуточным сетевым уровнем (reverse proxy, шлюз и т. д.), который преждевременно разрывает длительное соединение.Порядок устранения неполадок:
  1. Проверьте, что таймаут чтения вашего HTTP-клиента увеличен до 60–300 секунд
  2. Проверьте, что у промежуточных уровней (nginx, API-шлюз, CDN) тоже увеличены таймауты
  3. Включите keep-alive, чтобы предотвратить принудительное разъединение
  4. Обратитесь в поддержку за рекомендуемым таймаутом для вашей конкретной модели
К сожалению, нет. Мы работаем как upstream pass-through и не сохраняем результаты генерации. Если синхронный вызов прерывается из-за таймаута, результат теряется, и клиент должен повторить попытку.Решение — заранее установить достаточно большой таймаут, чтобы не обрывать запрос, который вот-вот должен был успешно завершиться.
Мы понимаем, что некоторые upstream-платформы работают медленно и что в таких случаях async удобнее. Мы можем добавить async-возможности в будущем, но сроков пока нет — никаких обещаний. До тех пор, пожалуйста, следуйте подходу «async-обертки на стороне клиента», описанному выше.
Да — генерация видео по своей природе асинхронна (по задумке upstream). Она возвращает task_id, а клиент опрашивает статус задачи, чтобы получить финальное видео. Это отличается от синхронных эндпоинтов генерации изображений — пожалуйста, следуйте документации для конкретной модели.
Время генерации сильно различается между моделями (некоторым требуется несколько секунд, другим — 30+ секунд или даже 3–5 минут). См. справочную таблицу по таймаутам для каждой модели в Основы и лучшие практики Image API или обратитесь в поддержку для особых случаев.

Связанная документация

Основы и лучшие практики Image API

Таблица таймаутов по моделям, обработка base64 и справка по выходным данным URL

Создайте собственную асинхронную очередь

Инженерное руководство по оборачиванию синхронного API в очередь задач

Руководство по выбору модели

Возможности и варианты использования каждой модели генерации изображений

Параллельные запросы API и лимит запросов

Ограничения на параллельные запросы, лимит запросов и лучшие практики

Журналы вызовов и данные

Наша политика хранения данных и управление журналами

Свяжитесь со службой поддержки

Получите таблицу таймаутов по моделям или дальнейшую консультацию