拆镜 AI拆片 API 可重复执行

This commit is contained in:
2026-07-24 14:30:28 +08:00
parent 4685b475af
commit 663c4fa9db
@@ -544,20 +544,20 @@ async def create_segments_by_ai(
if not suggestions: if not suggestions:
raise HTTPException(status_code=400, detail="selected_indices 没有匹配到可用 AI 建议") raise HTTPException(status_code=400, detail="selected_indices 没有匹配到可用 AI 建议")
old_result = await db.execute( # old_result = await db.execute(
select(ShotReplicateSegment).where( # select(ShotReplicateSegment).where(
ShotReplicateSegment.task_set_id == task_set.id, # ShotReplicateSegment.task_set_id == task_set.id,
ShotReplicateSegment.source_mode == ShotSegmentSourceModeEnum.AI_SUGGESTION.value, # ShotReplicateSegment.source_mode == ShotSegmentSourceModeEnum.AI_SUGGESTION.value,
ShotReplicateSegment.deleted_at.is_(None), # ShotReplicateSegment.deleted_at.is_(None),
) # )
) # )
old_segments = list(old_result.scalars().all()) # old_segments = list(old_result.scalars().all())
if old_segments and not req.replace_existing: # if old_segments and not req.replace_existing:
raise HTTPException(status_code=409, detail="已存在 AI 建议拆镜片段,如需重拆请传 replace_existing=true") # raise HTTPException(status_code=409, detail="已存在 AI 建议拆镜片段,如需重拆请传 replace_existing=true")
if old_segments and req.replace_existing: # if old_segments and req.replace_existing:
now = _now() # now = _now()
for segment in old_segments: # for segment in old_segments:
segment.deleted_at = now # segment.deleted_at = now
created: list[ShotReplicateSegment] = [] created: list[ShotReplicateSegment] = []
next_index = await _next_segment_index(db, task_set.id) next_index = await _next_segment_index(db, task_set.id)
@@ -609,7 +609,7 @@ async def create_segments_by_ai(
detail={ detail={
"task_set_id": task_set.id, "task_set_id": task_set.id,
"selected_indices": req.selected_indices, "selected_indices": req.selected_indices,
"replace_existing": req.replace_existing, # "replace_existing": req.replace_existing,
"created_segment_count": len(created), "created_segment_count": len(created),
"segment_ids": [segment.id for segment in created], "segment_ids": [segment.id for segment in created],
}, },