LangChain 快速上手:从接入大模型到 LCEL 链式调用(一文搞懂)
很多人刚接触 LangChain照着官方文档写完 import 就开始迷糊API key 要不要写死在代码里ChatOpenAI、HumanMessage、StrOutputParser到底都是什么为什么model | parser就能把两个东西串成一条链这篇文章把官方「快速上手」那一套拆开讲透6 个步骤各自在解决什么痛点、背后Runnable和LCEL两个核心抽象到底是什么、以及新手最常踩的 5 个坑。一、先说结论快速上手可以压缩成一句话配好 key → 定义模型 → 拼消息 → 调一下 → 解析输出 → 用管道符串成链。但真正值得记住的不是这 6 步的 API而是两个贯穿全框架的抽象Runnable所有组件的统一定义接口invoke / batch / stream。LCEL用|把多个 Runnable 声明式组合成一条「链」。环境为Python 3.13 langchain 0.3.x快速上手实际只用到langchain-openai和langchain-core两个包。整个 quickstart 里的model、parser、chain全都是 Runnable 实例统一由.invoke()驱动——这是理解后面一切的前提。二、核心机制2.1 为什么需要 LangChain原生 LLM 的 7 个痛点课件原话点得很直接把 LLM 当搜索引擎用还行一旦嵌进真实应用就暴露一堆问题——简单 Prompt 容易幻觉提示词结构能否统一规范如何灵活切换不同大模型模型输出是非结构化的怎么和要结构化数据的程序接口对接怎么克服预训练知识陈旧、引入实时信息怎么连接外部工具/系统执行具体任务。LangChain 的解法把自然语言处理流程拆解成标准化组件开发者自由组合、高效定制工作流。这一步的定位必须清楚——它是「脚手架/编排框架」不是模型本身。2.2 Runnable 接口地基Runnable 是使用所有 LangChain 组件的基础。它定义了统一接口允许组件具备五种能力能力含义invoke单个输入 → 单个输出batch多个输入高效批量转换stream输出边生成边流式返回inspect查看输入/输出/配置的原理图信息compose多个 Runnable 组合成复杂管道LCEL为什么这个抽象关键语言模型、输出解析器、检索器、甚至编译后的 LangGraph 图全部实现 Runnable。于是它们能互相拼接、能统一被invoke/batch/stream调用——这就是「组合」之所以可能的根。2.3 LCEL声明式组合LCELLangChain Expression Language用声明式方法从已有 Runnable 构建新的 Runnablechain model | parser这条语句构建出的新对象类型是RunnableSequence一种「链」。重点RunnableSequence 自身也是 Runnable 实例所以它实现了完整接口能继续.invoke()也能再和别的 Runnable 拼。|不是普通管道而是 LCEL 的组合运算符。三、实现细节6 步步骤 1申请 API key 并配置环境变量key 不写死在源码里而是放进环境变量原因是隐私——避免在代码仓库里泄露。程序通过读取对应环境变量拿 key。import os os.environ[OPENAI_API_KEY] 你的key # 或写在 shell / .env 里或者手动添加步骤 2定义大模型from langchain_openai import ChatOpenAI model ChatOpenAI(modelgpt-5-mini) //如果你用的是deepseek的API 执行下面代码 model ChatOpenAI( modeldeepseek-chat, # deepseek模型名称 base_urlhttps://api.deepseek.com, # deepseek接口地址 # api_key 会自动读取环境变量 OPENAI_API_KEY你需要把deepseek的key放到OPENAI_API_KEY )步骤 3定义消息列表from langchain_core.messages import HumanMessage, SystemMessage messages [ SystemMessage(contentTranslate the following from English into Chinese), HumanMessage(contenthi!), ]SystemMessage系统角色通常作为序列第一条用来启动 AI 行为。HumanMessage用户角色从用户传给模型。步骤 4调用大模型result model.invoke(messages) print(result) # 类型为 AIMessagemodel是 Runnable所以能用.invoke()。返回的AIMessage关键字段字段作用content消息正文additional_kwargs工具调用等附加负载response_metadata响应本身信息请求ID、模型版本、原始元数据→ 调试/日志用usage_metadataToken 消耗量化in/out/total→ 成本计算/监控用步骤 5输出解析from langchain_core.output_parsers import StrOutputParser parser StrOutputParser() print(parser.invoke(result)) # 输出你好!StrOutputParser把AIMessage解析成纯字符串。它也是 Runnable。步骤 6链式执行完整代码from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage, SystemMessage from langchain_core.output_parsers import StrOutputParser model ChatOpenAI(modelgpt-5-mini) messages [ SystemMessage(contentTranslate the following from English into Chinese), HumanMessage(contenthi!), ] parser StrOutputParser() chain model | parser # LCEL 组合 result chain.invoke(messages) print(result) # 输出你好!四、常见误区新手 5 坑API key 写死在源码→ 仓库一推就泄露用环境变量。把gpt-5-mini当固定写法→ 那是课程示例实际换成你可用的模型名待验证。以为invoke只有模型能用→ 解析器、链都是 Runnable统一用invoke。没理解 chain 的本质→chain是RunnableSequence本身还是 Runnable可继续组合。装包装错→ 快速上手只用langchain-openailangchain-coreimport报错多半是集成包没单独装呼应《LangChain 安装》那篇。五、面试官追问区分真题 / 推导【真题】LCEL 是什么model | parser的|做了什么答LCEL 是声明式组合语言|把左右两个 Runnable 包成RunnableSequence。它仍是 Runnable因此自动获得invoke/batch/stream一致接口。这是 2026 大模型岗高频题。【真题】invoke/batch/stream区别答invoke 单输入单输出batch 多输入批量stream 边生成边返回。三者都是 Runnable 统一接口的方法调用方无需关心背后是模型还是解析器。【推导】为什么model和parser都能.invoke()答两者都实现 Runnable 接口invoke 是契约方法与具体组件类型无关。【真题】接入大模型有哪几种方式各自优劣答①官方原生 SDK如 openai 库直连可控、无抽象层但样板代码多、难组合②LangChain 等框架本篇所用组件化、易拼接、自动获得 batch/stream代价是抽象层有学习成本、版本变动快③原生 HTTP 请求最轻、零依赖但鉴权/重试/解析全要自己写。选框架的核心收益就是 Runnable/LCEL 的统一组合能力。注流浪已写《LLM 三种接入方式》专文本篇是其中「框架方式」的落地示例。【推导】response_metadata和usage_metadata有什么区别答前者侧重「响应本身上下文」请求ID、模型版本、服务商原始元数据→ 调试/日志后者侧重「资源消耗量化」Token 数→ 成本/监控。一个回答「这次请求怎么回事」一个回答「花了多少」。六、与前面文章的联系 / 面试串联必看按约定本篇和「流浪」已发文章做知识点串联每个常考点附答案① 串联《LangChain 安装从 pip install 到看懂包依赖链路》本篇from langchain_openai import ChatOpenAI来自langchain-openaiHumanMessage / StrOutputParser来自langchain-core——正是安装篇讲的依赖关系。面试常考为什么装了langchain还import langchain_openai报错答langchain是元包OpenAI 集成需单独装langchain-openai默认规则在面试追问第 5 条也写过。② 串联《LLM 三种接入方式》【推断·未读正文】从标题可确定流浪专文讲过接入方式本篇是其中「框架方式」的具体落地。上面「面试官追问第 4 条」已给出三种方式的答案与优劣可直接复用。③ 串联《从 Vibe Coding 到 LangGraph》【推断·未读正文】本篇chain model | parser是 LCEL 声明式组合的最小形态LangGraph 在此之上加了状态State与分支/循环把线性链升级成有状态图。理解了 Runnable/LCEL再学 LangGraph 是顺坡下坡。七、小结一句话快速上手真正要记住的是Runnable统一接口 LCEL用|组合6 步 API 练两遍就熟其余接口用到再查。如果这篇帮你把「快速上手」嚼透了欢迎在评论区聊聊你踩过的第一个坑或者想看我拆哪块核心组件。我是流浪持续更新 LangChain 深度笔记我们下篇见。

