| 123456789101112131415161718192021222324 | from typing import List, Optional, Protocolfrom ..schemas.base import ChatMessage, ChatResponse, DataResponseclass LLMProvider(Protocol):    def chat(        self,        messages: List[ChatMessage],        *,        model: Optional[str] = None,        temperature: Optional[float] = None,        max_tokens: Optional[int] = None,    ) -> ChatResponse:        ...class SpeechProvider(Protocol):    def text_to_speech(        self,        text: str,        *,        model: Optional[str] = None,    ) -> DataResponse:        ...
 |