41 lines
986 B
Python
41 lines
986 B
Python
"""
|
|
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 generate_text(self, prompt: str, **kwargs) -> str:
|
|
"""Generate text from prompt"""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def is_available(self) -> bool:
|
|
"""Check if provider is available and configured"""
|
|
pass
|
|
|
|
@property
|
|
@abstractmethod
|
|
def name(self) -> str:
|
|
"""Provider name"""
|
|
pass
|