| from pydantic import BaseModel, Field | |
| from typing import List, Dict, Any | |
| from app.models.const import Language | |
| from typing import Optional | |
| class StoryGenerationRequest(BaseModel): | |
| resolution: Optional[str] = Field(default="1024*1024", description="ๅ่พจ็") | |
| text_llm_provider: Optional[str] = Field(default=None, description="Text LLM provider") | |
| text_llm_model: Optional[str] = Field(default=None, description="Text LLM model") | |
| image_llm_provider: Optional[str] = Field(default=None, description="Image LLM provider") | |
| image_llm_model: Optional[str] = Field(default=None, description="Image LLM model") | |
| segments: int = Field(..., ge=1, le=10, description="Number of story segments to generate") | |
| story_prompt: str = Field(..., min_length=1, max_length=4000, description="Theme or topic of the story") | |
| language: Language = Field(default=Language.CHINESE_CN, description="Story language") | |
| class StorySegment(BaseModel): | |
| text: str = Field(..., description="Story text") | |
| image_prompt: str = Field(..., description="Image generation prompt") | |
| url: str = Field(None, description="Generated image URL") | |
| class StoryGenerationResponse(BaseModel): | |
| segments: List[StorySegment] = Field(..., description="Generated story segments") | |
| class ImageGenerationRequest(BaseModel): | |
| prompt: str = Field(..., min_length=1, max_length=4000, description="Description of the image to generate") | |
| image_llm_provider: Optional[str] = Field(default=None, description="Image LLM provider") | |
| image_llm_model: Optional[str] = Field(default=None, description="Image LLM model") | |
| resolution: Optional[str] = Field(default="1024*1024", description="Image resolution") | |
| class ImageGenerationResponse(BaseModel): | |
| image_url: str = Field(..., description="Generated image URL") | |