尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
第 03 课:结构化输出与解析
第 03 课结构化输出与解析配套代码仓库https://gitee.com/wang-zeyong111/lang-chain-lecture本课定位自然语言适合人读结构化数据适合程序处理。只要你的 LLM 输出要进入后续业务逻辑例如分类、抽取、路由、写数据库、触发工具就应该优先考虑结构化输出。学习目标理解结构化输出的工程价值。使用 Pydantic 定义输出 schema。理解 ProviderStrategy 与 ToolStrategy。学会用结构化结果做分类和抽取。掌握结构化输出失败时的处理思路。一、为什么不能只依赖自然语言假设模型回答这个用户看起来比较着急可能是技术问题建议尽快处理。人能看懂但程序很难稳定判断类别是什么优先级是什么是否需要转人工理由字段是什么能否写入数据库。结构化输出可以要求模型返回{category:technical,priority:high,reason:登录失败影响发布}这样下游代码可以直接使用。二、Pydantic schemaPydantic 是 Python 中常用的数据校验库。用它定义结构化输出有三个好处字段清楚类型清楚校验失败时能得到明确错误。示例fromtypingimportLiteralfrompydanticimportBaseModel,FieldclassTicketClassification(BaseModel):category:Literal[billing,technical,account,other]priority:Literal[low,medium,high]reason:strField(description分类理由)Literal可以限制字段取值避免模型自由发挥。三、结构化输出的两种主流策略ProviderStrategy由模型供应商原生支持结构化输出。优点是更可靠因为供应商 API 会约束输出格式。缺点是并非所有模型都支持。适合OpenAI 等支持原生结构化输出的模型高可靠性分类和抽取生产场景。ToolStrategy把结构化输出当作一种特殊工具调用。优点是适配面更广许多支持工具调用的模型都能用。缺点是稳定性通常略低于原生结构化输出。适合模型不支持原生结构化输出Agent 中需要统一使用工具调用机制多 schema 选择。四、with_structured_output对于单次模型调用可以使用structured_modelmodel.with_structured_output(TicketClassification)resultstructured_model.invoke(用户无法登录影响发布)这适合固定任务例如文本分类、字段抽取、评论分析。五、Agent 的response_format如果任务需要 Agent例如还要检索、调用工具、多步判断就可以在create_agent中使用response_formatagentcreate_agent(modelopenai:gpt-5-nano,tools[...],response_formatTicketClassification,)resultagent.invoke({messages:[...]})classificationresult[structured_response]注意结构化结果通常不在最终文本里而在structured_response字段中。六、结构化输出设计原则字段少而关键不要一开始设计二十个字段。字段越多模型越容易出错业务也越难解释。枚举值要明确能用Literal就不要让模型自由写。例如优先级用low | medium | high。字段描述要写给模型看Field(description...)会帮助模型理解字段用途。允许不确定如果业务允许增加confidence;missing_info;needs_human_review;reason。这比强迫模型装作确定更安全。七、错误处理结构化输出可能失败模型返回缺字段字段值不在枚举中JSON 格式不合法一次返回多个结构工具调用参数不符合 schema。处理方式降低 temperature改善字段描述使用供应商原生结构化输出使用 ToolStrategy 的错误重试对失败结果转人工或降级处理把失败案例加入评估集。八、分类与抽取的区别分类是从固定标签中选工单类别情绪风险等级是否转人工。抽取是从文本中提取字段姓名电话日期金额任务负责人。两者都适合结构化输出但 schema 设计不同。分类更依赖枚举抽取更依赖字段描述和可空设计。九、常见坑schema 字段太多导致模型不稳定。枚举值设计含糊例如urgent和high同时存在。prompt 要求输出 JSON但没有校验。结构化输出失败后没有降级策略。忽略structured_response只看最终文本。十、自测清单我能解释为什么结构化输出比自然语言更适合程序处理。我能用 Pydantic 定义一个分类 schema。我知道 ProviderStrategy 和 ToolStrategy 的区别。我知道 Agent 结构化结果在哪里读取。我能为失败输出设计重试或降级方案。十一、课后练习定义一个ProductReviewschema包含评分、情绪、关键词。定义一个RagAnswerschema包含答案、来源、置信度、缺失信息。用 5 条文本手动模拟模型输出并用 Pydantic 验证。故意构造错误字段观察校验错误信息。
RELATED

