Rivya AI Docs

Посібник Rivya з життєвого циклу завдання

Зрозумійте статус завдання Rivya, резервування кредитів, надсилання провайдеру, callback-и, polling, історію, сповіщення, невдачі й кредити.

Востаннє переглянуто 2026/04/28

Використовуйте цей посібник, коли потрібно зрозуміти, що відбувається після надсилання завдання генерації зображення, відео або аудіо в Rivya.

Він пояснює стани завдання, резервування кредитів, завершення провайдером, історію, сповіщення і обробку невдалих завдань в одному місці.

Реальні стани завдання

Поточний асинхронний життєвий цикл генерації використовує чотири видимі стани:

  • WAITING
  • GENERATING
  • SUCCESS
  • FAILED

Ці стани зберігаються в ai_task і повторно використовуються в Studio, історії, dashboard і потоці сповіщень.

Що відбувається під час надсилання

1. Rivya валідує запит

Перш ніж щось дійде до провайдера, Rivya перевіряє:

  • модель існує
  • пряма генерація увімкнена для цієї моделі
  • runtime базується на асинхронних завданнях
  • довжина промпта валідна
  • параметри форми нормалізовані
  • референсні файли відповідають тому, що приймає модель

Деякі моделі мають додаткові правила. Наприклад, audio isolation потребує завантажений аудіофайл і перевірку тривалості.

2. Rivya створює запис завдання

Rivya спершу створює запис ai_task зі статусом WAITING.

Цей запис зберігає модель, категорію, промпт, params, зарезервовані кредити, billing type, а пізніше - результат або стан невдачі.

3. Credits витрачаються до надсилання провайдеру

Це важливо: для асинхронної генерації Rivya витрачає кредити завдання до надсилання роботи зовнішньому сервісу.

Якщо кредитів замало:

  • завдання позначається як невдале
  • зовнішній сервіс взагалі не викликається
  • може створитися сповіщення про недостатню кількість кредитів

4. Створюється завдання провайдера

Якщо кредити доступні, Rivya надсилає завдання до відповідного зовнішнього сервісу і зберігає upstream task ID.

У цей момент статус переходить у GENERATING.

Як Rivya дізнається результат

Rivya підтримує два шляхи завершення:

  • callback провайдера в середовищах, де callbacks увімкнені
  • оновлення статусу і polling, коли завершення через callback недоступне

Шлях callback також перевіряє webhook signature перед фіналізацією завдання.

Якщо callback приходить до того, як результат провайдера повністю готовий, Rivya може відкласти завершення і спробувати знову через перевірку upstream status.

Шлях успіху

У разі успіху Rivya:

  • зберігає URL результатів
  • встановлює статус SUCCESS
  • завершує розрахунок завдання
  • робить результат доступним в історії генерацій
  • створює сповіщення про успішну генерацію

Саме тому завершене зображення або відео залишається видимим після виходу зі сторінки.

Шлях невдачі

У разі невдачі Rivya:

  • зберігає повідомлення про помилку
  • встановлює статус FAILED
  • повертає кредити, коли невдача сталася після резервування і має бути скасована
  • створює сповіщення про невдалу генерацію для довготривалої перевірки

Це відрізняється від тимчасового toast-повідомлення. Невдача стає частиною запису акаунта.

Де ви бачите стан завдання

Те саме завдання може з'являтися в кількох місцях:

Цей спільний стан - одна з причин, чому продукт відчувається узгодженим, а не одноразовим.

Чим відрізняється Chat

Chat також є оплачуваним, але він не використовує той самий запис асинхронного завдання. Ходи чату зберігаються як:

  • чат-сесії
  • чат-повідомлення

Для чат-моделей на основі токенів Rivya може спершу зарезервувати кредити, а потім розрахувати фінальну суму після повернення даних використання. Якщо фінальна сума нижча, різниця повертається.

Отже, широке правило таке:

  • генерація зображень, відео й аудіо використовує ai_task
  • chat використовує збережені сесії й розрахунок на рівні повідомлень

Читати далі

Чеклист стану завдання

Коли генерація заплутана, повільна, невдала або відсутня, перевірте:

  • Спершу визначте тип завдання: розрахунок чату, зображення, відео, аудіо або чат із підтримкою інструментів.
  • Перевірте, чи кредити були зарезервовані до надсилання провайдеру або розраховані після даних використання.
  • Шукайте callback провайдера, результат polling, елемент історії і сповіщення до припущення, що результат втрачено.
  • Відокремлюйте невдачі, які користувач може виправити, від невдач провайдера або інфраструктури.
  • Підтвердьте, чи невдале завдання має повернути кредити перед повторним запуском того самого промпта.

Повторно перевірте перед новим запуском

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

Зміст