""" Base Language Model Abstract Class This module defines the interface that all language detection models must implement. """ from abc import ABC, abstractmethod from typing import Dict, List, Any class BaseLanguageModel(ABC): """ Abstract base class for language detection models. All language detection models must inherit from this class and implement the required methods. """ @abstractmethod def predict(self, text: str) -> Dict[str, Any]: """ Predict the language of the given text. Args: text (str): Input text to analyze Returns: Dict containing prediction results with structure: { 'predictions': [ { 'language_code': str, 'confidence': float }, ... ], 'text_length': int, 'model_version': str, 'model_type': str } """ pass @abstractmethod def get_supported_languages(self) -> List[str]: """ Get list of supported language codes. Returns: List of ISO 639-1 language codes """ pass @abstractmethod def get_model_info(self) -> Dict[str, Any]: """ Get information about the model. Returns: Dict containing model metadata and description with structure: { 'name': str, 'description': str, 'accuracy': str, 'model_size': str, 'languages_supported': str, 'training_details': str, 'use_cases': str, 'strengths': str, 'limitations': str } """ pass