生成语言模型由于生成不可控,所以生成的自然语言是非结构话的文本。而prompt的出现使得用户可以将期望的输出文本格式进行约束和规范。LangChain中的output parsers模块可以使模型输出的期望的结构化文本,使用的正是prompt操作。
LangChain中的output parsers一共有七个,分别是List parser、Datetime parser、Enum parser、Pydantic (JSON) parser、Structured output parser、Retry parser、Auto-fixing parser。前四种parser用于常见的格式输出转换,Structured output parser用于多字段输出时使用,最后的两种是对于格式转换失败之后的修复措施。
List parser
想要实现一个输出转换器,只要实现两个必要方法和一个可选方法。两个必要方法分别是一个格式说明方法和一个格式解析方法。方法的作用顾名思义,格式说明就是prompt,告诉模型想要的文本格式,一般为字符串形式;格式解析方法就是将模型输出的字符串解析为最终的输出格式。一个可选方法:Parse with prompt,将模型输出和prompt一起输入给模型以修复得到想要输出结构,该方法通常用于重试修复retry parser。
以list parser为例:
格式说明的prompt如下,也是比较经典的规范说明+例子的形式给出。
output_parser = CommaSeparatedListOutputParser()
format_instructions = output_parser.get_format_instructions()
print(format_instructions)
>

最低0.47元/天 解锁文章
1357

被折叠的 条评论
为什么被折叠?



