""" Pydantic models for translation-related data structures """ from dataclasses import dataclass from typing import List, Optional, Dict, Any, Tuple @dataclass class TranslationResult: """Result of a translation operation""" original_text: str translated_text: str source_language: str target_language: str confidence_score: float model_used: str processing_time: float quality_score: Optional[float] = None alternative_translations: Optional[List[str]] = None metadata: Optional[Dict[str, Any]] = None @dataclass class ModelInfo: """Information about a translation model""" model_id: str model_name: str model_type: str supported_languages: List[str] language_pairs: Optional[Dict[str, List[str]]] = None model_size: Optional[str] = None performance_metrics: Optional[Dict[str, Any]] = None is_loaded: bool = False device: Optional[str] = None quality_score: Optional[float] = None speed_score: Optional[float] = None memory_usage: Optional[int] = None supports_batch: bool = False is_multilingual: bool = False domain_specific: Optional[str] = None @dataclass class TranslationConfig: """Configuration for translation operations""" source_language: str target_language: str model_preference: Optional[str] = None quality_threshold: Optional[float] = None max_length: Optional[int] = None batch_size: int = 1 use_cache: bool = True domain: Optional[str] = None preserve_format: bool = True additional_params: Optional[Dict[str, Any]] = None @dataclass class QualityMetrics: """Metrics for translation quality assessment""" bleu_score: float = 0.0 semantic_similarity: float = 0.0 fluency_score: float = 0.0 adequacy_score: float = 0.0 overall_score: float = 0.0 confidence: Optional[float] = None metadata: Optional[Dict[str, Any]] = None @dataclass class AudioTranscription: """Result of audio transcription""" text: str language: str duration: float processing_time: float segments: Optional[List[Dict[str, Any]]] = None confidence: Optional[float] = None speaker_labels: Optional[List[str]] = None metadata: Optional[Dict[str, Any]] = None