Docs Rivya AI

Hướng dẫn vòng đời tác vụ trong Rivya

Hiểu task status, credit reservation, provider submission, callbacks, polling, history, notifications, failures và credits trong Rivya.

Đánh giá lần cuối vào 2026/04/28

Dùng hướng dẫn này khi bạn cần hiểu điều gì xảy ra sau khi submit một tác vụ generation image, video hoặc audio trong Rivya.

Nó giải thích task states, credit reservation, provider completion, history, notifications và failed-task handling ở một nơi.

Task states thật sự

Lifecycle generation async hiện dùng bốn trạng thái hiển thị:

  • WAITING
  • GENERATING
  • SUCCESS
  • FAILED

Các trạng thái này được lưu trên ai_task và được tái sử dụng xuyên suốt Studio, history, dashboard và notifications flow.

Điều gì xảy ra khi bạn submit

1. Rivya validate request

Trước khi bất kỳ thứ gì tới provider, Rivya kiểm tra:

  • model có tồn tại không
  • direct generation có được bật cho model đó không
  • runtime có dựa trên async-task không
  • prompt length có hợp lệ không
  • form parameters đã được normalize chưa
  • reference files có khớp với những gì model chấp nhận không

Một số models có rules bổ sung. Ví dụ, audio isolation yêu cầu uploaded audio file cộng với duration verification.

2. Rivya tạo task record

Rivya tạo một entry ai_task trước, với status WAITING.

Record đó lưu model, category, prompt, params, reserved credits, billing type và sau đó là result hoặc failure state.

3. Credits được tiêu trước provider submission

Điều này quan trọng: với async generation, Rivya tiêu task credits trước khi gửi job upstream.

Nếu credits quá thấp:

  • task được đánh dấu failed
  • upstream service không bao giờ được gọi
  • có thể tạo notification insufficient-credit

4. Provider job được tạo

Nếu credits có sẵn, Rivya submit tác vụ tới upstream service tương ứng và lưu upstream task ID.

Lúc đó status chuyển thành GENERATING.

Rivya biết result như thế nào

Rivya hỗ trợ hai đường completion:

  • provider callback trong môi trường có callback enabled
  • status refresh và polling khi callback completion không khả dụng

Đường callback cũng verify webhook signature trước khi finalize một task.

Nếu callback đến trước khi provider result hoàn toàn sẵn sàng, Rivya có thể defer và thử lại bằng cách kiểm tra upstream status.

Success path

Khi thành công, Rivya:

  • lưu result URLs
  • đặt status thành SUCCESS
  • settle task
  • làm output khả dụng trong generation history
  • tạo generation-success notification

Đó là lý do một image hoặc video đã hoàn tất vẫn hiển thị sau khi bạn rời trang.

Failure path

Khi thất bại, Rivya:

  • lưu error message
  • đặt status thành FAILED
  • refund credits khi failure xảy ra sau reservation và nên được reverse
  • tạo generation-failed notification để review bền vững

Điều này khác với một toast tạm thời. Failure trở thành một phần trong record của account.

Bạn thấy task state ở đâu

Cùng một task có thể xuất hiện ở nhiều nơi:

Shared state đó là một trong những lý do sản phẩm có cảm giác coherent thay vì dùng một lần rồi mất.

Chat khác như thế nào

Chat cũng billable, nhưng không dùng cùng async task record. Chat turns được lưu dưới dạng:

  • phiên chat
  • tin nhắn chat

Với token-based chat models, Rivya có thể reserve credits trước rồi settle số tiền cuối sau khi usage quay lại. Nếu số cuối thấp hơn, phần chênh lệch được refund.

Vì vậy quy tắc rộng là:

  • image, video và audio generation dùng ai_task
  • chat dùng saved sessions và message-level settlement

Đọc tiếp

Checklist task state

Khi một generation gây nhầm lẫn, chậm, fail hoặc bị thiếu, hãy kiểm tra:

  • Xác định task type trước: chat settlement, image, video, audio hoặc tool-backed chat.
  • Kiểm tra credits được reserved trước provider submission hay settled sau usage.
  • Tìm provider callback, polling result, history item và notification trước khi giả định result đã mất.
  • Tách user-correctable failures khỏi provider hoặc infrastructure failures.
  • Xác nhận failed task có nên reverse credits trước khi rerun cùng prompt không.

Kiểm tra lại trước khi chạy lại

Hãy kiểm tra lại khi cùng prompt liên tục fail, task ở trạng thái in progress quá lâu, credits trông như đã bị tiêu mà không có output hoặc bạn sắp submit một duplicate run nặng hơn.

Mục lục