Rivya 任务生命周期指南
了解 Rivya 生成任务状态、积分预留、上游提交、回调或轮询、历史记录、通知、失败处理以及 Chat 结算差异。
最近审阅于 2026/04/28
当你想了解图片、视频或音频生成提交后发生了什么,可以先看这篇 Rivya 任务生命周期指南。
它把任务状态、积分预留、上游完成方式、历史记录、通知和失败处理放在一起说明,方便判断下一步该等、查状态还是重试。
当前真实任务状态
Rivya 现在的异步生成链路,会使用这四个可见状态:
WAITINGGENERATINGSUCCESSFAILED
这些状态存放在 ai_task 上,并会被创作工作台、历史记录、仪表盘和通知中心共同复用。
提交一次生成时会发生什么
1. 先校验请求
在真正调用上游服务之前,Rivya 会先检查:
- 模型是否存在
- 这个模型是否开启了直接生成
- 它的运行方式是否属于异步任务链路
- 提示词长度是否合法
- 表单参数是否被规范化
- 参考文件是否符合模型要求
有些模型还有额外规则。比如音频分离这类模型,不仅需要音频上传,还要通过时长校验。
2. 先创建任务记录
Rivya 会先创建一条 ai_task,初始状态是 WAITING。
这条记录会保存模型、类别、提示词、参数、预留积分、计费类型,以及后续的结果或失败信息。
3. 在提交上游前先消费积分
这里有个很关键的真实行为:对于异步生成任务,Rivya 会先从钱包里扣掉本次任务需要的积分,再提交给上游服务。
如果积分不够:
- 任务会直接标记为失败
- 上游服务不会被调用
- 系统还可以生成一条余额不足通知
4. 创建上游任务
如果积分足够,Rivya 才会把任务提交给对应上游服务,并保存上游任务 ID。
此时状态会变成 GENERATING。
Rivya 如何知道任务结束了
当前有两条完成路径:
- 在支持回调的环境里,通过上游回调把结果写回
- 当回调不可用时,通过状态刷新和轮询补齐结果
回调路由在真正处理之前,也会先做签名校验。
如果回调到来时,上游结果还没有完全就绪,Rivya 也可能先延后处理,再回头检查一次上游状态。
成功路径
当任务成功时,Rivya 会:
- 保存结果 URL
- 把状态设为
SUCCESS - 完成结算
- 让这条结果进入生成历史
- 创建一条生成成功通知
所以一张图或一段视频不会因为你离开页面就消失。
失败路径
当任务失败时,Rivya 会:
- 保存错误信息
- 把状态设为
FAILED - 如果属于应退款场景,就把积分退回
- 创建一条生成失败通知,方便后续回看
这和页面上一闪而过的提示很不一样。失败会变成账号里真正可查的记录。
任务状态会出现在哪里
同一条任务状态,可能会在几个地方同时出现:
正因为这些状态是共享的,整个产品才不会像一次性工具那样断掉。
Chat 为什么不完全一样
Chat 同样会计费,但它不走同一套 ai_task 记录。Chat 会把每次交互保存为:
- 对话会话
- 对话消息
对于按 token 计费的对话模型,Rivya 会先预留积分,再根据实际使用量做最终结算;如果实际消耗更低,多余的部分会退回。
所以更准确的理解方式是:
- 图片、视频、音频生成走
ai_task - 对话走保存后的会话和消息结算
下一步建议
任务状态检查清单
当生成任务变慢、失败、找不到结果或状态混乱时,先判断:
- 先分清任务类型:chat 结算、图片、视频、音频,还是工具型 chat。
- 检查积分是在提交 provider 前预留,还是按实际用量后结算。
- 先找 provider 回调、轮询结果、历史记录和通知,不要马上判断结果丢失。
- 区分用户可以修正的失败,和 provider / 基础设施侧失败。
- 重跑同一个 prompt 前,先确认失败任务是否应该退回积分。
再次运行前先复核
如果同一个 prompt 连续失败、任务长时间卡住、积分扣了但没有输出,或用户准备提交更重的重复任务,需要先复核。