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] | |