"""LiteLLM provider — multi-provider gateway.""" from __future__ import annotations from typing import Any from voice_to_notes.providers.base import AIProvider class LiteLLMProvider(AIProvider): """Routes through LiteLLM for access to 100+ LLM providers.""" def __init__(self, model: str = "gpt-4o-mini", **kwargs: Any) -> None: self._model = model self._extra_kwargs = kwargs def chat(self, messages: list[dict[str, str]], **kwargs: Any) -> str: try: import litellm except ImportError: raise RuntimeError("litellm package is required. Install with: pip install litellm") merged_kwargs = {**self._extra_kwargs, **kwargs} response = litellm.completion( model=merged_kwargs.get("model", self._model), messages=messages, temperature=merged_kwargs.get("temperature", 0.7), max_tokens=merged_kwargs.get("max_tokens", 2048), ) return response.choices[0].message.content or "" def is_available(self) -> bool: try: import litellm # noqa: F401 return True except ImportError: return False @property def name(self) -> str: return "LiteLLM"