diff --git a/strix/config/models.py b/strix/config/models.py index 89ec38c..a0be563 100644 --- a/strix/config/models.py +++ b/strix/config/models.py @@ -49,6 +49,7 @@ def configure_sdk_model_defaults(settings: Settings) -> None: if llm.api_key: set_default_openai_key(llm.api_key, use_for_tracing=False) _configure_litellm_default("api_key", llm.api_key) + _mirror_api_key_to_provider_env(llm.model, llm.api_key) if llm.api_base: os.environ["OPENAI_BASE_URL"] = llm.api_base _configure_litellm_default("api_base", llm.api_base) @@ -57,6 +58,22 @@ def configure_sdk_model_defaults(settings: Settings) -> None: set_default_openai_api("responses") +def _mirror_api_key_to_provider_env(model_name: str | None, api_key: str) -> None: + if not model_name: + return + name = model_name.strip() + for prefix in ("litellm/", "any-llm/"): + if name.lower().startswith(prefix): + name = name[len(prefix) :] + break + if "/" not in name: + return + provider = name.split("/", 1)[0].strip().upper() + if not provider: + return + os.environ.setdefault(f"{provider}_API_KEY", api_key) + + def _configure_litellm_compatibility() -> None: """Enable LiteLLM's permissive param-handling mode.""" import litellm