diff --git a/.env.example b/.env.example index 226fb2a..b1e6836 100644 --- a/.env.example +++ b/.env.example @@ -12,6 +12,7 @@ OPENAI_API_KEY= # Anthropic (used when LLM_PROVIDER=anthropic) ANTHROPIC_API_KEY= +# ANTHROPIC_BASE_URL=https://your-proxy.example.com # optional; routes Anthropic API calls via a custom proxy # LLM_MODEL=claude-opus-4-7 # optional override; default: claude-opus-4-7 # CHART_LLM_MODEL=claude-haiku-4-5 diff --git a/backend/src/analytics_agent/agent/llm.py b/backend/src/analytics_agent/agent/llm.py index 0e1c30c..3e7c4c9 100644 --- a/backend/src/analytics_agent/agent/llm.py +++ b/backend/src/analytics_agent/agent/llm.py @@ -16,6 +16,8 @@ def _make_anthropic(model: str, streaming: bool) -> BaseChatModel: kwargs: dict = {"model_name": model, "streaming": streaming} if settings.anthropic_api_key: kwargs["api_key"] = SecretStr(settings.anthropic_api_key) + if settings.anthropic_base_url: + kwargs["anthropic_api_url"] = settings.anthropic_base_url return ChatAnthropic(**kwargs) # type: ignore[call-arg] diff --git a/backend/src/analytics_agent/config.py b/backend/src/analytics_agent/config.py index 193a59e..24f6caf 100644 --- a/backend/src/analytics_agent/config.py +++ b/backend/src/analytics_agent/config.py @@ -175,6 +175,7 @@ class Settings(BaseSettings): llm_provider: str = "openai" openai_api_key: str = "" anthropic_api_key: str = "" + anthropic_base_url: str = "" google_api_key: str = "" # Bedrock — uses the standard AWS credential chain by default (env vars, # ~/.aws/credentials, IAM role). Set the explicit *_key_id/*_access_key