diff --git a/openevolve/config.py b/openevolve/config.py index 358d0e16b..7ab0c746e 100644 --- a/openevolve/config.py +++ b/openevolve/config.py @@ -282,6 +282,11 @@ def from_dict(cls, config_dict: Dict[str, Any]) -> "Config": llm_dict["evaluator_models"] = [ LLMModelConfig(**m) for m in llm_dict["evaluator_models"] ] + api_key = llm_dict.get("api_key", "").strip() + if api_key.startswith("${") and api_key.endswith("}"): + api_key_env = os.environ.get(api_key[2:-1]) + if api_key_env is not None: + llm_dict["api_key"] = api_key_env config.llm = LLMConfig(**llm_dict) if "prompt" in config_dict: config.prompt = PromptConfig(**config_dict["prompt"])