|
|
|
@@ -84,13 +84,16 @@ 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.replace("```json", "").replace("```", "") |
|
|
|
start_index = json_string.find("```json") |
|
|
|
end_index = json_string.find("```", start_index + len("```json")) |
|
|
|
|
|
|
|
# Strip whitespace and newlines from the start and end |
|
|
|
json_string = json_string.strip() |
|
|
|
if start_index != -1 and end_index != -1: |
|
|
|
extracted_content = json_string[start_index + len("```json"):end_index].strip() |
|
|
|
|
|
|
|
# Parse the JSON string into a Python dictionary |
|
|
|
parsed = json.loads(json_string) |
|
|
|
# Parse the JSON string into a Python dictionary |
|
|
|
parsed = json.loads(extracted_content) |
|
|
|
else: |
|
|
|
raise Exception("Could not find JSON block in the output.") |
|
|
|
|
|
|
|
return parsed |
|
|
|
|