Spaces:
Runtime error
Runtime error
File size: 1,476 Bytes
1207440 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | """
TranscriptSegment model for storing real-time interview transcription data
"""
from sqlalchemy import Column, Integer, String, Float, Text, DateTime, ForeignKey
from sqlalchemy.sql import func
from sqlalchemy.orm import relationship
from .database import Base
class TranscriptSegment(Base):
__tablename__ = 'transcript_segments'
id = Column(Integer, primary_key=True, index=True)
interview_id = Column(Integer, ForeignKey('interviews.id'), nullable=False, index=True)
timestamp = Column(Float, nullable=False) # Seconds from interview start
speaker = Column(String(50), nullable=False) # 'candidate' or 'interviewer'
text = Column(Text, nullable=False)
confidence = Column(Float) # Whisper confidence score (0.0 to 1.0)
created_at = Column(DateTime(timezone=True), server_default=func.now())
# Relationships
interview = relationship('Interview', back_populates='transcript_segments')
def __repr__(self):
return f"<TranscriptSegment(id={self.id}, interview_id={self.interview_id}, speaker='{self.speaker}', timestamp={self.timestamp})>"
def to_dict(self):
return {
'id': self.id,
'interview_id': self.interview_id,
'timestamp': self.timestamp,
'speaker': self.speaker,
'text': self.text,
'confidence': self.confidence,
'created_at': self.created_at.isoformat() if self.created_at else None
}
|