"""Base LLM client interface.""" from abc import ABC, abstractmethod from collections.abc import Iterator class LLMClient(ABC): """Abstract base class for LLM clients.""" @abstractmethod def generate(self, prompt: str, **kwargs) -> str: """Generate a response from the LLM.""" pass @abstractmethod def stream_generate(self, prompt: str, **kwargs) -> Iterator[str]: """Stream a response from the LLM.""" pass @abstractmethod def test_connection(self) -> bool: """Test if the LLM service is available.""" pass @abstractmethod def get_available_models(self) -> list[str]: """Get list of available models.""" pass