Rivya AI 文档

Rivya 任务生命周期指南

了解 Rivya 生成任务状态、积分预留、上游提交、回调或轮询、历史记录、通知、失败处理以及 Chat 结算差异。

最近审阅于 2026/04/28

当你想了解图片、视频或音频生成提交后发生了什么,可以先看这篇 Rivya 任务生命周期指南。

它把任务状态、积分预留、上游完成方式、历史记录、通知和失败处理放在一起说明,方便判断下一步该等、查状态还是重试。

当前真实任务状态

Rivya 现在的异步生成链路,会使用这四个可见状态:

  • WAITING
  • GENERATING
  • SUCCESS
  • FAILED

这些状态存放在 ai_task 上,并会被创作工作台、历史记录、仪表盘和通知中心共同复用。

提交一次生成时会发生什么

1. 先校验请求

在真正调用上游服务之前,Rivya 会先检查:

  • 模型是否存在
  • 这个模型是否开启了直接生成
  • 它的运行方式是否属于异步任务链路
  • 提示词长度是否合法
  • 表单参数是否被规范化
  • 参考文件是否符合模型要求

有些模型还有额外规则。比如音频分离这类模型,不仅需要音频上传,还要通过时长校验。

2. 先创建任务记录

Rivya 会先创建一条 ai_task,初始状态是 WAITING

这条记录会保存模型、类别、提示词、参数、预留积分、计费类型,以及后续的结果或失败信息。

3. 在提交上游前先消费积分

这里有个很关键的真实行为:对于异步生成任务,Rivya 会先从钱包里扣掉本次任务需要的积分,再提交给上游服务。

如果积分不够:

  • 任务会直接标记为失败
  • 上游服务不会被调用
  • 系统还可以生成一条余额不足通知

4. 创建上游任务

如果积分足够,Rivya 才会把任务提交给对应上游服务,并保存上游任务 ID。

此时状态会变成 GENERATING

Rivya 如何知道任务结束了

当前有两条完成路径:

  • 在支持回调的环境里,通过上游回调把结果写回
  • 当回调不可用时,通过状态刷新和轮询补齐结果

回调路由在真正处理之前,也会先做签名校验。

如果回调到来时,上游结果还没有完全就绪,Rivya 也可能先延后处理,再回头检查一次上游状态。

成功路径

当任务成功时,Rivya 会:

  • 保存结果 URL
  • 把状态设为 SUCCESS
  • 完成结算
  • 让这条结果进入生成历史
  • 创建一条生成成功通知

所以一张图或一段视频不会因为你离开页面就消失。

失败路径

当任务失败时,Rivya 会:

  • 保存错误信息
  • 把状态设为 FAILED
  • 如果属于应退款场景,就把积分退回
  • 创建一条生成失败通知,方便后续回看

这和页面上一闪而过的提示很不一样。失败会变成账号里真正可查的记录。

任务状态会出现在哪里

同一条任务状态,可能会在几个地方同时出现:

  • 当前 Studio 里,任务还在运行时
  • 进入 历史记录 之后
  • 进入 通知中心 之后
  • 出现在 /dashboard 的最近生成记录区块里

正因为这些状态是共享的,整个产品才不会像一次性工具那样断掉。

Chat 为什么不完全一样

Chat 同样会计费,但它不走同一套 ai_task 记录。Chat 会把每次交互保存为:

  • 对话会话
  • 对话消息

对于按 token 计费的对话模型,Rivya 会先预留积分,再根据实际使用量做最终结算;如果实际消耗更低,多余的部分会退回。

所以更准确的理解方式是:

  • 图片、视频、音频生成走 ai_task
  • 对话走保存后的会话和消息结算

下一步建议

任务状态检查清单

当生成任务变慢、失败、找不到结果或状态混乱时,先判断:

  • 先分清任务类型:chat 结算、图片、视频、音频,还是工具型 chat。
  • 检查积分是在提交 provider 前预留,还是按实际用量后结算。
  • 先找 provider 回调、轮询结果、历史记录和通知,不要马上判断结果丢失。
  • 区分用户可以修正的失败,和 provider / 基础设施侧失败。
  • 重跑同一个 prompt 前,先确认失败任务是否应该退回积分。

再次运行前先复核

如果同一个 prompt 连续失败、任务长时间卡住、积分扣了但没有输出,或用户准备提交更重的重复任务,需要先复核。

目录