From 8264fe2be3dc8de157f17fe2237f5c0a5679e7bc Mon Sep 17 00:00:00 2001 From: empty Date: Thu, 1 Jan 2026 14:12:35 +0800 Subject: [PATCH] fix: auto-set provider API key env var for LiteLLM validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LiteLLM validates provider-specific API key env vars before making calls. When using custom headers, auto-set ANTHROPIC_API_KEY or OPENAI_API_KEY to pass validation (actual auth still uses extra_headers). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- backend/app/llm.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/app/llm.py b/backend/app/llm.py index 287d60a..e0426a6 100644 --- a/backend/app/llm.py +++ b/backend/app/llm.py @@ -84,6 +84,13 @@ class LLMService: self._extra_headers[self._api_key_header] = self._api_key logger.info(f"Using custom API key header: {self._api_key_header}") + # LiteLLM requires provider-specific API key env var to pass validation + # Set it to satisfy the check (actual auth uses extra_headers) + if self._model.startswith("anthropic/"): + os.environ.setdefault("ANTHROPIC_API_KEY", self._api_key) + elif self._model.startswith("openai/"): + os.environ.setdefault("OPENAI_API_KEY", self._api_key) + if self._mock_mode: logger.info("LLMService running in MOCK mode (forced by LLM_MOCK_MODE)") return