1
This commit is contained in:
@@ -125,6 +125,7 @@ FLOW_CONFIG = ModuleGenerationFlowConfig(
|
||||
cancel_chat_task_error_message="拆镜复刻步骤被重新生成或删除,旧生成任务已取消",
|
||||
material_video_url_editable=False,
|
||||
step_io_schema_version=STEP_IO_SCHEMA_VERSION,
|
||||
expected_flow_version="v1",
|
||||
)
|
||||
|
||||
|
||||
@@ -434,12 +435,19 @@ async def project_to_detail_out(db: AsyncSession, project: ModuleGenerationProje
|
||||
user_result = await db.execute(select(User.username).where(User.id == project.user_id).limit(1))
|
||||
user_name = user_result.scalar_one_or_none()
|
||||
|
||||
flow_version = str(getattr(project, "flow_version", None) or "v1")
|
||||
video_prompt_config = dict(video_prompt_input.get("video_config") or {})
|
||||
video_prompt_engine_snapshot = dict(video_prompt_config.get("engine_snapshot") or {})
|
||||
|
||||
return ShotReplicateTaskDetailOut(
|
||||
id=project.id,
|
||||
project_id=project.id,
|
||||
user_id=project.user_id,
|
||||
user_name=user_name,
|
||||
module=project.module,
|
||||
flow_version=flow_version,
|
||||
step_count=3 if flow_version == "v2" else 5,
|
||||
step_io_schema_version=("hot_opening_step_io_v2" if project.module == "hot_opening_replicate" else "shot_replicate_step_io_v2") if flow_version == "v2" else STEP_IO_SCHEMA_VERSION,
|
||||
title=project.title,
|
||||
status=project.status,
|
||||
current_step_code=project.current_step_code,
|
||||
@@ -454,6 +462,8 @@ async def project_to_detail_out(db: AsyncSession, project: ModuleGenerationProje
|
||||
source_project_name=material_input.get("source_project_name"),
|
||||
target_project_name=material_input.get("target_project_name"),
|
||||
core_content_point=material_input.get("core_content_point"),
|
||||
project_description=material_input.get("project_description"),
|
||||
video_config=None if flow_version == "v2" else material_input.get("video_config"),
|
||||
),
|
||||
image_generation=ShotReplicateImageGenerationOut(
|
||||
prompt_step_id=image_prompt_step.id if image_prompt_step else None,
|
||||
@@ -477,9 +487,9 @@ async def project_to_detail_out(db: AsyncSession, project: ModuleGenerationProje
|
||||
schema_config_source=schema_config_source,
|
||||
schema_config_version=schema_config_version,
|
||||
schema_config_is_fallback=schema_config_is_fallback,
|
||||
engine_id=video_snapshot.get("id") or video_generate_input.get("engine_id"),
|
||||
engine_name=video_snapshot.get("name") or video_generate_input.get("engine_name"),
|
||||
params=video_generate_input.get("params") or video_generate_input,
|
||||
engine_id=video_snapshot.get("id") or video_generate_input.get("engine_id") or video_prompt_config.get("engine_id"),
|
||||
engine_name=video_snapshot.get("name") or video_generate_input.get("engine_name") or video_prompt_engine_snapshot.get("name"),
|
||||
params=video_generate_input.get("params") or video_prompt_config or video_generate_input,
|
||||
chat_task_id=video_generate_step.chat_task_id if video_generate_step else None,
|
||||
status=video_chat.status if video_chat else (video_generate_step.status if video_generate_step else None),
|
||||
result_video_url=build_resource_signed_url(video_url) if video_url else None,
|
||||
@@ -606,6 +616,8 @@ async def list_shot_replicate_projects(
|
||||
id=project.id,
|
||||
project_id=project.id,
|
||||
module=project.module,
|
||||
flow_version=str(getattr(project, "flow_version", None) or "v1"),
|
||||
step_count=3 if str(getattr(project, "flow_version", None) or "v1") == "v2" else 5,
|
||||
title=project.title,
|
||||
status=project.status,
|
||||
current_step_code=project.current_step_code,
|
||||
@@ -1497,6 +1509,9 @@ async def generate_video_from_prompt(
|
||||
async def handle_chat_generation_task_completed(db: AsyncSession, task: ChatGenerationTask) -> None:
|
||||
if not task or task.generation_mode != GENERATION_MODE:
|
||||
return
|
||||
from app.services.module_generation_v2.flow_service import handle_chat_generation_task_finished_v2
|
||||
if await handle_chat_generation_task_finished_v2(db, task=task):
|
||||
return
|
||||
meta_result = await db.execute(
|
||||
select(ModuleGenerationStep.id, ModuleGenerationStep.project_id).where(
|
||||
ModuleGenerationStep.chat_task_id == task.id,
|
||||
@@ -1579,6 +1594,9 @@ async def handle_chat_generation_task_completed(db: AsyncSession, task: ChatGene
|
||||
async def handle_chat_generation_task_failed(db: AsyncSession, task: ChatGenerationTask) -> None:
|
||||
if not task or task.generation_mode != GENERATION_MODE:
|
||||
return
|
||||
from app.services.module_generation_v2.flow_service import handle_chat_generation_task_finished_v2
|
||||
if await handle_chat_generation_task_finished_v2(db, task=task):
|
||||
return
|
||||
meta_result = await db.execute(
|
||||
select(ModuleGenerationStep.id, ModuleGenerationStep.project_id).where(
|
||||
ModuleGenerationStep.chat_task_id == task.id,
|
||||
|
||||
Reference in New Issue
Block a user