from abc import ABC, abstractmethod class LLMClient(ABC): @abstractmethod async def chat(self, model: str, messages: list[dict]) -> str: """Send a text chat request and return the response content string.""" @abstractmethod async def chat_vision(self, model: str, messages: list[dict]) -> str: """Send a multimodal (vision) chat request and return the response content string."""