摘要:
本文从 RAG 与 GraphRAG 的演进出发,分析传统检索增强生成在复杂推理场景中的局限,并引出 LangChain 作为大模型应用工程化框架的核心价值。文章系统梳理了 LangChain 的整体架构,包括 Model I/O、数据连接、链、记忆、代理与工具、中间件等关键模块,并结合典型调用方式与设计思路,帮助开发者建立从“模型能力”到“应用落地”的完整认知路径。适合希望构建 AI 应用(如智能招聘、电商助手等)的学习者与开发者参考。

引言:从 RAG 到 GraphRAG

上一篇我们总结了 RAG 分块策略,解决了大模型的时效性与检索问题。

但在复杂场景中,传统 RAG 仍有局限:

  • 难以处理多跳推理
  • 无法建模实体关系
  • 本质仍是“相似度匹配”

👉 因此引出了 GraphRAG

RAG + 知识图谱 = 关系推理能力

它通过构建“实体-关系网络”,实现从文本检索 → 结构理解 → 多跳推理的提升。


💡 那么问题来了:

有了这些能力,如何真正构建一个可落地的 AI 系统?

👉 这正是 LangChain 要解决的问题


接下来:LangChain 架构解析


一、什么是 LangChain?

LangChain 是一个用于构建基于大语言模型(LLM)的应用开发框架。

👉 它的核心价值在于:

  • 简化 LLM 应用开发流程

  • 提供模块化组件(可组合)

  • 支持复杂 AI 应用(Agent / RAG / 多轮对话)

一句话总结:

LangChain = “让你像搭积木一样开发 AI 应用”


二、LangChain 整体架构

LangChain 的能力可以拆解为 6 大核心模块:

  1. Model I/O(模型输入输出)

  2. Data Connection(数据连接)

  3. Chains(链)

  4. Memory(记忆)

  5. Agents & Tools(代理与工具)

  6. Middleware(中间件)

下面逐个拆解 👇


三、Model I/O(模型输入输出)

这是 LangChain 的最基础模块,负责:

👉 如何和大模型交互

主要包含三部分:

  • Prompt(提示词)

  • Model(模型)

  • Output Parser(输出解析)


1. 模型类型

① LLM(文本补全模型)
  • 输入:字符串

  • 输出:字符串

  • 特点:一问一答


② Chat Model(聊天模型)
  • 支持多轮对话

  • 结构化输入(system / user / assistant)

  • 更接近真实对话场景


③ Embedding(嵌入模型)
  • 将文本转换为向量

  • 用于语义搜索 / 相似度计算


四、Data Connection(数据连接)

这是实现 RAG(检索增强生成) 的核心模块。


1. 核心流程


2. 关键组件

① Document Loader(文档加载)

支持:

  • PDF / Word / TXT

  • 数据库

  • 网页

👉 作用:统一数据格式


② Text Splitter(文本切分)

解决:

  • 上下文长度限制

  • 检索精度问题

关键参数:

  • chunk_size

  • chunk_overlap


③ Embedding(向量化)

👉 本质:

把“文字”变成“向量”,让机器理解语义


④ Vector Store(向量数据库)

常见方案:

  • FAISS

  • Chroma

  • Milvus

👉 作用:存储向量 + 快速检索


⑤ Retriever(检索器)

流程:

  1. 用户问题 → 向量化

  2. 在向量库中查找相似内容

  3. 返回相关文本


⑥ RAG(检索增强生成)

最终效果:

LLM + 私有数据 = 更准确的回答


五、Chains(链)

LangChain 的核心思想:

用“链”把多个组件串起来


1. LCEL(LangChain 表达式)

最常见写法:

chain = prompt | model | parser

2. 三种常用调用方式

✅ 1. invoke(单次调用)
print(chain.invoke({"topic": "人工智能"}))

✅ 2. stream(流式输出)
for chunk in chain.stream({"topic": "人工智能"}):
    print(chunk, end="")

✅ 3. batch(批量调用)
results = chain.batch(inputs)

👉 适合高并发任务(性能提升明显)


3. 高级链

✔ RunnableSequence(顺序执行)
✔ RunnableParallel(并行执行)
✔ RunnablePassthrough(数据传递)

👉 让链具备“工程能力”


六、Memory(记忆)

用于实现:

👉 多轮对话能力


1. ChatMessageHistory

功能:

  • 存储对话

  • 获取历史

  • 清空记录


2. RunnableWithMessageHistory(推荐)

优势:

  • 自动注入历史

  • 自动保存上下文

  • 支持 session_id(多用户隔离)

👉 非常适合 Web 应用开发


七、Agents & Tools(代理与工具)

这是 LangChain 最强大的能力之一


1. Agent 本质

让 AI “自己思考 + 自己调用工具 + 自己解决问题”

执行流程:

问题 → 思考 → 选工具 → 调用 → 继续思考 → 输出结果

2. Tool(工具)

本质:

👉 给 AI 用的函数


示例:
from langchain.tools import tool

@tool
def add(a: int, b: int) -> int:
    return a + b

👉 常见工具:

  • 搜索引擎

  • Python执行器

  • 数据库查询

  • API调用


八、Middleware(中间件)

1. 核心能力

功能 说明
监控 日志 / 调试
修改 改 Prompt / 输出
控制 限流 / 重试
安全 数据脱敏

2. 常见中间件

  • Retry(重试)

  • Fallback(模型降级)

  • Guardrails(内容审核)

  • Human-in-the-loop(人工干预)


👉 本质一句话:

不改代码,也能控制 AI 行为


九、总结(重点记住这 5 点)

  1. LangChain 是 AI 应用开发框架

  2. 核心思想是 模块化 + 链式组合

  3. RAG 是当前最重要应用模式

  4. Agent 是未来方向(更智能)

  5. Middleware 是工程化关键


十、学习建议

如果你想用 LangChain 做项目(比如比赛/毕业设计):

👉 推荐路径:

1️⃣ 先掌握 Chain(基础)
2️⃣ 再做 RAG(核心)
3️⃣ 再上 Agent(进阶)
4️⃣ 最后加 Middleware(工程化)


💡 结语

LangChain 本质不是“工具”,而是一种:

👉 构建 AI 应用的思维方式

如果你也在做 AI 项目(比如智能招聘系统 / 电商助手),欢迎一起交流 ,文章有任何错误欢迎评论指出。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