相关新闻

Dify实战-定时触发-工作流到点自动跑和三个必须知道的坑

Dify实战-定时触发-工作流到点自动跑和三个必须知道的坑

Dify 定时触发(trigger-schedule)实测:工作流到点自动跑,和三个必须知道的坑基于 Dify 1.16.1 实测(2026-08)📖 摘要:日报自动生成、看板定时刷新、巡检定时告警——这些「到点自动跑…

2026/8/26 17:37:09 阅读更多 →
CSP-J 运算符优先级专题训练题单

CSP-J 运算符优先级专题训练题单

本练习共14题,覆盖CSP-J初赛中运算符优先级的全部核心题型。每道题均附有答案与详细解析,方便教师讲解或学生自查。🌟 第一梯队:基础优先级判断(第1-4题)目标:熟记C运算符优先级顺序&#xff0c…

2026/8/26 17:36:09 阅读更多 →
Go-defer机制深度解析执行顺序与性能优化实战

Go-defer机制深度解析执行顺序与性能优化实战

Go defer机制深度解析:执行顺序与性能优化实战 文章导语 defer是Go中最独特的特性之一——函数退出前执行一段代码。看似简单,但它的执行顺序、"参数快照"机制、与return的交互、对性能的影响……每个细节都可能成为线上事故的根源。本文将带你…

