From 3f9744c9f44bef41d61e59232e79d313ead3e62e Mon Sep 17 00:00:00 2001 From: William FH <13333726+hinthornw@users.noreply.github.com> Date: Mon, 3 Jul 2023 14:47:17 -0700 Subject: [PATCH] Accept no 'reasoning' response in qa evaluator (#7107) Re add since #6995 inadvertently undid #7031 --- langchain/evaluation/qa/eval_chain.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/langchain/evaluation/qa/eval_chain.py b/langchain/evaluation/qa/eval_chain.py index 4a5fd53a1e2..bba4c298263 100644 --- a/langchain/evaluation/qa/eval_chain.py +++ b/langchain/evaluation/qa/eval_chain.py @@ -19,14 +19,20 @@ def _parse_string_eval_output(text: str) -> dict: Returns: Any: The parsed output. """ - reasoning, verdict = text.strip().rsplit("\n", maxsplit=1) + splits = text.strip().rsplit("\n", maxsplit=1) + if len(splits) == 1: + verdict = splits[0] + reasoning = None + else: + reasoning, verdict = splits + reasoning = reasoning.strip() score = ( 1 if verdict.upper() == "CORRECT" else (0 if verdict.upper() == "INCORRECT" else None) ) return { - "reasoning": reasoning.strip(), + "reasoning": reasoning, "value": verdict, "score": score, }