任务与结果
生成提交一次,进度和结果始终关联原任务。
两类返回方式
文本请求通常保持原协议的普通 JSON 或 SSE 返回。图像可能同步返回图像结果,也可能返回任务;视频通常先创建任务,再查询状态和读取输出。
不要为所有模型套用统一的异步响应格式。以模型实际协议为准,并保留原始响应中的 ID、状态、结果及有用的响应头。
建议的处理流程
- 在你自己的服务端记录业务请求和选定的模型、参数。
- 提交一次生成请求,保存响应中的原任务 ID。
- 需要等待时,查询该任务的进度。
- 完成后读取或下载该任务的输出。
- 下载失败时重试原文件读取,继续使用原任务。
查询原任务
| 内容 | 查询接口 | 结果读取 |
|---|---|---|
| OpenAI 图像任务 | GET /v1/images/{id} | 响应中的结果或输出内容路径 |
| Gemini 图像任务 | GET /v1beta/images/{id} | 按模型返回的结果读取路径 |
| 视频任务 | GET /v1/videos/{id} | GET /v1/videos/{id}/content |
查询和下载使用提交时的原 Key。不要根据任务 ID 的外观拼接供应商地址,始终使用 OceanWay 的返回值和协议路径。
状态与轮询
排队或处理中表示继续等待原任务。完成时读取结果;明确失败时读取错误原因,再决定是否发起一笔新的生成。
建议先每隔数秒查询,随后逐步延长间隔,并设置自己应用的等待界面和通知策略。界面等待超时不等于服务端任务被取消。
响应丢失
如果提交后没有拿到任务 ID,先检查 控制台媒体任务 与调用记录。保留请求时间、模型、响应头中可用的请求标识,供排查使用。
不要在无法确认原请求结果时自动重发生成。各接口的幂等支持不同,不能假设添加一个 Idempotency-Key 请求头就能防止所有重复收费。
保存和保留
及时将需要保留的输出保存到你自己的存储。结果链接可能有访问权限或有效期限制;本页不承诺统一的文件保留时长。
文件读取或保存失败时,重新读取原任务的原输出。不要为了重新下载而创建新的生成请求。