feat: optimize output parse (#906)
This commit is contained in:
parent
1d9cc5ca05
commit
d9afebe216
@ -10,7 +10,7 @@ from langchain.schema import AgentAction, AgentFinish, OutputParserException
|
|||||||
class StructuredChatOutputParser(LCStructuredChatOutputParser):
|
class StructuredChatOutputParser(LCStructuredChatOutputParser):
|
||||||
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
||||||
try:
|
try:
|
||||||
action_match = re.search(r"```(.*?)\n?(.*?)```", text, re.DOTALL)
|
action_match = re.search(r"```(\w*)\n?({.*?)```", text, re.DOTALL)
|
||||||
if action_match is not None:
|
if action_match is not None:
|
||||||
response = json.loads(action_match.group(2).strip(), strict=False)
|
response = json.loads(action_match.group(2).strip(), strict=False)
|
||||||
if isinstance(response, list):
|
if isinstance(response, list):
|
||||||
@ -26,4 +26,4 @@ class StructuredChatOutputParser(LCStructuredChatOutputParser):
|
|||||||
else:
|
else:
|
||||||
return AgentFinish({"output": text}, text)
|
return AgentFinish({"output": text}, text)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise OutputParserException(f"Could not parse LLM output: {text}") from e
|
raise OutputParserException(f"Could not parse LLM output: {text}")
|
||||||
|
Loading…
Reference in New Issue
Block a user