From adf019724f095b1835040f4dd8c1ff0026cbc729 Mon Sep 17 00:00:00 2001 From: William FH <13333726+hinthornw@users.noreply.github.com> Date: Wed, 26 Jul 2023 01:53:22 -0700 Subject: [PATCH] unpack later (#8278) Fix https://github.com/langchain-ai/langchain/issues/8272 --- .../langchain/evaluation/comparison/eval_chain.py | 7 ++++++- libs/langchain/langchain/evaluation/criteria/eval_chain.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) 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(),