diff --git a/libs/langchain/langchain/evaluation/comparison/eval_chain.py b/libs/langchain/langchain/evaluation/comparison/eval_chain.py index 7076ca2804a..2eccdd186fd 100644 --- a/libs/langchain/langchain/evaluation/comparison/eval_chain.py +++ b/libs/langchain/langchain/evaluation/comparison/eval_chain.py @@ -45,7 +45,12 @@ class PairwiseStringResultOutputParser(BaseOutputParser[dict]): ValueError: If the verdict is invalid. """ - reasoning, verdict = text.strip().rsplit("\n", maxsplit=1) + parsed = text.strip().rsplit("\n", maxsplit=1) + if len(parsed) == 1: + reasoning = "" + verdict = parsed[0] + else: + reasoning, verdict = parsed verdict = verdict.strip("[").strip("]") if verdict not in {"A", "B", "C"}: raise ValueError( diff --git a/libs/langchain/langchain/evaluation/criteria/eval_chain.py b/libs/langchain/langchain/evaluation/criteria/eval_chain.py index b5670eb8aeb..838c08fd437 100644 --- a/libs/langchain/langchain/evaluation/criteria/eval_chain.py +++ b/libs/langchain/langchain/evaluation/criteria/eval_chain.py @@ -68,7 +68,12 @@ class CriteriaResultOutputParser(BaseOutputParser[dict]): Returns: Any: The parsed output. """ - reasoning, verdict = text.strip().rsplit("\n", maxsplit=1) + parsed = text.strip().rsplit("\n", maxsplit=1) + if len(parsed) == 1: + reasoning = "" + verdict = parsed[0] + else: + reasoning, verdict = parsed score = 1 if verdict.upper() == "Y" else (0 if verdict.upper() == "N" else None) return { "reasoning": reasoning.strip(),