feat: queue voice session cover generation jobs

This commit is contained in:
2026-04-20 17:05:01 +08:00
parent 4d7072fb66
commit df4f5f4cdd
6 changed files with 254 additions and 21 deletions

View File

@@ -31,7 +31,7 @@ from app.services.memory_service import build_enhanced_memory_context
from app.services.provider_router import generate_story_content, text_to_speech
from app.services.story_service import (
create_story_from_result,
generate_story_cover,
queue_story_asset_generation,
validate_profile_and_universe,
)
from app.services.voice_session_safety import (
@@ -1710,15 +1710,21 @@ async def finalize_voice_session_service(
generation_job_id: str | None = None
if request.generate_cover and story.cover_prompt:
try:
await generate_story_cover(story.id, user_id, db)
cover_job = await queue_story_asset_generation(
story.id,
user_id,
["image"],
db,
)
generation_job_id = str(cover_job["id"])
await _record_session_event(
db,
session_id=session.id,
turn_id=None,
event_type="session_cover_generation_succeeded",
event_type="session_cover_generation_queued",
status="succeeded",
message="Finalized story cover was generated after session save.",
metadata={"story_id": story.id},
message="Finalized story cover generation was queued after session save.",
metadata={"story_id": story.id, "generation_job_id": generation_job_id},
)
except HTTPException as exc:
await _record_session_event(
@@ -1727,11 +1733,11 @@ async def finalize_voice_session_service(
turn_id=None,
event_type="session_cover_generation_failed",
status="failed",
message="Finalized story cover generation failed after session save.",
message="Finalized story cover generation failed before the worker could start.",
metadata={"story_id": story.id, "error": str(exc.detail)},
)
logger.warning(
"voice_session_finalize_cover_failed",
"voice_session_finalize_cover_queue_failed",
session_id=session.id,
story_id=story.id,
error=str(exc.detail),