diff --git a/api/core/chain/llm_router_chain.py b/api/core/chain/llm_router_chain.py index 3108561e6b..1e3ee57c21 100644 --- a/api/core/chain/llm_router_chain.py +++ b/api/core/chain/llm_router_chain.py @@ -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.")