跳到正文

结构化输出

Structured Output

中级通用

结构化输出(Structured Output)是让 AI 按预先约定的字段和数据类型返回结果,而不是自由写一段话。它解决的是程序难以稳定读取 AI 回复的问题,例如让客服工单分类结果固定包含类别、优先级和理由,方便后台继续处理。

你可能会说:「帮我让 AI 每次都按固定字段返回结果,这样程序能直接读取,不用从一段话里猜。」

读之前建议先了解

动手看看

自由回答客服工单AI分类分析工单字段校验等待结果后台分派尚未分派
1

用户提交工单:“钱扣了,订单却显示未支付。”先让 AI 自由回答,看看后台能不能直接使用。

要点

  1. 1

    先约定字段和数据类型

    假设你要把用户反馈录入后台,可以先约定返回类别、紧急程度和摘要,并说明哪些字段必须有、各自是什么类型。这样程序拿到结果后,就知道从哪里读取信息。

  2. 2

    格式正确不等于内容正确

    AI 即使按约定填好了字段,也可能把退款投诉误判成产品建议。结构化输出解决的是结果能否被程序稳定读取;分类是否可信,还得靠测试样例、业务规则或人工复核。

  3. 3

    接收结果后仍要校验

    你可以在请求时指定输出结构,但程序收到结果后仍要检查字段、类型和允许的取值。因为下游代码依赖这些约定,校验失败时就能重新请求或交给人工处理,而不是把异常数据直接写入系统。

容易混淆的地方

结构化输出说的是 AI 返回结果的组织方式;JSON 只是常见的承载格式,写成 JSON 不代表字段和值就符合你的约定。它也不同于普通提示词里说一句“请按这个格式回答”:后者可以描述目标,但如果程序要依赖结果继续运行,还需要明确字段约束,并在接收时校验。

什么时候用

适合用

  • 做客服工单自动分流时,让 AI 返回固定的类别、优先级和简短理由,再交给后台创建任务。
  • 从上传的合同中提取签约方和日期时,把结果放进约定字段,方便展示和人工核对。
  • 让 AI 判断用户输入是否可以触发工具操作时,返回明确的操作类型与参数,供程序校验后执行。

不适合用

  • 只是让 AI 帮你讨论产品方向、逐步探索想法时,自然语言对话更合适,不必先限定返回字段。
  • 要给用户写一篇可直接阅读的帮助文章时,用自然语言正文更合适;只有文章还要进入固定的数据流程,才需要约定结构。
  • 数据本来来自确定的表单字段,且不需要 AI 理解或提取时,直接读取并校验表单数据,不必让 AI 重新生成一份。

练一练

你在做一个反馈后台:AI 读完用户留言后,程序要自动填入类别和优先级,并把不确定的结果交给客服。哪种做法最合适?

让 AI 帮你做

请为反馈分类功能设计结构化输出:返回类别、优先级、简短理由和是否需人工处理。说明各字段的类型与允许取值,并在后端校验;校验失败时不要写入数据库,请给出可处理的失败结果。

接下来学什么