langchain.output_parsers.structured.StructuredOutputParser¶

class langchain.output_parsers.structured.StructuredOutputParser(*, response_schemas: List[ResponseSchema])[source]¶

Bases: BaseOutputParser

Parse the output of an LLM call to a structured output.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

param response_schemas: List[langchain.output_parsers.structured.ResponseSchema] [Required]¶

The schemas for the response.

dict(**kwargs: Any) Dict¶

Return dictionary representation of output parser.

classmethod from_response_schemas(response_schemas: List[ResponseSchema]) StructuredOutputParser[source]¶
get_format_instructions(only_json: bool = False) str[source]¶

Get format instructions for the output parser.

example: ```python from langchain.output_parsers.structured import (

StructuredOutputParser, ResponseSchema

)

response_schemas = [
ResponseSchema(

name=”foo”, description=”a list of strings”, type=”List[string]” ),

ResponseSchema(

name=”bar”, description=”a string”, type=”string” ),

]

parser = StructuredOutputParser.from_response_schemas(response_schemas)

print(parser.get_format_instructions())

output: # The output should be a Markdown code snippet formatted in the following # schema, including the leading and trailing “`json" and "`”: # # ```json # { # “foo”: List[string] // a list of strings # “bar”: string // a string # }

Parameters

only_json (bool) – If True, only the json in the Markdown code snippet will be returned, without the introducing text. Defaults to False.

invoke(input: str | langchain.schema.messages.BaseMessage, config: langchain.schema.runnable.RunnableConfig | None = None) T¶
parse(text: str) Any[source]¶

Parse a single string model output into some structure.

Parameters

text – String output of a language model.

Returns

Structured output.

parse_result(result: List[Generation]) T¶

Parse a list of candidate model Generations into a specific format.

The return value is parsed from only the first Generation in the result, which

is assumed to be the highest-likelihood Generation.

Parameters

result – A list of Generations to be parsed. The Generations are assumed to be different candidate outputs for a single model input.

Returns

Structured output.

parse_with_prompt(completion: str, prompt: PromptValue) Any¶

Parse the output of an LLM call with the input prompt for context.

The prompt is largely provided in the event the OutputParser wants to retry or fix the output in some way, and needs information from the prompt to do so.

Parameters
  • completion – String output of a language model.

  • prompt – Input PromptValue.

Returns

Structured output

to_json() Union[SerializedConstructor, SerializedNotImplemented]¶
to_json_not_implemented() SerializedNotImplemented¶
property lc_attributes: Dict¶

Return a list of attribute names that should be included in the serialized kwargs. These attributes must be accepted by the constructor.

property lc_namespace: List[str]¶

Return the namespace of the langchain object. eg. [“langchain”, “llms”, “openai”]

property lc_secrets: Dict[str, str]¶

Return a map of constructor argument names to secret ids. eg. {“openai_api_key”: “OPENAI_API_KEY”}

property lc_serializable: bool¶

Return whether or not the class is serializable.

model Config¶

Bases: object

extra = 'ignore'¶