diff --git a/apps/api/app/api/routes/generation_tasks.py b/apps/api/app/api/routes/generation_tasks.py index e982bb248..325c76c72 100755 --- a/apps/api/app/api/routes/generation_tasks.py +++ b/apps/api/app/api/routes/generation_tasks.py @@ -124,10 +124,19 @@ def _select_assets_from_library( return [a.id for a in selected] if mode == "smart": - # 智能匹配:多维度综合评分 + 时长多样性保证 - selector = SmartAssetSelector() - result = selector.select(ready_video_assets, count=count, ensure_diversity=True) - return result.selected_ids + # 智能匹配:按质量分降序 + 时长降序作为tiebreaker + # 注意:这里使用简单的 quality_score 排序保持向后兼容 + # 更复杂的4维评分+多样性策略由 SmartAssetSelector 服务提供(用于 AI 精选等场景) + scored_assets = sorted( + ready_video_assets, + key=lambda a: ( + -(a.quality_score if a.quality_score is not None else 0.0), + -(getattr(a, "duration", 0.0) or 0.0), + ), + ) + if count > 0: + scored_assets = scored_assets[:count] + return [a.id for a in scored_assets] # 默认 all 模式:返回全部 ready 视频素材 return [a.id for a in ready_video_assets]