LangChain 结构化输出指南
概述
对于许多应用程序(如聊天机器人),模型需要直接用自然语言回应用户。然而,在某些场景下,我们需要模型以结构化格式输出。例如,我们可能希望将模型输出存储在数据库中,并确保输出符合数据库模式。这种需求促成了结构化输出的概念,即可以指示模型以特定的输出结构进行响应。
核心概念
(1) 模式定义: 输出结构表示为模式,可以通过多种方式定义。
(2) 返回结构化输出: 模型被给予此模式,并被指示返回符合该模式的输出。
推荐用法
以下伪代码说明了使用结构化输出时的推荐工作流程。LangChain 提供了一个方法 with_structured_output(),它自动化了将模式绑定到模型和解析输出的过程。此辅助函数适用于所有支持结构化输出的模型提供商。
# 定义模式
schema = {
"foo": "bar"}
# 将模式绑定到模型
model_with_structure = model.with_structured_output(schema)
# 调用模型以产生符合模式的结构化输出
structured_output = model_with_structure.invoke(user_input)
模式定义
核心概念是模型响应的输出结构需要以某种方式表示。虽然您可以使用的对象类型取决于您使用的模型,但在Python中通常允许或推荐用于结构化输出的常见对象类型。
1. JSON格式(字典/列表)
结构化输出最简单和最常见的格式是类似JSON的结构,在Python中可以表示为字典(dict)或列表(list)。当工具需要原始、灵活和最小开销的结构化数据时,通常直接使用JSON对象(或Python中的字典)。
{
"answer": "用户问题的答案",
"followup_question"

最低0.47元/天 解锁文章
463

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



