""" Base AI Provider interface (Strategy pattern) """ from abc import ABC, abstractmethod from typing import Optional, Dict, Any class AIProvider(ABC): """Abstract base class for AI providers""" @abstractmethod def summarize(self, text: str, **kwargs) -> str: """Generate summary of text""" pass @abstractmethod def correct_text(self, text: str, **kwargs) -> str: """Correct grammar and spelling in text""" pass @abstractmethod def classify_content(self, text: str, **kwargs) -> Dict[str, Any]: """Classify content into categories""" pass @abstractmethod def is_available(self) -> bool: """Check if provider is available and configured""" pass @property @abstractmethod def name(self) -> str: """Provider name""" pass