From d598e43b08c87fddd36dfbfd901a0ee32dc2e3c7 Mon Sep 17 00:00:00 2001 From: Ankush Gola Date: Sat, 27 May 2023 14:30:10 -0700 Subject: [PATCH] fix output parsing for chat agent --- langchain/agents/chat/output_parser.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/langchain/agents/chat/output_parser.py b/langchain/agents/chat/output_parser.py index 1cdd839eac0..4e91cbb7a3b 100644 --- a/langchain/agents/chat/output_parser.py +++ b/langchain/agents/chat/output_parser.py @@ -1,3 +1,4 @@ +import re from typing import Union from langchain.agents.agent import AgentOutputParser @@ -18,7 +19,15 @@ class ChatOutputParser(AgentOutputParser): {"output": text.split(FINAL_ANSWER_ACTION)[-1].strip()}, text ) try: - response = parse_json_markdown(text) + text = text.strip().replace("```json", "```") + markdown_section = re.search("```(.*?)```", text, re.DOTALL) + if markdown_section: + extracted_text = markdown_section.group( + 1 + ).strip() # remove leading/trailing whitespaces + else: + extracted_text = "" + response = parse_json_markdown(extracted_text) return AgentAction(response["action"], response["action_input"], text) except Exception: