生产集成
本页汇总把 Reelway 接入生产系统时需要一次性想清楚的事:钱从哪里扣、用哪条路径接、会碰到哪些上限、哪些错误必须有代码处理。
生产负载的计费
- 所有付费操作从账户余额扣除;余额查询
GET /v4/account/balance,流水GET /v1/transactions/list。 - 扣费发生在受理时(按预估),完成后校正为实际用量;失败与无产物不计费。
- 为每个生产系统使用独立的子 Key,并为其设置限额,把单点泄露或失控重试的损失限制在可控范围内(触顶返回
402/1013)。 - 分销场景下,下级账户的余额与费率在分销商侧管理,见分销体系。
选择集成路径
无服务器模式(REST)
适合函数计算、队列消费者等没有长连接的环境:
POST /v1/creative-agent/workflows(或POST /v1/chat/runs)并携带Idempotency-Key;- 持久化返回的资源
id; - 以
GET …/{id}/events?after=<seq>轮询,或在能保持连接的组件中订阅GET …/{id}/events/stream(SSE,支持Last-Event-ID重放); - 终态事件后下载产物。
优点:函数重试天然安全(幂等键);无需维护 WebSocket。代价:进度粒度以事件为单位。预览创意工作流执行器 M1 为占位
长连接 SDK 模式(WebSocket)
适合常驻服务与交互式前端:
SogniClient.createInstance({ appId, network, apiKey })建立 artist 通道;- 用
projects.create()提交,监听progress/completed/failed事件; - 进程重启后调用
GET /api/v1/artist/projects/sync拉取恢复快照(activeProjects+unclaimedCompletedProjects),或直接读GET /v2/projects/{id}。
优点:实时进度与预览、即时取消。注意:同一账号 + 同一 appId 的新连接会以关闭码 4015 接管旧连接,多实例部署时请为每个实例使用不同的 appId。
限制
渲染容量
- 单次
jobRequest的numberOfImages受模型与网络限制;视频模型通常为 1。 network: 'fast'优先派发到就绪节点;relaxed允许更长排队换取更低优先级成本。队列规则见公平使用队列。- 单帧上限:artist 通道 1 MiB;图像与媒体请通过预签名 URL 上传,不要内联到帧中。
创意工作流
- 请求体 ≤ 1 MiB;严格解码(未知字段
400/1010); - 事件列表接口
…/events单次最多返回 500 条,请用after分页; - 事件流 15 秒 keep-alive,终态事件后服务端主动关流。
连接
- 服务端每 25 秒 ping、60 秒 pong 窗口,超时断开;SDK 自动重连,自实现客户端需响应 ping。
- 并发会话超上限返回
409(4027)。
必须处理的错误
OpenAI 兼容推理面(api.reelway.ai/v1)的错误为 OpenAI 形状(error.type / error.code / error.message),请复用你为 OpenAI 写的错误处理。
上线清单
- 为该系统创建独立子 Key 并设置限额;Key 仅存在于服务端密钥管理中
- 所有付费
POST携带Idempotency-Key,并把键与业务请求一同持久化 - 实现
429指数退避(下限取Retry-After)与401立即停止 - 产物 URL 48 小时过期:完成后立即转存到自有存储
- 多实例部署时
appId按实例唯一;重启后以projects/sync或GET /v2/projects/{id}恢复 - 监控
GET /v4/account/balance,设置余额阈值告警 - 订阅
GET /v1/announcements/active获取平台公告(模型上下线、维护窗口)