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)是两个不同领域的主流框架:
| 特性 | LangChain | Spring AI |
|---|---|---|
| 语言 | Python, TypeScript | Java |
| 生态系统 | Python AI 生态 | Java 企业生态 |
| 集成丰富度 | 大量 AI 集成 | Spring 生态集成 |
| 适用场景 | 快速原型、AI 应用 | 企业级应用、微服务 |
| 学习曲线 | 较平缓 | 需了解 Spring |
如果你是 Java 开发者,建议学习 Spring AI;如果你是 Python 开发者或专注于 AI 应用,LangChain 是更好的选择。
教程目录
基础入门
核心概念
进阶应用
工程实践
- 回调与监控 - LangSmith 调试和监控
知识速查
- 速查表 - 常用 API 和配置速查
学习建议
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 名称 | 说明 |
|---|---|---|
| OpenAI | openai | GPT-4o, GPT-4o-mini |
| Anthropic | anthropic | Claude 3.5 Sonnet |
google_genai | Gemini 1.5 Pro | |
| AWS Bedrock | bedrock_converse | Claude, Titan 等 |
| Ollama | ollama | 本地开源模型 |
参考资源
官方资源
学习资源
API 参考
准备好了吗?点击下一章开始你的 LangChain 学习之旅!