From 754b5133e9afb39f27966e7eb510fa823d821171 Mon Sep 17 00:00:00 2001 From: Theodore Rolle Date: Tue, 23 May 2023 12:47:26 -0700 Subject: [PATCH] Improve PlanningOutputParser whitespace handling (#5143) Some LLM's will produce numbered lists with leading whitespace, i.e. in response to "What is the sum of 2 and 3?": ``` Plan: 1. Add 2 and 3. 2. Given the above steps taken, please respond to the users original question. ``` This commit updates the PlanningOutputParser regex to ignore leading whitespace before the step number, enabling it to correctly parse this format. --- .../experimental/plan_and_execute/planners/chat_planner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langchain/experimental/plan_and_execute/planners/chat_planner.py b/langchain/experimental/plan_and_execute/planners/chat_planner.py index f65efd60..58134d5c 100644 --- a/langchain/experimental/plan_and_execute/planners/chat_planner.py +++ b/langchain/experimental/plan_and_execute/planners/chat_planner.py @@ -25,7 +25,7 @@ SYSTEM_PROMPT = ( class PlanningOutputParser(PlanOutputParser): def parse(self, text: str) -> Plan: - steps = [Step(value=v) for v in re.split("\n\d+\. ", text)[1:]] + steps = [Step(value=v) for v in re.split("\n\s*\d+\. ", text)[1:]] return Plan(steps=steps)