From a34905bfcfe947b440623a8b09d27639fc47183b Mon Sep 17 00:00:00 2001 From: James Braza Date: Fri, 27 Sep 2024 12:23:21 -0700 Subject: [PATCH] Fixed crash where the regex didn't extract the status --- paperqa/agents/task.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/paperqa/agents/task.py b/paperqa/agents/task.py index 59731d67..f2ccb5fe 100644 --- a/paperqa/agents/task.py +++ b/paperqa/agents/task.py @@ -175,15 +175,20 @@ def compute_trajectory_metrics( evidence_count: list[float] = [] for t in trajectories: split_answers = [ - re.split( - pattern=GenerateAnswer.ANSWER_SPLIT_REGEX_PATTERN, - string=obs.content, - ) - for obs in t.steps[-1].next_observation - if ( - isinstance(obs, ToolResponseMessage) - and obs.name == GenerateAnswer.TOOL_FN_NAME + split_answers + for split_answers in ( + re.split( + pattern=GenerateAnswer.ANSWER_SPLIT_REGEX_PATTERN, + string=obs.content, + ) + for obs in t.steps[-1].next_observation + if ( + isinstance(obs, ToolResponseMessage) + and obs.name == GenerateAnswer.TOOL_FN_NAME + ) ) + # Filter for places where the regex split succeeded + if len(split_answers) >= 4 # noqa: PLR2004 ] for i, metric_list in enumerate( (total_paper_count, relevant_paper_count, evidence_count),