diff --git a/src/adapters/claude_adapter.py b/src/adapters/claude_adapter.py index f814878..4f0734d 100644 --- a/src/adapters/claude_adapter.py +++ b/src/adapters/claude_adapter.py @@ -17,10 +17,14 @@ logger = logging.getLogger(__name__) class ClaudeAdapter(ModelAdapter): """Adapter for the Anthropic Claude API.""" - def __init__(self, api_key: str | None = None) -> None: - self._client = anthropic.AsyncAnthropic( - api_key=api_key or settings.anthropic_api_key, - ) + def __init__(self, api_key: str | None = None, base_url: str | None = None) -> None: + kwargs: dict[str, Any] = { + "api_key": api_key or settings.anthropic_api_key, + } + url = base_url or settings.anthropic_base_url + if url: + kwargs["base_url"] = url + self._client = anthropic.AsyncAnthropic(**kwargs) # ------------------------------------------------------------------ # Streaming diff --git a/src/config.py b/src/config.py index a30bf59..ba58d0b 100644 --- a/src/config.py +++ b/src/config.py @@ -29,6 +29,7 @@ class Settings(BaseSettings): # --- Model providers --- anthropic_api_key: str = "" + anthropic_base_url: str = "" # Custom base URL (for MiniMax Anthropic-compatible, etc.) openai_api_key: str = "" openai_base_url: str = "" # Custom base URL (for MiniMax, DeepInfra, etc.) default_model_provider: str = "claude"