fix: 片段去重从已有片段构建used_segments,实现跨任务去重 #1522
Reference in New Issue
Block a user
Delete Branch "fix/cross-task-segment-dedup"
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?
问题
create_clips_from_assets_editor中used_segments每次调用初始化为空字典,只跟踪当前API调用内创建的时间段,不避开之前任务已使用的时间段。影响:用户多次为同一 plan 添加素材片段时,新片段可能与已有片段使用同一段素材区域,导致视频内容重复。
修复
在
apps/api/app/api/routes/templates_editor/clips.py第 389 行附近:初始化
used_segments后,遍历existing_clips_list(已通过list_clips获取),将已有片段的asset_id/start_time/duration填充到used_segments,使_calc_random_start_time能避开所有已使用的时间区间。改动量:+7 行代码
测试
新增
TestCrossTaskSegmentDedup(4个用例):全部 15 个相关测试通过。
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1522 已关闭或合并,对应的预览环境已被清理。