Author
Published On
Sep 5, 2025
Category
第三节课:LangChain的“乐高世界”:核心概念与全景地图
Part 1: 从“Hello World”到“乐高哲学”
上一节课,我们成功运行了第一个LangChain程序,让AI对我们说了“Hello”。这很棒,但这只是冰山一角。
你可能会问:
ChatOpenAI 是什么?.invoke() 又是什么?LangChain的代码就是这样写的吗?
要回答这些问题,我们需要理解LangChain最核心的设计哲学。我把它称为**“乐高哲学”**。
想象一下,LangChain给了你一整套乐高积木。- 有些积木是基础块,比如轮子、引擎、方向盘。
- 有些积木是功能块,比如一个能发光的灯块,或者一个能发声的喇叭块。 LangChain的核心就是这两样东西:组件 和 链。
- Components(组件):就是那些零散的乐高积木。它们是构成应用的基本单元,每一个都负责一个特定的、可复用的功能。比如,我们上一节课用的
ChatOpenAI就是一个组件,它的功能就是“调用OpenAI的聊天模型”。未来我们还会遇到“加载PDF文件的组件”、“分割文本的组件”、“记忆对话的组件”等等。
- Chains(链):就是用乐高积木拼好的模型。它将多个组件按照特定的顺序组合起来,形成一个完整的工作流。数据就像流水线上的产品,从第一个组件进入,经过一步步处理,最后从末端输出成品。 简单来说:LangChain不是一个单一的工具,而是一个让你能自由组合各种AI能力组件的“乐高工厂”。 理解了“组件”和“链”的关系,你就掌握了LangChain的“语法”。接下来,我们来看看这套“乐高”都有哪些核心的“主题包”。
Part 2: LangChain的六大核心模块——你的“乐高主题包”
LangChain将其功能组织成六大模块。现在,我们快速地浏览一下它们,就像在查看乐高主题包的说明书一样。别担心细节,我们的目标是建立一个宏观的印象,知道每个模块是干嘛的。1. 模型I/O (Models I/O) - 应用的“嘴巴和耳朵”
- 它是干什么的? 这是任何LLM应用的基础,负责与语言模型进行输入和输出交互。它包括调用模型、处理提示词和解析模型返回的结果。
- 乐高类比: 这是乐高小人仔的嘴巴和耳朵。没有它,小人仔就无法听懂你的指令,也无法开口说话。
- 我们已经用过它! 上一节课的
ChatOpenAI就是这个模块的核心。
- 即将学习: 如何用更结构化的方式(提示词模板)和模型“说话”,以及如何处理不同类型的模型输出。 2. 数据增强模块 - 应用的“外部大脑”
- 它是干什么的? 解决LLM知识陈旧和无法访问私有数据的问题。它能让你连接自己的文档(PDF、TXT等)、数据库甚至网络,让LLM基于这些最新的、私有的信息来回答问题。这个技术也叫RAG (Retrieval-Augmented Generation)。
- 乐高类比: 这相当于给乐高小人仔配备了一个巨大的外部图书馆和一位图书管理员。小人仔不知道答案时,可以问管理员,管理员会迅速从图书馆里找到相关的书籍递给它。
- 即将学习: 如何加载你的PDF文档,如何让LLM“阅读”并回答关于文档的问题。 3. 记忆模块 - 应用的“海马体”
- 它是干什么的? 解决LLM“健忘”的问题。它能让应用记住之前的对话内容,从而实现连贯的多轮交互。
- 乐高类比: 这是乐高小人仔的**“海马体”(大脑中负责记忆的部分)**。它能把你们聊过的话暂存起来,这样小人仔在回答新问题时,就能结合上下文,不会前言不搭后语。
- 即将学习: 如何让我们的问答机器人记住你上一句问了什么。 4. Agent模块 - 应用的“手脚和大脑”
- 它是干什么的? 这是LangChain最强大、最酷的部分。它让LLM不再只是“动口”,而是能“动手”。Agent会根据你的问题,**自己决定使用哪些工具(比如搜索引擎、计算器、API调用)**来获取信息,然后综合这些信息给出最终答案。
- 乐高类比: 这相当于给乐高小人仔一个智能的大脑和一个装满工具的工具箱。你让它“查一下明天北京的天气”,它会自己拿起“手机”(搜索引擎工具)查天气,然后告诉你结果。
- 即将学习: 如何构建一个能上网搜索、会做数学题的智能体。 5. 链 - 应用的“流水线”
- 它是干什么的? 这是LangChain的骨架,用于将上述组件(模型、提示词、记忆等)组合成一个序列化的工作流。
- 乐高类比: 这就是乐高工厂的“流水线”。它规定了积木(组件)的拼接顺序,确保数据能一步步被正确处理。
- 我们已经用过它! 严格来说,我们上一节课的
llm.invoke(prompt)就是一个最简单的链(只有一个模型组件)。
- 即将学习: 如何搭建更复杂的“流水线”,比如“先检索文档,再总结,然后翻译”。 6. 回调处理 - 应用的“监控室”
- 它是干什么的? 它允许你在“流水线”的各个阶段插入自定义的代码,用于监控、调试、日志记录等。比如,你想知道LLM生成一个答案花了多长时间,或者想把中间过程都记录下来,就可以用回调。
- 乐高类比: 这是工厂流水线上的“质检员和监控摄像头”。它们不直接参与生产,但会观察并记录流水线上的每一个环节,方便你事后复盘和优化。
- 即将学习: 如何“偷窥”LLM的思考过程,监控我们的应用性能。
Part 3: 全景地图——它们如何协同工作?
让我们用一个具体的例子,把这些模块串起来,看看它们是如何协同作战的。
你的问题: “我上周那份关于‘AI趋势’的PDF报告里,对LangChain的评价是什么?”
一个强大的LangChain应用会这样工作:
- Models I/O 接收到你的问题。
- Memory 检查你是否之前也问过关于这份报告的问题,以提供上下文。
- Data Connection (RAG) 开始工作:
- Document Loader 找到并加载你指定的PDF文件。
- Text Splitter 把长长的PDF切成一小段一小段的文本。
- Retriever 在这些文本片段中,搜索与“LangChain评价”最相关的部分。
- Chains 将检索到的相关文本片段和你的原始问题,打包成一个全新的、更丰富的提示词,例如:“请根据以下内容:[...这里插入检索到的文本片段...],回答这个问题:对LangChain的评价是什么?”
- Models I/O 再次登场,将这个新提示词发送给LLM。
- LLM给出最终答案。
- 在整个过程中,Callbacks 可能在后台默默记录着:“开始加载PDF...”、“检索耗时0.5秒...”、“调用LLM...”,方便你调试。 看到了吗?每个模块各司其职,又紧密协作,最终完成了一个看似复杂的任务。
总结与预告
今天,我们没有写一行新代码,但我们完成了一次重要的“思想升级”。
我们理解了LangChain的**“乐高哲学”——通过组合组件来构建链**。我们还鸟瞰了六大核心模块,知道它们分别是:
- Models I/O (嘴巴耳朵)
- Data Connection (外部大脑)
- Memory (记忆)
- Agents (手脚和大脑)
- Chains (流水线)
- Callbacks (监控室) 你现在脑海里有了一张LangChain的全景地图。接下来,我们将按照地图的指引,逐一深入探索这些模块。 下一站,我们将回到起点,深入第一个,也是最重要的模块:Models I/O。我们将学习如何像调教大师一样,通过精巧的提示词模板,让LLM的回答更精准、更强大。准备好,我们要开始深入细节了!







