from typing import Dict, List, Any class LanguageDetectionAgent: """Detects language for OCR optimization.""" LANGUAGES = { "est": ["on", "ja", "et", "ei", "oli", "mis", "kuidas"], "eng": ["the", "is", "and", "of", "to", "a", "in"], "rus": ["è", "è", "è", "è", "è", "è", "è"], } def process(self, extracted_text: str) -> Dict[str, Any]: """Detect language.""" language = self._detect(extracted_text) confidence = self._confidence_score(extracted_text, language) return { "detected_language": language, "confidence": confidence, "supported_languages": list(self.LANGUAGES.keys()), } def _detect(self, text: str) -> str: """Detect language from text.""" text_lower = text.lower() scores = {} for lang, keywords in self.LANGUAGES.items(): scores[lang] = sum(1 for kw in keywords if kw in text_lower) if max(scores.values()) > 0: return max(scores, key=scores.get) return "unknown" def _confidence_score(self, text: str, language: str) -> float: """Calculate confidence.""" if language == "unknown": return 0.0 return 0.8