from abc import ABC, abstractmethod
from typing import List, Dict, Any, Generator

class BaseProvider(ABC):
    @abstractmethod
    def create_completion(
        self,
        model: str,
        messages: List[Dict[str, str]],
        stream: bool = False,
        **kwargs: Any
    ) -> Generator[str, None, None] | str:
        pass
