fix: pass api_key/base_url via model_config_dict, not env vars

camel-ai v0.2.78 reads OPENAI_API_KEY from env and auto-passes it to
chat.completions.create() which doesn't accept it (TypeError).

Fix: pass api_key and base_url through model_config_dict so camel-ai
extracts them for the OpenAI client constructor only.
This commit is contained in:
Kunthawat Greethong
2026-06-18 20:12:51 +07:00
parent 3ba42db6e2
commit cfaa6e8b8d
3 changed files with 30 additions and 31 deletions

View File

@@ -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(