0Pricing
Learn AI with Python · 课时

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": ...} downstream

LCEL 为什么重要

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. LangChain 架构与 LCEL
  2. 文档加载、拆分与嵌入
  3. 向量存储:Chroma 与 FAISS
  4. 端到端构建 RAG 问答系统
← 返回 Learn AI with Python