LangChain 架构与 LCEL
LangChain 组件、LCEL 管道语法、链、可运行接口和流式链。
LangChain 架构与 LCEL 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。
什么是 LangChain
LangChain 是一个用于构建 LLM 应用的框架,它可以组合提示词、模型、解析器、检索器和记忆等可复用组件。您无需手动连接 API 调用,而是构建链,让数据从一个组件传递到下一个组件。
pip install langchain langchain-openai核心构建模块
几乎每条链都会出现三个组件:PromptTemplate(将输入格式化为提示词)、聊天模型(即 LLM)以及输出解析器(清理结果)。LangChain 会将它们连接成一条流水线。
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser构建提示词模板
提示词模板包含在运行时填充的占位符。请使用 {variable} 语法。当您使用字典调用链时,其中的键会被替换进去。
prompt = ChatPromptTemplate.from_template(
"Explain {topic} to a {audience} in two sentences."
)LCEL:管道语法
LCEL(LangChain 表达式语言)使用管道运算符 | 组合组件。每一步的输出都会流入下一步,从左到右阅读时就像 Unix 流水线一样。
model = ChatOpenAI(model="gpt-4o")
chain = prompt | model | StrOutputParser()为什么使用 StrOutputParser
聊天模型返回的是消息对象,而不是普通字符串。StrOutputParser() 会提取 .content 文本,使链产生干净的字符串。如果没有它,您得到的将是结构化消息。
调用链
使用 chain.invoke() 运行链,并传入一个用于填充模板变量的字典。结果就是经过解析的字符串输出。
result = chain.invoke({"topic": "vectors", "audience": "beginner"})
print(result)流式运行链
如需实时输出,请使用 chain.stream(),而不是 invoke。它会返回一个生成器,在模型生成输出时逐块产生结果,就像原始 API 的流式输出一样。
for chunk in chain.stream({"topic": "RAG", "audience": "engineer"}):
print(chunk, end="", flush=True)批量处理多个输入
使用 chain.batch() 高效处理多个输入。传入一个输入字典列表,LangChain 会并发运行它们,并按照相同顺序返回结果列表。
inputs = [
{"topic": "loops", "audience": "kid"},
{"topic": "recursion", "audience": "kid"}
]
results = chain.batch(inputs)RunnablePassthrough
RunnablePassthrough 会原样转发输入。当链需要在保留原始输入的同时保留转换后的值时,它必不可少;在 RAG 中,通常需要同时传递问题和检索到的上下文。
from langchain_core.runnables import RunnablePassthrough
chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt | model | StrOutputParser()
)使用字典进行组合
当某一步是字典时,每个值都会并行运行,所得结果会组成下一步的输入。这样可以构建驱动检索流水线的多输入提示词,将每个键映射到可运行对象或直通对象。
parallel = {
"context": retriever,
"question": RunnablePassthrough()
}
# parallel feeds {"context": ..., "question": ...} downstreamLCEL 为什么重要
LCEL 链可以免费获得流式输出、批处理和异步执行能力,易于阅读,并且像乐高积木一样灵活组合。同一种管道语法既能用于单行提示词,也能扩展到完整的 RAG 系统。
快速检查
测试您对 LCEL 的理解。
回顾:架构与 LCEL
您使用管道运算符组合了 LangChain 组件:prompt | model | StrOutputParser()。您使用 invoke 运行链,使用 stream 进行流式处理,并使用 batch 处理多个输入。RunnablePassthrough 和字典组合让您能够为 RAG 构建多输入流水线。
常见问题解答
「LangChain 架构与 LCEL」课时是免费的吗?
是的 — 「LangChain 架构与 LCEL」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。
「LangChain 架构与 LCEL」这节课中我会学到什么?
LangChain 组件、LCEL 管道语法、链、可运行接口和流式链。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn AI with Python 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「LangChain 架构与 LCEL」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn AI with Python 课中编写并运行代码吗?
能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- LangChain 架构与 LCEL
- 文档加载、拆分与嵌入
- 向量存储:Chroma 与 FAISS
- 端到端构建 RAG 问答系统