2026/8/26 17:36:09 阅读更多 →

最新新闻

深入理解 AI Agent · AGENT #03:从单 Agent 到多 Agent

深入理解 AI Agent · AGENT #03:从单 Agent 到多 Agent

📘 《深入理解 AI Agent》系列 第八篇 | AGENT-03 前篇回顾:Agent 基础篇 #01 从LLM到Agent → Agent 基础篇 #02 四大核心机制 → Agent 基础篇 #03 从单Agent到多Agent 开篇:单 Agent 能走多远? 做 AI Agent 的开发者常有一个…

2026/8/26 18:46:25 阅读更多 →
Django金融时间序列数据中的异常检测与风险预警系统设计与实现机器学习选题方向大数据毕设项目

Django金融时间序列数据中的异常检测与风险预警系统设计与实现机器学习选题方向大数据毕设项目

3.2系统可行性分析3.2.1 技术可行性​在数据处理技术方面,Python 拥有丰富的数据分析库,如 Pandas、NumPy 等,能够高效处理金融时间序列数据中的清洗、插值、标准化等任务。对于异常检测算法,无论是基于统计的 3σ 准则、贝叶斯推…

2026/8/26 18:46:25 阅读更多 →
Yolo 小白入门 08:图片、视频、摄像头、RTSP 一次搞清——source 参数实战

Yolo 小白入门 08:图片、视频、摄像头、RTSP 一次搞清——source 参数实战

Yolo 小白入门 08:图片、视频、摄像头、RTSP 一次搞清——source 参数实战 [!NOTE] 你现在位于《Yolo 全速入门到精通【持续更新中】》的 第一章 零基础跑通。这一篇不追求堆满参数,而是带你设计“多种输入源”的最小可验证闭环,并能说清它在数据、模型与业务之间的位置。我…

2026/8/26 18:46:25 阅读更多 →
Java 程序员第 46 阶段15:大模型调用链路追踪,SkyWalking 排查线上性能,集群部署实战OAP集群加高可用存储落地

Java 程序员第 46 阶段15:大模型调用链路追踪,SkyWalking 排查线上性能,集群部署实战OAP集群加高可用存储落地

前面 14 篇我们已经把大模型链路的采集、拆解、关联、告警、存储选型全部打通。但所有这些能力都建立在一个前提上:SkyWalking 自身是稳定可用的。如果 OAP 是单节点,它一宕机,全公司的链路监控就黑屏,正在发生的大模型事故你将完…

2026/8/26 18:46:25 阅读更多 →
send_keys的参数分为普通字符串类内容和Keys类特殊按键两类,既可以实现普通文本输入,也可以模拟各类键盘功能按键操作

send_keys的参数分为普通字符串类内容和Keys类特殊按键两类,既可以实现普通文本输入,也可以模拟各类键盘功能按键操作

send_keys的参数类型 send_keys方法支持两类参数,具体如下: 字符串类参数 可以是字符串常量,也可以是其他类型转换后的字符串变量,用于向目标元素输入普通文本内容,比如输入搜索关键词、表单信息等场景。Keys类封装的特…

2026/8/26 18:45:24 阅读更多 →
Requests库是Python中用于发起HTTP请求的第三方库,号称是“为人类准备的HTTP库”,使用便捷,是爬虫开发的常用工具

Requests库是Python中用于发起HTTP请求的第三方库,号称是“为人类准备的HTTP库”,使用便捷,是爬虫开发的常用工具

目前知识背景中没有关于web.get的直接相关说明,你提到的web.get可能是对Python Requests库get方法的表述或者其他场景下的调用形式,以下为你介绍相关的get相关知识供你参考: 一、Python Requests库的get方法 Requests库是Python中用于发起HTT…

2026/8/26 18:45:24 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/26 17:46:43 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/26 17:46:39 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →