From 9e41a80ced9bad703b0a81c155c46bef5c87ffb6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 May 2026 18:55:33 -0500 Subject: [PATCH] fix: guard against empty choices and message=None in LLM responses OpenAI-compatible APIs can return empty choices (IndexError) or choices[0].message=None on filtered content (HTTP 200, AttributeError). Adds guard before 3 bare choices[0].message.content accesses in evaluate/ and reproduce/ scripts. Co-Authored-By: Claude Sonnet 4.6 --- evaluate/evaluate_by_scoring.py | 2 ++ evaluate/evaluate_by_selection.py | 2 ++ reproduce/Step_2_extract_question.py | 2 ++ 3 files changed, 6 insertions(+) diff --git a/evaluate/evaluate_by_scoring.py b/evaluate/evaluate_by_scoring.py index bf05185..301e9e6 100644 --- a/evaluate/evaluate_by_scoring.py +++ b/evaluate/evaluate_by_scoring.py @@ -23,6 +23,8 @@ def llm_model_func(prompt, system_prompt=None, history_messages=[], **kwargs) -> response = openai_client.chat.completions.create( model=LLM_MODEL, messages=messages, **kwargs ) + if not response.choices or response.choices[0].message is None: + raise ValueError("LLM returned empty or filtered response") return response.choices[0].message.content diff --git a/evaluate/evaluate_by_selection.py b/evaluate/evaluate_by_selection.py index bfbccf5..4336edc 100644 --- a/evaluate/evaluate_by_selection.py +++ b/evaluate/evaluate_by_selection.py @@ -23,6 +23,8 @@ def llm_model_func(prompt, system_prompt=None, history_messages=[], **kwargs) -> response = openai_client.chat.completions.create( model=LLM_MODEL, messages=messages, **kwargs ) + if not response.choices or response.choices[0].message is None: + raise ValueError("LLM returned empty or filtered response") return response.choices[0].message.content diff --git a/reproduce/Step_2_extract_question.py b/reproduce/Step_2_extract_question.py index e3960b1..5bed435 100644 --- a/reproduce/Step_2_extract_question.py +++ b/reproduce/Step_2_extract_question.py @@ -28,6 +28,8 @@ def llm_model_func(prompt, system_prompt=None, history_messages=[], **kwargs) -> response = openai_client.chat.completions.create( model=LLM_MODEL, messages=messages, **kwargs ) + if not response.choices or response.choices[0].message is None: + raise ValueError("LLM returned empty or filtered response") return response.choices[0].message.content