feat: 扩展剪辑模板体系 + 实现剪辑计划生成器 #201
Reference in New Issue
Block a user
Delete Branch "feature/template-and-plan-generator"
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?
变更内容
Phase A:领域模型 + 数据库扩展
EditTemplate新增editing_mode字段,支持四种剪辑模式(one_take/pip/voice_over/voice_pip)config_schemas扩展:editing_mode+transition_enabledPhase B:PlanGenerator 服务
PlanGeneratorService:基于模板+素材自动生成EditPlanPhase C:API 端点
POST /edit-plans/generate-from-templateediting_mode字段Phase D:单元测试
文件清单
packages/domain/edit_template.pypackages/domain/config_schemas.pypackages/adapters/sqlalchemy_impl/models.pypackages/adapters/sqlalchemy_impl/edit_template_repository.pyapps/api/app/services/edit_template_service.pyapps/api/app/api/routes/edit_templates.pyapps/api/app/services/plan_generator_service.pyapps/api/app/api/routes/edit_plans.pyalembic/versions/035_add_editing_mode_to_templates.pytests/unit/test_plan_generator.pytests/unit/test_template_editing_mode.py✅ PR #201 审查通过 — 剪辑模板体系扩展 + 剪辑计划生成器
审查范围:核心模块(plan_generator_service、edit_plans 路由、edit_templates、迁移 023+035、单元测试)
上一轮审计问题修复确认
_check_project_access校验project.can_access(user_id)校验_require_admin新增功能质量评估
PlanGeneratorService ✅
模板体系扩展 ✅
数据库迁移 ✅
单元测试 ✅
代码规范 ✅
非阻塞优化建议(P3)
设计原则确认
结论
0 P0 / 0 P1 / 0 P2 / 3 P3
整体质量很高,上一轮的 P1/P2 安全问题全部修复,新增功能设计合理、测试充分、代码规范。可合并。
PR #201 代码审计报告
结论:✅ 通过(0 P0 / 0 P1 / 1 P2 / 3 P3)
一、总体评价
代码质量优秀,架构分层清晰,测试覆盖充分。
二、设计原则核对 ✅ 全部符合
三、问题清单
P2(中等,建议修复)
P2-1:PlanGeneratorService 缺少事务保护,可能数据不一致
apps/api/app/services/plan_generator_service.pygenerate_from_template方法(第55-127行)session.commit())。如果中间某个 clip 创建失败(如数据库约束冲突、连接断开),已创建的 plan 和部分 clip 已持久化,无法回滚,产生不完整的脏数据。try/except+session.commit()/rollback()包裹整个生成流程,或改为 flush 模式最后统一 commit。P3(低优先级,后续优化)
P3-1:剪辑模式字符串硬编码,建议枚举化
apps/api/app/services/plan_generator_service.py_generate_default_clips/_distribute_*方法中"overlay"、"background"、"corner_voice"、"b_roll"等 clip_type 是裸字符串,散落在多个方法中,缺少统一枚举管理,容易拼写错误。packages/domain/template_clip_config.py的 ClipType 枚举中补充这些值,或新增一个PlanClipType枚举。P3-2:路由内延迟 import 不规范
apps/api/app/api/routes/edit_plans.pygenerate_from_template函数内from app.services import EditTemplateServiceP3-3:asset_ids 无存在性校验
apps/api/app/api/routes/edit_plans.py→generate_from_template四、做得好的地方 👏
_check_project_access,彻底修复了之前发现的 P1 越权问题;edit_templates 加了_require_admin管理员校验。五、安全审查
综合结论:可合并。P2-1 建议后续优化,不阻塞当前版本上线。