H2P3B / src /models /voice_transcript.py
muhammadshaheryar's picture
Add application file
dd1b74d
from sqlmodel import SQLModel, Field, Relationship
from datetime import datetime
from typing import Optional, TYPE_CHECKING
import uuid
if TYPE_CHECKING:
from .message import Message
class VoiceTranscriptBase(SQLModel):
message_id: uuid.UUID = Field(foreign_key="message.id")
original_audio_path: Optional[str] = Field(default=None)
cleaned_text: str = Field(max_length=10000)
extracted_intent: str = Field(max_length=255)
confidence_score: float = Field(ge=0.0, le=1.0)
processing_time: Optional[float] = Field(default=None)
class VoiceTranscript(VoiceTranscriptBase, table=True):
"""
Represents processed voice input with cleaned text, extracted intent, and confidence scores
"""
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
# Relationships
message: "Message" = Relationship(back_populates="voice_transcript")
class VoiceTranscriptCreate(VoiceTranscriptBase):
cleaned_text: str
extracted_intent: str
confidence_score: float
class VoiceTranscriptRead(VoiceTranscriptBase):
id: uuid.UUID
created_at: datetime