跳到主要内容

LangChain 教程

欢迎学习 LangChain!本教程将带你从零开始掌握这一用于构建 LLM 应用的强大开发框架。

什么是 LangChain?

LangChain 是一个开源框架,专门用于构建基于大语言模型(LLM)的应用程序。它提供了标准化的接口和组件,让你能够轻松地将 LLM 与外部数据源、工具和系统集成。

LangChain 的核心价值

LangChain 解决了 LLM 应用开发中的核心挑战:

  • 标准化接口:不同模型提供商(OpenAI、Anthropic、Google 等)有各自独特的 API,LangChain 统一了交互方式,让你能够轻松切换模型而无需修改业务逻辑
  • 组件化设计:提供了丰富的组件(LLM、Prompt、Chain、Agent、Memory 等),可以灵活组合
  • 快速构建:通过预置的架构和集成,你可以用很少的代码构建复杂的 AI 应用
  • 生态丰富:支持多种模型、数据源、工具的集成

为什么学习 LangChain?

对开发者

  • 提高效率:无需从零开始实现 LLM 交互逻辑
  • 灵活性:既可以用高层 API 快速构建,也可以深入定制
  • 可维护性:标准化的代码结构便于团队协作和维护

应用场景

  • 智能问答系统:基于私有数据的问答助手
  • AI 代理:能够自主决策和执行任务的智能代理
  • 内容生成:自动撰写文章、代码、邮件等
  • 数据分析:通过对话分析数据并生成报告

LangChain 核心特性

1. 标准化的模型接口

LangChain 提供统一的接口来调用各种 LLM,无论是 OpenAI 的 GPT、Anthropic 的 Claude,还是开源模型,都可以无缝切换:

# 切换模型只需更改初始化代码
from langchain.chat_models import init_chat_model

# 使用 OpenAI
model = init_chat_model(model="gpt-4", model_provider="openai")

# 切换到 Anthropic
model = init_chat_model(model="claude-3-sonnet", model_provider="anthropic")

解释:这种设计让你不依赖于特定的模型供应商,可以在不同模型之间灵活切换,根据成本、性能、需求选择最合适的模型。

2. 灵活的 Prompt 工程

LangChain 提供了强大的 Prompt 模板系统,支持:

  • 变量替换和格式化
  • Few-shot 学习
  • 动态 Prompt 生成
  • 输出解析(JSON、CSV 等结构化格式)

3. Chain(链)系统

Chain 允许你将多个组件串联起来,形成完整的工作流程:

# 一个典型的 RAG Chain
文档加载 → 文本分割 → 向量化 → 向量检索 → 生成回答

4. Agent(代理)系统

Agent 是 LangChain 最强大的功能之一,它可以让 LLM 自主决定使用哪些工具来完成复杂任务:

# 创建一个能够使用搜索工具的代理
agent = create_agent(
model="gpt-4",
tools=[搜索工具, 计算工具, 文件读取工具]
)
agent.invoke({"messages": ["帮我查一下今天的新闻"]})

解释:与传统程序不同,Agent 不再是按照固定顺序执行,而是由 LLM 根据任务目标自主决定下一步操作。它可以理解用户意图、选择合适的工具、并且能够进行多轮交互。

5. Memory(记忆)系统

LangChain 提供了多种记忆组件,让 AI 应用能够记住对话历史:

  • 短期记忆:记住当前对话的上下文
  • 长期记忆:跨会话持久化存储用户偏好和历史

6. RAG(检索增强生成)

RAG 是当前最流行的 LLM 应用架构之一,LangChain 提供了完整的 RAG 支持:

  • 文档加载和预处理
  • 文本分割
  • 向量嵌入
  • 向量检索
  • 生成回答

LangChain vs Spring AI

LangChain(Python/TypeScript)和 Spring AI(Java)是两个不同领域的主流框架:

特性LangChainSpring AI
语言Python, TypeScriptJava
生态系统Python AI 生态Java 企业生态
集成丰富度大量 AI 集成Spring 生态集成
适用场景快速原型、AI 应用企业级应用、微服务
学习曲线较平缓需了解 Spring

如果你是 Java 开发者,建议学习 Spring AI;如果你是 Python 开发者或专注于 AI 应用,LangChain 是更好的选择。

教程目录

基础入门

核心概念

进阶应用

工程实践

知识速查

学习建议

1. 前置知识

学习 LangChain 前需要掌握:

  • Python 基础:熟悉 Python 语法和面向对象编程
  • 了解 LLM:知道什么是大语言模型及其基本工作原理
  • API 调用:会使用 RESTful API(了解 HTTP 请求即可)

2. 学习路径

基础阶段          核心阶段          进阶阶段          实战阶段
│ │ │ │
▼ ▼ ▼ ▼
环境配置 → LLM 调用 → Chain 开发 → 项目实战
入门 → Prompt 设计 → Agent 开发 → RAG 系统
→ Memory 管理 → 工具集成 → 部署上线

3. 实践建议

  • 从官方示例开始:先跑通官方示例,理解每个组件的作用
  • 动手改造:不要只复制代码,尝试修改参数、组合不同组件
  • 阅读源码:理解 LangChain 的设计思想
  • 关注更新:LangChain 迭代较快,保持学习

4. 版本说明

本教程基于 LangChain v1 版本编写。需要注意的是:

  • v1 版本是预发布版本,API 可能会有变化
  • 生产环境建议使用最新的稳定版本
  • API 使用方式可能与 v0.x 有较大差异

开发工具推荐

1. Python 环境

# 推荐使用 conda 或 venv 创建虚拟环境
conda create -n langchain python=3.10
conda activate langchain

# 安装 LangChain
pip install langchain

2. IDE 推荐

  • VS Code(推荐):配合 Jupyter 插件,交互式开发体验好
  • PyCharm:功能强大的 Python IDE
  • Jupyter Notebook:适合学习和实验

3. 模型提供商

LangChain 支持多种模型提供商:

提供商API 名称说明
OpenAIopenaiGPT-4o, GPT-4o-mini
AnthropicanthropicClaude 3.5 Sonnet
Googlegoogle_genaiGemini 1.5 Pro
AWS Bedrockbedrock_converseClaude, Titan 等
Ollamaollama本地开源模型

参考资源

官方资源

学习资源

API 参考

准备好了吗?点击下一章开始你的 LangChain 学习之旅!