소스 검색

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

John Wang 1 년 전
부모
커밋
5ca88a4fd9
1개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      api/core/chain/llm_router_chain.py

+ 4 - 0
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.")