feat: 正式生成时片段随机重排(降重,默认开启无开关)#1663 #1668
Reference in New Issue
Block a user
Delete Branch "feat/segment-random-shuffle-1663"
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?
改动
在
_distribute_assets方法中,smart_match 评分排序完成后、distribute_assets之前,对asset_ids做random.shuffle。行为
_fetch_asset_scene_points在 shuffle 之前调用list()复制再 shuffle改动范围
apps/api/app/services/plan_generator_service.py(+5 行)tests/unit/test_plan_generator.py(+3 个测试用例)单测
test_formal_generation_shuffles_asset_ids— 验证 10 次调用产生至少 2 种不同顺序test_formal_generation_does_not_mutate_original_list— 验证原始列表不被修改test_preview_random_mode_unaffected_by_shuffle— 验证预览模式不受影响Closes #1663
🚀 预览环境已部署
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
无
✅ 良好实践
plan_generator_service.py第 237 行,使用asset_ids = list(asset_ids)创建副本后再进行shuffle,有效避免了修改调用方传入的原始列表,防止了潜在的副作用,这是一个很好的防御性编程实践。TestFormalGenerationShuffle覆盖了核心功能(随机打乱)、边界保护(不修改原列表)以及不同模式下的行为差异(预览模式不受影响),测试逻辑严谨且概率断言合理(10次取2种不同顺序,置信度极高)。if not random_selection条件精准控制了 shuffle 的执行时机,仅影响正式生成路径,符合需求描述。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 12:08:18 | 模型:
🗑️ 预览环境已清理
PR #1668 已关闭或合并,对应的预览环境已被清理。