diff --git a/backend/scripts/run_parallel_simulation.py b/backend/scripts/run_parallel_simulation.py index 38b211e..e9bb943 100644 --- a/backend/scripts/run_parallel_simulation.py +++ b/backend/scripts/run_parallel_simulation.py @@ -1019,25 +1019,24 @@ def create_model(config: Dict[str, Any], use_boost: bool = False): if not llm_model: llm_model = config.get("llm_model", "gpt-4o-mini") - # 设置 camel-ai 所需的环境变量 - if llm_api_key: - os.environ["OPENAI_API_KEY"] = llm_api_key - - if not os.environ.get("OPENAI_API_KEY"): - raise ValueError("缺少 API Key 配置,请在项目根目录 .env 文件中设置 LLM_API_KEY") - - if llm_base_url: - os.environ["OPENAI_BASE_URL"] = llm_base_url + if not llm_api_key: + raise ValueError("LLM_API_KEY not configured. Set it in .env file.") print(f"{config_label} model={llm_model}, base_url={llm_base_url[:40] if llm_base_url else '默认'}...") # camel-ai reads OPENAI_API_KEY from env automatically - # For base_url, we must also set it as env var - # (model_config_dict passes values to create() call, not client constructor) + # Pass api_key and base_url via model_config_dict + # camel-ai extracts these for the OpenAI client constructor + model_config = {} + if llm_api_key: + model_config["api_key"] = llm_api_key + if llm_base_url: + model_config["base_url"] = llm_base_url return ModelFactory.create( model_platform=ModelPlatformType.OPENAI, model_type=llm_model, + model_config_dict=model_config, ) diff --git a/backend/scripts/run_reddit_simulation.py b/backend/scripts/run_reddit_simulation.py index 1ae3687..fdd73cb 100644 --- a/backend/scripts/run_reddit_simulation.py +++ b/backend/scripts/run_reddit_simulation.py @@ -449,23 +449,23 @@ class RedditSimulationRunner: if not llm_model: llm_model = self.config.get("llm_model", "gpt-4o-mini") - # 设置 camel-ai 所需的环境变量 - if llm_api_key: - os.environ["OPENAI_API_KEY"] = llm_api_key - - if not os.environ.get("OPENAI_API_KEY"): - raise ValueError("缺少 API Key 配置,请在项目根目录 .env 文件中设置 LLM_API_KEY") - - if llm_base_url: - os.environ["OPENAI_BASE_URL"] = llm_base_url + if not llm_api_key: + raise ValueError("LLM_API_KEY not configured. Set it in .env file.") print(f"LLM配置: model={llm_model}, base_url={llm_base_url[:40] if llm_base_url else '默认'}...") - # camel-ai reads OPENAI_API_KEY from env automatically + # Pass api_key and base_url via model_config_dict + # camel-ai extracts these for the OpenAI client constructor + model_config = {} + if llm_api_key: + model_config["api_key"] = llm_api_key + if llm_base_url: + model_config["base_url"] = llm_base_url return ModelFactory.create( model_platform=ModelPlatformType.OPENAI, model_type=llm_model, + model_config_dict=model_config, ) def _get_active_agents_for_round( diff --git a/backend/scripts/run_twitter_simulation.py b/backend/scripts/run_twitter_simulation.py index d983538..61c6c13 100644 --- a/backend/scripts/run_twitter_simulation.py +++ b/backend/scripts/run_twitter_simulation.py @@ -442,23 +442,23 @@ class TwitterSimulationRunner: if not llm_model: llm_model = self.config.get("llm_model", "gpt-4o-mini") - # 设置 camel-ai 所需的环境变量 - if llm_api_key: - os.environ["OPENAI_API_KEY"] = llm_api_key - - if not os.environ.get("OPENAI_API_KEY"): - raise ValueError("缺少 API Key 配置,请在项目根目录 .env 文件中设置 LLM_API_KEY") - - if llm_base_url: - os.environ["OPENAI_BASE_URL"] = llm_base_url + if not llm_api_key: + raise ValueError("LLM_API_KEY not configured. Set it in .env file.") print(f"LLM配置: model={llm_model}, base_url={llm_base_url[:40] if llm_base_url else '默认'}...") - # camel-ai reads OPENAI_API_KEY from env automatically + # Pass api_key and base_url via model_config_dict + # camel-ai extracts these for the OpenAI client constructor + model_config = {} + if llm_api_key: + model_config["api_key"] = llm_api_key + if llm_base_url: + model_config["base_url"] = llm_base_url return ModelFactory.create( model_platform=ModelPlatformType.OPENAI, model_type=llm_model, + model_config_dict=model_config, ) def _get_active_agents_for_round(