拥抱大模型(三):OutputParser,格式化输出
大模型可以回答你的任何问题,但有时我们需要将大模型的回复进行格式化解析以便进行后续的处理,此时就需要我们使用一些特殊的技巧提示大模型:你应该如此如此,这般这般返回一个简单的例子(文心一言):可以看到,我们在prompt中告诉大模型,你应该以如下json格式返回,大模型按照我们的要求,切实返回了我们要求的json格式。这样,我们就可以把大模型的输出进行解析,大模型的输出,不再是无法解析的数据。langchain为我们提供了一系列工具来为prompt添加输出格式指令,解析输出,重试机制等等。 使用LangChain工具 PydanticOutputParser(json输出解析) from pydantic import BaseModel, Field from langchain.output_parsers import PydanticOutputParser, OutputFixingParser class FlowerDescription(BaseModel): title: str = Field(description="这本书的标题") author: int = Field(description="这本书的作者") words: str = Field(description="这本书的字数") description: str = Field(description="这本书的主要情节") # 定义输出解析器 output_parser = PydanticOutputParser(pydantic_object=FlowerDescription) # 获取输出格式指示 format_instructions = output_parser.get_format_instructions() print(format_instructions) The output should be formatted as a JSON instance that conforms to the JSON schema below. As an example, for the schema {"properties": {"foo": {"title": "Foo", "description": "a list of strings", "type": "array", "items": {"type": "string"}}}, "required": ["foo"]}} the object {"foo": ["bar", "baz"]} is a well-formatted instance of the schema....