相关推荐

ChatGPT生成JSON Schema必须禁用的6类关键词(附AST级schema语法树校验Python脚本)

ChatGPT生成JSON Schema必须禁用的6类关键词(附AST级schema语法树校验Python脚本)

更多请点击: https://codechina.net 第一章:ChatGPT生成JSON Schema的典型风险与本质成因 ChatGPT在辅助生成JSON Schema时,常因缺乏对Schema规范的深层语义理解而引入隐蔽性缺陷。这些缺陷并非偶然错误,而是模型在训练数据偏差…

📅 2026/7/31 11:52:12
浏览器插件安全与隐私分析:以摸鱼王为例的5项本地存储检查

浏览器插件安全与隐私分析:以摸鱼王为例的5项本地存储检查

浏览器插件安全与隐私深度指南:从权限审查到本地存储分析 你是否曾在GitHub上发现一个功能诱人的浏览器插件,却对它的安全性心存疑虑?在数字时代,浏览器插件已成为我们日常网络生活的延伸,但它们也可能成为隐私泄露的隐…

📅 2026/7/21 20:13:32
Cursor AI生成的Angular组件如何通过NgRx状态流校验?一线架构师亲测的5层验证协议首次公开

Cursor AI生成的Angular组件如何通过NgRx状态流校验?一线架构师亲测的5层验证协议首次公开

更多请点击: https://kaifayun.com 第一章:Cursor AI生成Angular组件的NgRx状态流校验全景图 Cursor AI在生成Angular组件时,可自动推导并注入符合NgRx最佳实践的状态管理结构,但其输出需经系统性校验以确保状态流的完整性、不可…

📅 2026/7/21 7:11:16
MORE NEWS

更多资讯

📰

CANN/GE图引擎Tensor描述符API

aclTensorDesc 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow …

📰

gRPC 传输层公共工具库 lib/transport 深度解析:从 grpc_transport 抽象到 PromiseEndpoint、BDP 估计与超时编码

gRPC 传输层公共工具库 lib/transport 深度解析:从 grpc_transport 抽象到 PromiseEndpoint、BDP 估计与超时编码 【免费下载链接】grpc C based gRPC (C, Python, Ruby, Objective-C, PHP, C#) 项目地址: https://gitcode.com/GitHub_Trending/gr/grpc 导读…

📰

OpenHuman 移动设备配对安全域全解析:X25519 密钥协商与 XChaCha20-Poly1305 端到端加密隧道实战指南

OpenHuman 移动设备配对安全域全解析:X25519 密钥协商与 XChaCha20-Poly1305 端到端加密隧道实战指南 【免费下载链接】openhuman OpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep rese…

📰

从零到进阶:李宏毅深度学习教程完整上手指南

从零到进阶:李宏毅深度学习教程完整上手指南 【免费下载链接】leedl-tutorial 《李宏毅深度学习教程》(李宏毅老师推荐👍,苹果书🍎),PDF下载地址:https://github.com/datawhalechina…

📰

ToolJet Tree Select 组件完全指南:树形多选、级联勾选与路径数据提取

ToolJet Tree Select 组件完全指南:树形多选、级联勾选与路径数据提取 【免费下载链接】ToolJet Open-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agent…

📰

ANSYS Mechanical接触设置与工程应用指南

1. ANSYS Mechanical接触设置的核心价值与工程意义在结构仿真分析领域,接触问题的处理一直是工程师面临的重大挑战。我从业十余年处理过数百个案例,发现约60%的非线性分析失败都源于接触设置不当。ANSYS Mechanical提供的接触建模工具链,从基…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