ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

D04-L3-LangChain入门

2026/8/14 21:17:20 拓冰建站 浏览量
D04-L3-LangChain入门 LangChain 入门一文理解 LCEL跑通你的第一个可运行链适合人群已能调用大模型 API、想系统学习 LangChain 的开发者 引言为什么值得学 LangChain自己用 SDK 调大模型很简单但一旦任务变复杂——要做提示词模板、要接多个工具、要控制流程、要加记忆——代码就会失控。LangChain 是生态最全的 LLM 应用框架模型接入、提示词管理、输出解析、记忆、工具、Agent、可观测都有现成组件。不过 LangChain 的版本迭代很快、旧教程遍地都是很多初学者被过时的写法带偏。这篇文章只讲当前主流推荐的写法LCELLangChain Expression Language并给出可运行的完整示例。一、LangChain 的核心抽象用一句话建立心智模型LangChain 一堆组件 一种把它们串起来的语法LCEL。抽象作用类比ChatPromptTemplate管理提示词模板system/human 消息预制的话术模板ChatModel封装大模型调用OpenAI/通义/文心…“大脑”OutputParser解析模型输出纯文本/JSON/结构化“翻译官”Runnable可执行单元一切组件的统一接口乐高积木LCEL 管道|把 Runnable 串成链积木的拼接槽核心洞察在 LangChain 里几乎一切都是 Runnable——模型是、解析器是、模板是、整条链也是。它们都能被|拼接这是 LCEL 的基础。二、LCEL 是什么为什么推荐它LCEL 是 LangChain 提供的声明式管道语法本质就是 Python 的|运算符重载chainprompt|model|parserprompt输入用户的原始问题输出标准消息model接收消息输出模型响应parser把响应转成干净文本。数据像流水线一样从左到右流动每一步的输入是上一步的输出。对比旧写法LLMChain(prompt..., llm...)LCEL 的优势写法直观流水线一目了然新人很快就能读懂原生并行/流式/异步.batch()、.stream()、.ainvoke()开箱即用易组合链本身也是 Runnable可以被更大的链嵌套官方主推新功能都优先在 LCEL 上实现旧 API 在逐步淘汰。三、快速上手跑通第一个 LCEL 链3.1 准备工作pipinstalllangchain langchain-openai并设置环境变量OPENAI_API_KEY。3.2 示例一最简问答链三个组件拼一条链fromlangchain_core.promptsimportChatPromptTemplatefromlangchain_openaiimportChatOpenAIfromlangchain_core.output_parsersimportStrOutputParser# 1) 提示词模板声明 system 与 human 两段消息用 {变量} 占位promptChatPromptTemplate.from_messages([(system,你是一位严谨的{role}请用简洁的中文回答不要编造事实。),(human,{question}),])# 2) 模型指定模型与采样参数modelChatOpenAI(modelgpt-4o-mini,temperature0)# 3) 输出解析器把模型响应转成纯字符串parserStrOutputParser()# 4) LCEL 管道拼成一条链chainprompt|model|parser# 5) 调用传入模板中的所有变量answerchain.invoke({role:技术顾问,question:什么是向量数据库它和普通数据库有什么区别,})print(answer)运行后会输出一段中文回答。整个链条只有 4 行核心代码且chain.invoke({...})传入的字典恰好填满模板变量——这就是 LCEL 的约定优于配置。3.3 示例二并行分发 汇总感受 LCEL 的组合能力业务里常需要先并行收集多个角度的答案再汇总。LCEL 用RunnableParallel一行搞定fromlangchain_core.runnablesimportRunnableParallel# 三个并行分支各自独立的提示词 模型 解析器branch_aChatPromptTemplate.from_template(从【优点】角度评价{topic})|model|parser branch_bChatPromptTemplate.from_template(从【风险】角度评价{topic})|model|parser branch_cChatPromptTemplate.from_template(用一句话总结{topic})|model|parser# 并行执行三分支结果以字典形式汇总parallelRunnableParallel(优点branch_a,风险branch_b,总结branch_c)# 再拼一个汇总链finalparallel|ChatPromptTemplate.from_template(请综合以下三个视角输出完整结论\n{优点}\n{风险}\n{总结})|model|parser resultfinal.invoke({topic:把 AI Agent 引入客服系统})print(result) 三个分支会并发执行同一批请求比串行调用快 3 倍。RunnableParallel 的每个 key 对应一个分支输出直接作为下游模板的变量。四、LCEL 与旧写法对比别再学过时代码网上大量教程还在用这类旧写法# ❌ 旧写法已不推荐fromlangchainimportLLMChain chainLLMChain(promptprompt,llmmodel)# ✅ 现代写法LCELchainprompt|model|parser判断新旧的标准看from langchain import还是from langchain_core import。凡是直接from langchain import ...的教程大概率过时。LangChain 现在把核心抽象拆到langchain-core模型接入放在各家的扩展包里如langchain-openai、langchain-community组件更清晰、依赖更轻。五、刚上手最容易踩的 3 个坑5.1 坑一invoke 参数没传全chain.invoke({role:技术顾问})# ❌ 缺少 questionchain.invoke({role:技术顾问,question:...})# ✅模板里声明了几个变量invoke就必须传全否则报KeyError。排查时先看模板里的{}占位符。5.2 坑二把旧 API 当新 API 用报错ModuleNotFoundError: No module named langchain.llms之类多半是教程太老。装包时优先langchain-openai而不是langchain[openai]拿不准就看官方文档docs.langchain.com的示例别照抄博客。5.3 坑三忽略流式与异步LCEL 的.stream()能在首 token 到达后立刻输出是做聊天体验的刚需.ainvoke()/.abatch()用于异步场景。上手时顺手把invoke换成stream体验一下逐字输出后面做产品会少走很多弯路。六、常见报错速查表报错信息常见原因处理办法ModuleNotFoundError: langchain.llms教程/代码过时改用langchain_openai.ChatOpenAIKeyError: questioninvoke 变量没传全对照模板{}占位符补全参数OutputParserException模型输出不符合解析格式换结构化输出或在提示词中强调格式RateLimitError触发限流加指数退避重试、降并发中文乱码 / 编码异常终端编码或响应解析问题统一 UTF-8检查 print 环境AttributeError: RunnableLambda has no attribute ...自定义函数签名不符函数参数改为单个 dict 输入记不住没关系先看报错出处哪个包再查该包的官方文档比搜博客靠谱。七、给新手的两个练习练习 1角色参数化把示例一的role分别换成法务顾问“健身教练”“小学老师”各问同一个问题观察回答风格的差异。感受 Prompt 模板里角色设定对输出的影响。练习 2扩展并行分支给示例二的RunnableParallel增加第四个分支从【实施成本】角度评价并在汇总模板中加入{成本}跑通后你就掌握了 LCEL 并行扩展的套路。做完这两个练习你已经能独立拼装多视角分析链这是做 Agent 前最有价值的一步热身。八、下一步学什么学习路径建议阶段内容难度本课LCEL 基础链、并行、输出解析入门进阶记忆对话历史、检索RAG 接入进阶高阶工具调用、Agent、状态图LangGraph高阶工程可观测LangSmith/Langfuse、部署工程学习心法先吃透一切皆 Runnable、管道即组合LangChain 的其余功能都是在这两个概念上长出来的。✅ 总结LangChain 的三大核心抽象模板、模型、解析器全部统一为 RunnableLCEL 用|管道把组件串成链推荐取代旧LLMChain写法RunnableParallel一行实现并行分支stream/batch/async开箱即用判断教程新旧看 import 来源langchain_core才是现代写法上手路线基础链 → 并行组合 → 记忆 → 检索 → Agent → 可观测。 觉得有用就点赞 收藏 关注更多 AI Agent 干货持续输出。