fix: raw json parse in llm router chain (#254)

This commit is contained in:
John Wang 2023-05-30 12:16:45 +08:00 committed by GitHub
parent a1c6cecf10
commit 5ca88a4fd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -84,6 +84,7 @@ class RouterOutputParser(BaseOutputParser[Dict[str, str]]):
def parse_json_markdown(self, json_string: str) -> dict:
# Remove the triple backticks if present
json_string = json_string.strip()
start_index = json_string.find("```json")
end_index = json_string.find("```", start_index + len("```json"))
@ -92,6 +93,9 @@ class RouterOutputParser(BaseOutputParser[Dict[str, str]]):
# Parse the JSON string into a Python dictionary
parsed = json.loads(extracted_content)
elif json_string.startswith("{"):
# Parse the JSON string into a Python dictionary
parsed = json.loads(json_string)
else:
raise Exception("Could not find JSON block in the output.")