forked from Archives/langchain
Allow recovering from JSONDecoder errors in StructuredOutputParser (#2616)
This commit is contained in:
parent
6f39e88a2c
commit
5376799a23
@ -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()
|
||||||
|
try:
|
||||||
json_obj = json.loads(json_string)
|
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(
|
||||||
|
Loading…
Reference in New Issue
Block a user