Allow recovering from JSONDecoder errors in StructuredOutputParser (#2616)

This commit is contained in:
Nuno Campos 2023-04-09 15:32:49 +01:00 committed by GitHub
parent 6f39e88a2c
commit 5376799a23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -39,7 +39,10 @@ class StructuredOutputParser(BaseOutputParser):
def parse(self, text: str) -> BaseModel: def parse(self, text: str) -> BaseModel:
json_string = text.split("```json")[1].strip().strip("```").strip() json_string = text.split("```json")[1].strip().strip("```").strip()
json_obj = json.loads(json_string) try:
json_obj = json.loads(json_string)
except json.JSONDecodeError as e:
raise OutputParserException(f"Got invalid JSON object. Error: {e}")
for schema in self.response_schemas: for schema in self.response_schemas:
if schema.name not in json_obj: if schema.name not in json_obj:
raise OutputParserException( raise OutputParserException(