Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field | |
| from typing import Optional, List, Dict, Union, Any | |
| from datetime import datetime | |
| class UserCreate(BaseModel): | |
| username: str | |
| password: str | |
| class UserLogin(BaseModel): | |
| username: str | |
| password: str | |
| class Token(BaseModel): | |
| access_token: str | |
| token_type: str | |
| class UserUpdate(BaseModel): | |
| password: str | |
| class UserResponse(BaseModel): | |
| username: str | |
| class AgentCreate(BaseModel): | |
| name: str | |
| voice_id: str | |
| voice_name: str | |
| voice_description: str | |
| speed: float | |
| pitch: float | |
| volume: float | |
| output_format: str | |
| personality: str = None # Optional field for agent personality | |
| class AgentResponse(BaseModel): | |
| agent_id: str | |
| name: str | |
| voice_id: str | |
| voice_name: str | |
| voice_description: str | |
| speed: float | |
| pitch: float | |
| volume: float | |
| output_format: str | |
| user_id: str | |
| personality: str = None # Optional field for agent personality | |
| class PodcastRequest(BaseModel): | |
| topic: str | |
| believer_voice_id: str | |
| skeptic_voice_id: str | |
| class ConversationBlock(BaseModel): | |
| name: str | |
| input: str | |
| silence_before: int | |
| voice_id: str | |
| emotion: str | |
| model: str | |
| speed: float | |
| duration: int | |
| class PodcastResponse(BaseModel): | |
| podcast_id: str | |
| audio_url: Optional[str] | |
| topic: str | |
| error: Optional[str] | |
| # Models for structured debate transcript and insights | |
| class TranscriptEntry(BaseModel): | |
| agentId: str | |
| agentName: str | |
| turn: int | |
| content: str | |
| class InsightsData(BaseModel): | |
| topic: str | |
| research: str | |
| transcript: List[TranscriptEntry] | |
| keyInsights: List[str] | |
| conclusion: str | |
| # New Workflow Models | |
| class WorkflowCreate(BaseModel): | |
| name: str | |
| description: str | |
| nodes: List[Dict] | |
| edges: List[Dict] | |
| insights: Optional[Union[InsightsData, str]] = None | |
| class WorkflowResponse(BaseModel): | |
| id: str | |
| name: str | |
| description: str | |
| nodes: List[Dict] | |
| edges: List[Dict] | |
| insights: Optional[Union[InsightsData, str]] = None | |
| user_id: str | |
| created_at: Optional[str] | |
| updated_at: Optional[str] | |
| class TextPodcastRequest(BaseModel): | |
| text: str | |
| voice_id: str = "alloy" | |
| emotion: str = "neutral" | |
| speed: float = 1.0 | |
| title: Optional[str] = None | |
| class TextPodcastResponse(BaseModel): | |
| audio_url: str | |
| duration: Optional[float] | |
| status: str | |
| error: Optional[str] | |
| updated_at: Optional[str] | |