feat(viral-video): v1.5 三步分步流水线 analyze-images/generate-copy/confirm-copy #2117
Reference in New Issue
Block a user
Delete Branch "fix/2115-three-stage-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
前端 STEP1 UI 重做(#2041)要求后端支持三步独立操作:
方案
最小改动:新增两个暂停状态 + 三个 Celery task + 三个端点,旧 /generate 与 /confirm-intent 完全保留兼容。
状态机
新增端点
POST /api/v1/viral-video/analyze-images— 阶段1:创建 job 并只跑 step1+1.5POST /api/v1/viral-video/{id}/generate-copy— 阶段2:写营销参数 + 跑 step2-5POST /api/v1/viral-video/{id}/confirm-copy— 阶段3:确认/编辑文案 + 跑 step6-9其他
GET /{id}响应新增image_analysis/storyboard/generated_copy_text字段测试
🚀 预览环境已部署
- 新增状态 IMAGE_ANALYZED / COPY_GENERATED,最小改动状态机:PENDING→RUNNING→IMAGE_ANALYZED→RUNNING→COPY_GENERATED→RUNNING→COMPLETED - 新增三个 Celery task:run_viral_video_analyze / run_viral_video_generate_copy / run_viral_video_render - 共享 _run_render_pipeline 渲染函数,兼容旧 /generate + /confirm-intent 路径(storyboard 缺失时自动兜底重算) - 新增三个端点: * POST /viral-video/analyze-images 阶段1:图片VLM分析+可选参考视频风格分析 * POST /viral-video/{id}/generate-copy 阶段2:意图解析→文案融合→分镜→合规审核 * POST /viral-video/{id}/confirm-copy 阶段3:TTS→渲染→上传 - GET /{id} 返回 image_analysis / storyboard / generated_copy_text / copy_result(对齐前端 CopyResult 结构) - 幂等 ALTER TABLE 补列:storyboard(JSON) / generated_copy_text(TEXT),无 Alembic 环境下安全执行 - WS 新增 viral_video:image_analyzed / viral_video:copy_generated 事件类型 - 前端类型/API 客户端:新增 AnalyzeImagesRequest/GenerateCopyRequest/ConfirmCopyRequest/StoryboardSegment 及 analyzeViralImages/generateViralCopy/confirmViralCopy 三个真实 API 函数,保留既有 mock 函数 - 状态值对齐前端 PR #2116 命名 copy_generated(非 copy_ready) - 93 个 viral 相关单测全通过;musetalk 2 个超时用例失败为历史遗留与本 PR 无关597a7aad6eto3976f21c31🗑️ 预览环境已清理
PR #2117 已关闭或合并,对应的预览环境已被清理。