01先搭出一条能运行的流程 · 第 3 章
总进度 3 / 13

02|把一句话整理成三个明确的字段

用户说“查一下 B1001 发货没有”,人能找到订单号,接口节点却需要一个明确的 order id 。这一节让模型提取意图、订单号和摘要,返回固定结构的对象。

2026-09-28约 8 分钟33 行代码难度 ★★

如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。

用户说“查一下 B1001 发货没有”,人能找到订单号,接口节点却需要一个明确的 order_id。这一节让模型提取意图、订单号和摘要,返回固定结构的对象。

你会配置 JSON Schema,绑定 structured_output,再用有订单号和无订单号的输入做对照。结构稳定以后,后续节点才知道到哪里取值。

先分清文字、记录和列表

变量可以理解为带标签的数据格子。名字告诉你格子里装什么,类型告诉后面的节点应该怎样使用它。同样看见“订单信息”,里面可能是一段文字,也可能是一条能逐字段读取的记录。

像素插图:String、Object 与 Array 的用途和例子

类型一个实际值后面可以怎样用
String"订单 B1001"当作一句话展示,或继续提取字段
Object{"order_id":"B1001","status":"shipped"}分别读取订单号与状态
Array["什么时候发货?","怎么开发票?"]用迭代节点逐条处理

对象像一张表格中的一行,数组像一叠同类卡片。"[{\"id\":1}]" 虽然看起来像列表,外层引号仍说明它是一段字符串;需要解析后才能按数组操作。这一节要让模型直接按约定输出字段,减少下游“看起来能读,实际取不到”的问题。

另一个常见混淆是变量名与变量路径。代码节点里你可以把输入命名为 result,但它的值仍需从上游节点的某个输出绑定过来。写好名字只是在贴标签,选择来源才是把数据装进去。

1. 建立字段提取流程

复制自己的模型应用,命名 Bread-02-字段提取。保留必填输入 query,把 LLM 改名为“提取字段”,选择支持当前结构化输出方式的模型。

System 改成:

识别用户主要意图、订单号和一句话摘要。
intent 只能是 policy(规则咨询)、order(订单查询)、ticket(人工工单)、other(其他)。
order_id 只提取用户明确给出的订单号;没有时返回空字符串,不猜测。
summary 保留用户原意,不补充用户没说的事实。

User 继续通过选择器绑定 输入 → query。先别运行,还需要定义返回结构。

结构化输出就像把留言抄进固定表格

收到“帮我查 B1001,想知道发货没有”,人工客服会把主要意图记成订单查询,把订单号写进订单号栏,再留一句摘要。程序做结构化提取,也是把自由表达放进约定的格子。

如果模型每次自由回复,一次说“订单为 B1001”,一次说“您提供的单号是 B1001”,后面的代码就要处理许多不同句式。字段稳定以后,后续只读取 order_id,不需要反复猜整句话。

但表格填得整齐,不意味着填的内容一定正确。把 B1001 抄成 B1007,同样可以是合法字符串。结构化输出解决的是接口形状,内容正确性还要通过样例、规则与业务数据检查。

试读到这里 · 后续内容已封存

关注公众号,继续把这章学完

在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。