LangChain 结构化输出:15 行代码把 LLM 文本变成规范数据
2026/8/28 15:59:19 网站建设 项目流程

LangChain 结构化输出:15 行代码把 LLM 文本变成规范数据

【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain

从模型的长文本里抠出标题、要点、情感再塞进数据库,手写正则解析很费劲,多一句废话就崩。LangChain 结构化输出让模型回答前先拿到一张“表单模板”,出来的必然是你定义的字段对象。

项目速览

说白了,LangChain 是把大语言模型(LLM)能力接入真实应用的 Python 框架,结构化输出是它里面最实用的“驯服”技巧之一。安装一行搞定:

pip install langchain langchain-openai

源码可以完整拉下来看:git clone https://gitcode.com/GitHub_Trending/la/langchain

为什么值得试

和传统方式放一起对比就很直观:

维度手写解析LangChain 结构化输出
定义字段正则或字符串切分,模板一改全重写写一个 Pydantic 模型,schema 自动转换
校验空值、类型错逐个兜Pydantic 自动校验,不匹配直接抛错
下游对接JSON 字符串,手动映射对象直接进数据库、进 API

Pydantic 是 Python 的数据校验库,这里只需描述数据“长什么样”:哪些字段、什么类型、是否必填。实际上“模型输出不是合法 JSON”“字段漏了”这类高频翻车场景,在这一层就被拦住了。

跑通 LangChain 结构化输出最小路径

第一步:准备数据。任意文本都行,新闻、客服工单、会议纪要,就是一个装字符串的变量。

第二步:调用核心 API。定义输出 schema,再用with_structured_output包住模型:

from pydantic import BaseModel from langchain_openai import ChatOpenAI class TicketSummary(BaseModel): title: str key_points: list[str] sentiment: str # 正面 / 中性 / 负面 llm = ChatOpenAI(model="gpt-4o-mini", temperature=0) extractor = llm.with_structured_output(TicketSummary)

第三步:拿到结果。extractor.invoke返回的不再是字符串,而是校验过的对象:

text = "用户反馈:新版界面很好用,但首次启动会闪退一次" result = extractor.invoke(text) print(result.title, result.sentiment)

整个流程只有三个动作:定 schema、包模型、invoke。这里有个小技巧:ChatOpenAI可以换成任何 LangChain 接好的 LLM,比如仓库libs/partners/下的 Anthropic、Ollama 等集成包,schema 代码一行不用改。

进阶玩法

  • 调试加include_raw=True,能同时拿到模型原始回复和解析错误,一眼看出“为什么没解析出来”。
  • 批量处理上千条工单时,把 invoke 丢进循环或任务队列即可,schema 固定意味着下游表结构稳定;v1 的 Agent 原生支持结构化回复,详见源码libs/langchain_v1/langchain/agents/structured_output.py

资源速查

  • 聊天模型结构化输出实现(with_structured_output):libs/core/langchain_core/language_models/chat_models.py
  • v1 Agent 结构化输出类型定义:libs/langchain_v1/langchain/agents/structured_output.py
  • OpenAI 集成包:libs/partners/openai/

【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询