Skip to content

图/视频调用需要把重试、Fallback 和计费边界从 adapter 里抽出来 #330

Description

@xiaocheny214

为什么要引入

角色母版图生图和动作 i2v 已经在线上跑通。钱和故障都在这两条链路上。

当前聚合平台的调用写在 SufyImageProvider / SufyVideoProvider 里,429、52x、是否可能已计费和 HTTP 协议拼在一起。这会带来三类实际问题:

  1. 入口故障和上游故障分不清。 521/522 这类请求大概率没到上游,换模型名救不了,却可能误开第二单。520/524 可能已经计费,不该再打。
  2. 视频重复建单。 拿到 job_id 之后再 POST 一单会重复花钱;只有上游 failed / cancelled 才该换型号新开。
  3. 线上无法复盘。 一次 522 或 429,不能用 task_id 捞出这次试了哪个型号、有没有换模型、算不算已计费、重试了几次。

ai_engine 负责产线(预检、抽帧、抠图、成色闸),不该承担模型治理。业务侧继续只调 gen_image / i2v

因此在 windup_framework 内做进程内 Gateway:adapter 只拼协议、拆响应;重试、同家族 Fallback、熔断和结构化 trace 放到 Gateway。积分扣费仍走现有 QUOTA_*,不在这次改。

不包含

  • Chat
  • 改积分扣费规则
  • ai_engine 的 Provider 方法签名

验收

线上一次 522 或 429,能用 task_idrequest_id 看清:有没有换模型、算不算已计费、522 是否只重试了一次且没有错误换型号。成功路径仍返回 bytes。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions