malek-messaoudii
Refactor audio processing and chatbot services; enhance STT and TTS functionalities with base64 support and session management
56dc677
raw
history blame
1.4 kB
from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
from enum import Enum
from datetime import datetime
class MessageType(str, Enum):
TEXT = "text"
AUDIO = "audio"
class UserMessage(BaseModel):
message_id: str = Field(..., description="Unique message ID")
content: str = Field(..., description="Text content or audio base64")
message_type: MessageType = Field(..., description="Message type")
session_id: str = Field(..., description="User session ID")
timestamp: datetime = Field(default_factory=datetime.now)
class ChatbotResponse(BaseModel):
response_id: str = Field(..., description="Unique response ID")
text_response: str = Field(..., description="Chatbot text response")
audio_response: Optional[str] = Field(None, description="Audio response in base64")
audio_url: Optional[str] = Field(None, description="Generated audio URL")
session_id: str = Field(..., description="User session ID")
timestamp: datetime = Field(default_factory=datetime.now)
class ChatSession(BaseModel):
session_id: str = Field(..., description="Session ID")
user_id: Optional[str] = Field(None, description="User ID")
created_at: datetime = Field(default_factory=datetime.now)
last_activity: datetime = Field(default_factory=datetime.now)
conversation_history: List[Dict[str, Any]] = Field(default_factory=list)