feat(#1970): 素材原子化切片 P1 - 数据层/切片逻辑/原子片段级选片 #1974
Reference in New Issue
Block a user
Delete Branch "feat/1970-atom-clips"
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?
#1970 智能剪辑流程重构 — PR1:素材原子化切片(P1 数据层 + 切片 + 原子片段级选片)
需求文档:
docs/smart-edit-flow-redesign-20260916.md本 PR 为 3 个 PR 中的第 1 个,只含原子切片数据层/切片逻辑/选片单元改造,不含降重微变换(PR2)和新 API 字段/叙事模式(PR3)。
改动内容
数据层
asset_atom_clips:id / asset_id(FK→assets, ondelete CASCADE) / start_time / end_time / duration / clip_index / tags(JSONB) / scene_change_at / is_fallback / created_at,(asset_id, clip_index) 唯一约束 + asset_id 索引(migration 079)edit_plan_clips新增atom_clip_idString(32) nullable 默认空串 + 索引(migration 080)AssetAtomClip+ Repository 端口 + SQLAlchemy 实现(CRUD + find_candidates_for_selection)切片逻辑(
packages/domain/atom_clip_service.py,纯函数)异步触发
worker.generate_atom_clips,ingest 入库 commit 后按 asset_id 触发;幂等(已有片段则跳过),失败只告警不阻断入库选片改造
atom_clip_selector.py:选片单元从整条素材变为原子片段;评分维度保持(质量 0.35 / 时长适配 0.30 / 新鲜度 0.15 / 未使用加分 0.10 / 素材均衡 0.10 + 噪声),历史 recently_used 软降权plan_generator_service._distribute_atom_clips:非预览场景优先原子选片,失败/预览自动回退旧 distribute_assets;片段数按配音总时长/4.5s 估算reselect_plan_for_variant:变体重选优先原子路径,不足/异常回退旧函数测试
兼容性
不做(留给 PR2/PR3)
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1974 已关闭或合并,对应的预览环境已被清理。