Spaces:
Paused
Paused
| from pydantic import BaseModel, Field | |
| from typing import List, Dict, Any, Optional | |
| class SimulationRequest(BaseModel): | |
| focus_group_id: str = Field(..., description="ID of the focus group to use") | |
| content_type: str = Field(..., description="Type of content (e.g., article, post)") | |
| content_payload: str = Field(..., description="The actual content text to simulate") | |
| parameters: Optional[Dict[str, Any]] = Field(default_factory=dict, description="Additional parameters like creativity, duration") | |
| class GeneratePersonasRequest(BaseModel): | |
| business_description: str = Field(..., description="Description of the business or product") | |
| customer_profile: str = Field(..., description="Profile of the target customer") | |
| num_personas: int = Field(default=5, ge=1, le=10, description="Number of personas to generate") | |
| class SimulationResponse(BaseModel): | |
| job_id: str = Field(..., description="Unique ID for the simulation job") | |
| status: str = Field(..., description="Status of the job (PENDING, RUNNING, COMPLETED, FAILED)") | |
| message: Optional[str] = Field(None, description="Additional information about the job status") | |
| progress_percentage: int = Field(0, description="Progress percentage (0-100)") | |
| results: Optional[Dict[str, Any]] = Field(None, description="Results of the simulation if completed") | |
| class BulkSimulationRequest(BaseModel): | |
| requests: List[SimulationRequest] = Field(..., description="List of simulation requests") | |
| class Persona(BaseModel): | |
| id: str = Field(..., description="ID of the persona") | |
| name: str = Field(..., description="Name of the persona") | |
| agent_count: Optional[int] = Field(None, description="Number of agents in a focus group (if this represents a group)") | |