Skip to content

Commit 18dd0c3

Browse files
committed
fix(mmmu): lazy-load judge server to avoid OpenAI API key error on module import
The judge server was initialized at module import time, causing OpenAI API errors in CI environments where OPENAI_API_KEY is not set. Now the server is created on first use via _get_judge_server() instead.
1 parent 455d699 commit 18dd0c3

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

lmms_eval/tasks/mmmu/utils.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,15 @@
3030
API_TYPE = os.getenv("API_TYPE", "openai")
3131
MODEL_VERSION = os.getenv("MODEL_VERSION", "gpt-4o-2024-11-20")
3232

33-
# Initialize the judge server
34-
server_config = ServerConfig(
35-
model_name=MODEL_VERSION,
36-
)
37-
server = get_server(server_name=API_TYPE, config=server_config)
33+
_server = None
34+
35+
36+
def _get_judge_server():
37+
global _server
38+
if _server is None:
39+
server_config = ServerConfig(model_name=MODEL_VERSION)
40+
_server = get_server(server_name=API_TYPE, config=server_config)
41+
return _server
3842

3943

4044
def replace_images_tokens(input_string):
@@ -188,7 +192,7 @@ def mmmu_reasoning_process_results(doc, results):
188192

189193
try:
190194
# Use the llm_judge API for binary evaluation
191-
result = server.evaluate_binary(question=formatted_question, answer=str(answer), prediction=pred, output_format="0/1")
195+
result = _get_judge_server().evaluate_binary(question=formatted_question, answer=str(answer), prediction=pred, output_format="0/1")
192196

193197
# Parse the result
194198
if result["success"]:

0 commit comments

Comments
 (0)