From ea9094f47fe8bf7bc93b43c61aefeba55cdc1b4f Mon Sep 17 00:00:00 2001 From: Roberto Date: Sun, 19 Apr 2026 00:32:12 +0200 Subject: [PATCH] Add llm providers --- .env.example | 2 ++ app/config/settings.py | 2 ++ app/core/llm.py | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/.env.example b/.env.example index 48f85ee..b8bce20 100644 --- a/.env.example +++ b/.env.example @@ -21,6 +21,8 @@ OPENAI_API_KEY= ANTHROPIC_API_KEY= GOOGLE_API_KEY= CEREBRAS_API_KEY= +GROQ_API_KEY= +DEEPSEEK_API_KEY= # Default model used by any agent that does not have a specific override below. LLM_MODEL=gpt-5-mini diff --git a/app/config/settings.py b/app/config/settings.py index 25e42b8..582c46c 100644 --- a/app/config/settings.py +++ b/app/config/settings.py @@ -16,6 +16,8 @@ class Settings(BaseSettings): ANTHROPIC_API_KEY: str = "" GOOGLE_API_KEY: str = "" CEREBRAS_API_KEY: str = "" + GROQ_API_KEY: str = "" + DEEPSEEK_API_KEY: str = "" LLM_MODEL: str = "gpt-4o" LLM_EMBED_MODEL: str = "text-embedding-3-small" diff --git a/app/core/llm.py b/app/core/llm.py index d06a381..1647d2c 100644 --- a/app/core/llm.py +++ b/app/core/llm.py @@ -51,6 +51,10 @@ def _api_key_for_model(model: str) -> str | None: return settings.GOOGLE_API_KEY or None if model.startswith("cerebras/"): return settings.CEREBRAS_API_KEY or None + if model.startswith("groq/"): + return settings.GROQ_API_KEY or None + if model.startswith("deepseek/"): + return settings.DEEPSEEK_API_KEY or None if model.startswith("github_copilot/"): # GitHub Copilot uses OAuth device-flow tokens managed by LiteLLM. # No API key is required; returning None lets LiteLLM handle auth.