Fix: Read LLM provider config at runtime for UI updates
Browse files- src/agent/llm_client.py +5 -5
src/agent/llm_client.py
CHANGED
|
@@ -45,9 +45,7 @@ GROQ_MODEL = "qwen/qwen3-32b" # Free tier: 60 req/min, fast inference
|
|
| 45 |
TEMPERATURE = 0 # Deterministic for factoid answers
|
| 46 |
MAX_TOKENS = 4096
|
| 47 |
|
| 48 |
-
# LLM Provider Selection
|
| 49 |
-
LLM_PROVIDER = os.getenv("LLM_PROVIDER", "gemini").lower() # "gemini", "huggingface", "groq", or "claude"
|
| 50 |
-
ENABLE_LLM_FALLBACK = os.getenv("ENABLE_LLM_FALLBACK", "false").lower() == "true"
|
| 51 |
|
| 52 |
# ============================================================================
|
| 53 |
# Logging Setup
|
|
@@ -172,7 +170,9 @@ def _call_with_fallback(function_name: str, *args, **kwargs) -> Any:
|
|
| 172 |
Raises:
|
| 173 |
Exception: If selected provider fails and fallback disabled, or all providers fail
|
| 174 |
"""
|
| 175 |
-
|
|
|
|
|
|
|
| 176 |
|
| 177 |
# Define fallback order (excluding primary provider)
|
| 178 |
all_providers = ["gemini", "huggingface", "groq", "claude"]
|
|
@@ -187,7 +187,7 @@ def _call_with_fallback(function_name: str, *args, **kwargs) -> Any:
|
|
| 187 |
logger.warning(f"[{function_name}] Primary provider {primary_provider} failed: {primary_error}")
|
| 188 |
|
| 189 |
# If fallback disabled, raise immediately
|
| 190 |
-
if not
|
| 191 |
logger.error(f"[{function_name}] Fallback disabled. Failing fast.")
|
| 192 |
raise Exception(
|
| 193 |
f"{function_name} failed with {primary_provider}: {primary_error}. "
|
|
|
|
| 45 |
TEMPERATURE = 0 # Deterministic for factoid answers
|
| 46 |
MAX_TOKENS = 4096
|
| 47 |
|
| 48 |
+
# LLM Provider Selection (removed - now read at runtime for UI flexibility)
|
|
|
|
|
|
|
| 49 |
|
| 50 |
# ============================================================================
|
| 51 |
# Logging Setup
|
|
|
|
| 170 |
Raises:
|
| 171 |
Exception: If selected provider fails and fallback disabled, or all providers fail
|
| 172 |
"""
|
| 173 |
+
# Read config at runtime for UI flexibility
|
| 174 |
+
primary_provider = os.getenv("LLM_PROVIDER", "gemini").lower()
|
| 175 |
+
enable_fallback = os.getenv("ENABLE_LLM_FALLBACK", "false").lower() == "true"
|
| 176 |
|
| 177 |
# Define fallback order (excluding primary provider)
|
| 178 |
all_providers = ["gemini", "huggingface", "groq", "claude"]
|
|
|
|
| 187 |
logger.warning(f"[{function_name}] Primary provider {primary_provider} failed: {primary_error}")
|
| 188 |
|
| 189 |
# If fallback disabled, raise immediately
|
| 190 |
+
if not enable_fallback:
|
| 191 |
logger.error(f"[{function_name}] Fallback disabled. Failing fast.")
|
| 192 |
raise Exception(
|
| 193 |
f"{function_name} failed with {primary_provider}: {primary_error}. "
|