Документация Rivya AI

Руководство по жизненному циклу задач Rivya

Разберитесь со статусами задач Rivya, резервированием credits, отправкой провайдеру, callback или polling, историей, уведомлениями, отказами и отличиями расчетов в Chat.

Последняя проверка: 2026/04/28

Используйте это руководство, когда нужно понять, что происходит после отправки задачи генерации изображения, видео или аудио в Rivya.

Здесь в одном месте объясняются статусы задач, резервирование credits, завершение у провайдера, история, уведомления и обработка неудачных задач.

Реальные статусы задач

Текущий асинхронный жизненный цикл генерации использует четыре видимых статуса:

  • WAITING
  • GENERATING
  • SUCCESS
  • FAILED

Эти статусы хранятся в ai_task и переиспользуются в Studio, истории, dashboard и потоке уведомлений.

Что происходит после отправки

1. Rivya проверяет запрос

Прежде чем что-либо попадет к провайдеру, Rivya проверяет:

  • существует ли модель
  • включена ли для этой модели прямая генерация
  • основан ли runtime на асинхронных задачах
  • допустима ли длина prompt
  • нормализованы ли параметры формы
  • соответствуют ли reference-файлы тому, что принимает модель

У некоторых моделей есть дополнительные правила. Например, для изоляции аудио нужен загруженный аудиофайл и проверка длительности.

2. Rivya создает запись задачи

Сначала Rivya создает запись ai_task со статусом WAITING.

В этой записи сохраняются модель, категория, prompt, параметры, зарезервированные credits, тип биллинга, а позже результат или состояние отказа.

3. Credits расходуются до отправки провайдеру

Это важно: для асинхронной генерации Rivya списывает credits задачи до отправки задания вверх по цепочке.

Если credits недостаточно:

  • задача помечается как неудачная
  • внешний сервис не вызывается
  • может быть создано уведомление о нехватке credits

4. Создается задача у провайдера

Если credits хватает, Rivya отправляет задачу в соответствующий внешний сервис и сохраняет ID задачи у провайдера.

В этот момент статус меняется на GENERATING.

Как Rivya узнает результат

Rivya поддерживает два пути завершения:

  • callback провайдера в средах, где callbacks включены
  • обновление статуса и polling, когда завершение через callback недоступно

Путь через callback также проверяет подпись webhook перед финализацией задачи.

Если callback приходит до того, как результат у провайдера полностью готов, Rivya может отложить обработку и попробовать снова, проверив внешний статус.

Успешный путь

При успехе Rivya:

  • сохраняет URL результатов
  • устанавливает статус SUCCESS
  • закрывает расчет по задаче
  • делает результат доступным в истории генераций
  • создает уведомление об успешной генерации

Поэтому готовое изображение или видео остается видимым даже после ухода со страницы.

Путь отказа

При отказе Rivya:

  • сохраняет сообщение об ошибке
  • устанавливает статус FAILED
  • возвращает credits, если отказ произошел после резервирования и должен быть отменен
  • создает уведомление о неудачной генерации для последующего просмотра

Это отличается от временного toast-сообщения. Отказ становится частью записи аккаунта.

Где виден статус задачи

Одна и та же задача может появляться в нескольких местах:

  • в активной Studio, пока она выполняется
  • в истории после завершения
  • в центре уведомлений для важных исходов
  • в /dashboard среди недавних генераций

Общее состояние задачи помогает продукту ощущаться цельным, а не одноразовым.

Чем отличается Chat

Chat тоже оплачивается, но не использует ту же асинхронную запись задачи. Ходы в Chat сохраняются как:

  • чат-сессии
  • сообщения чата

Для чат-моделей с оплатой по токенам Rivya может сначала зарезервировать credits, а затем закрыть итоговую сумму после получения фактического использования. Если итоговая сумма ниже, разница возвращается.

Общее правило такое:

  • генерация изображений, видео и аудио использует ai_task
  • Chat использует сохраненные сессии и расчет на уровне сообщений

Что читать дальше

Чеклист статуса задачи

Когда генерация выглядит непонятной, идет медленно, завершилась неудачно или пропала, проверьте:

  • Сначала определите тип задачи: расчет Chat, изображение, видео, аудио или chat с инструментом.
  • Проверьте, были ли credits зарезервированы до отправки провайдеру или рассчитаны после фактического использования.
  • Найдите callback провайдера, результат polling, элемент истории и уведомление, прежде чем считать результат потерянным.
  • Отделите ошибки, которые может исправить пользователь, от отказов провайдера или инфраструктуры.
  • Перед повторным запуском того же prompt подтвердите, должна ли неудачная задача вернуть credits.

Проверьте перед повторным запуском

Проверяйте состояние, когда тот же prompt продолжает падать, задача слишком долго остается в процессе, credits выглядят списанными без результата или вы собираетесь отправить более тяжелый повторный запуск.

Содержание