feat: add unified generation entrypoint
This commit is contained in:
@@ -29,6 +29,19 @@ class GenerateRequest(BaseModel):
|
||||
universe_id: str | None = None
|
||||
|
||||
|
||||
class GenerationRequest(BaseModel):
|
||||
"""Unified generation request for story and storybook outputs."""
|
||||
|
||||
output_mode: Literal["story", "storybook"] = Field(default="story")
|
||||
type: Literal["keywords", "full_story"] = Field(default="keywords")
|
||||
data: str = Field(..., min_length=1, max_length=MAX_DATA_LENGTH)
|
||||
education_theme: str | None = Field(default=None, max_length=MAX_EDU_THEME_LENGTH)
|
||||
generate_images: bool = Field(default=True)
|
||||
page_count: int = Field(default=6, ge=4, le=12)
|
||||
child_profile_id: str | None = None
|
||||
universe_id: str | None = None
|
||||
|
||||
|
||||
class StoryResponse(StoryStatusMixin):
|
||||
"""Story generation response."""
|
||||
|
||||
@@ -99,6 +112,25 @@ class StorybookResponse(StoryStatusMixin):
|
||||
cover_url: str | None = None
|
||||
|
||||
|
||||
class GenerationResponse(StoryStatusMixin):
|
||||
"""Unified generation response for the target workflow API."""
|
||||
|
||||
id: int
|
||||
title: str
|
||||
mode: str
|
||||
story_text: str | None = None
|
||||
pages: list[StorybookPageResponse] | None = None
|
||||
cover_prompt: str | None = None
|
||||
image_url: str | None = None
|
||||
cover_url: str | None = None
|
||||
audio_ready: bool = False
|
||||
errors: dict[str, str | None] = Field(default_factory=dict)
|
||||
main_character: str | None = None
|
||||
art_style: str | None = None
|
||||
child_profile_id: str | None = None
|
||||
universe_id: str | None = None
|
||||
|
||||
|
||||
class StoryDetailResponse(StoryStatusMixin):
|
||||
"""Story detail response for both stories and storybooks."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user