feat: temp fixed Could not parse LLM output on agents folder (#7746)

---------

Co-authored-by: Bagatur <baskaryan@gmail.com>
pull/8225/head
Ani peter benjamin 1 year ago committed by GitHub
parent 125ae6d9de
commit e58b1d7073
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -8,21 +8,45 @@ from langchain.output_parsers.json import parse_json_markdown
from langchain.schema import AgentAction, AgentFinish, OutputParserException
# Define a class that parses output for conversational agents
class ConvoOutputParser(AgentOutputParser):
"""Output parser for the conversational agent."""
def get_format_instructions(self) -> str:
"""Returns formatting instructions for the given output parser."""
return FORMAT_INSTRUCTIONS
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
"""Attempts to parse the given text into an AgentAction or AgentFinish.
Raises:
OutputParserException if parsing fails.
"""
try:
# Attempt to parse the text into a structured format (assumed to be JSON
# stored as markdown)
response = parse_json_markdown(text)
action, action_input = response["action"], response["action_input"]
if action == "Final Answer":
return AgentFinish({"output": action_input}, text)
# If the response contains an 'action' and 'action_input'
if "action" in response and "action_input" in response:
action, action_input = response["action"], response["action_input"]
# If the action indicates a final answer, return an AgentFinish
if action == "Final Answer":
return AgentFinish({"output": action_input}, text)
else:
# Otherwise, return an AgentAction with the specified action and
# input
return AgentAction(action, action_input, text)
else:
return AgentAction(action, action_input, text)
# If the necessary keys aren't present in the response, raise an
# exception
raise OutputParserException(
f"Missing 'action' or 'action_input' in LLM output: {text}"
)
except Exception as e:
# If any other exception is raised during parsing, also raise an
# OutputParserException
raise OutputParserException(f"Could not parse LLM output: {text}") from e
@property

Loading…
Cancel
Save