LangChain 教程
欢迎学习 LangChain!本教程将带你从零开始掌握这一用于构建 LLM 应用的强大开发框架。
什么是 LangChain?
LangChain 是一个开源框架,专门用于构建基于大语言模型(LLM)的应用程序。它提供了标准化的接口和组件,让你能够轻松地将 LLM 与外部数据源、工具和系统集成。
LangChain 生态系统
LangChain 生态系统包含多个核心产品:
- LangChain:提供模型、工具、提示词等基础组件
- LangGraph:提供 Agent 编排框架,支持状态管理、持久化、人工介入等高级功能
- LangSmith:提供调试、测试、监控和部署平台
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("openai:gpt-4o-mini")
# 切换到 Anthropic
model = init_chat_model("anthropic:claude-sonnet-4-5-20250929")
# 切换到 Google
model = init_chat_model("google_genai:gemini-1.5-pro")
解释:这种设计让你不依赖于特定的模型供应商,可以在不同模型之间灵活切换,根据成本、性能、需求选择最合适的模型。
2. 工具调用与结构化输出
模型可以调用外部工具并返回结构化数据:
from langchain.tools import tool
from pydantic import BaseModel
@tool
def get_weather(location: str) -> str:
"""获取指定位置的天气"""
return f"{location}今天晴朗,25°C"
# 绑定工具到模型
model_with_tools = model.bind_tools([get_weather])
# 结构化输出
class Person(BaseModel):
name: str
age: int
occupation: str
structured_model = model.with_structured_output(Person)
3. LCEL 链式组合
LangChain Expression Language (LCEL) 提供声明式的链式组合语法:
from langchain_core.runnables import RunnablePassthrough
from langchain.output_parsers import StrOutputParser
# 简单链
chain = prompt | model | StrOutputParser()
# 并行处理
chain = {
"answer": prompt | model,
"context": RunnablePassthrough()
}
# 支持流式、异步、批量
result = chain.invoke({"question": "..."})
for chunk in chain.stream({"question": "..."}):
print(chunk)
results = chain.batch([{"question": "1"}, {"question": "2"}])
4. LangGraph Agent 框架
LangGraph 是 LangChain 生态中构建 Agent 的核心框架:
from langchain.agents import create_agent
# 创建一个能够使用工具的代理
agent = create_agent(
model=model,
tools=[search_tool, calculate_tool],
system_prompt="你是一个有用的助手"
)
result = agent.invoke({
"messages": [{"role": "user", "content": "帮我查询天气并计算"}]
})
解释:与传统程序不同,Agent 不再是按照固定顺序执行,而是由 LLM 根据任务目标自主决定下一步操作。它可以理解用户意图、选择合适的工具、并且能够进行多轮交互。
5. 记忆与状态管理
LangGraph 提供了完善的记忆机制,让 AI 应用能够记住对话历史:
from langgraph.checkpoint.memory import InMemorySaver
# 添加记忆
agent = create_agent(
model=model,
tools=tools,
checkpointer=InMemorySaver()
)
# 使用 thread_id 区分对话
config = {"configurable": {"thread_id": "user_123"}}
result = agent.invoke({"messages": [...]}, config=config)
6. RAG(检索增强生成)
RAG 是当前最流行的 LLM 应用架构之一,LangChain 提供了完整的 RAG 支持:
- 文档加载和预处理
- 文本分割
- 向量嵌入
- 向量检索
- 生成回答
安装与配置
安装依赖
# 核心包
pip install langchain
# 模型支持
pip install langchain-openai # OpenAI
pip install langchain-anthropic # Anthropic
pip install langchain-google-genai # Google
# Agent 框架
pip install langgraph
环境配置
# 设置 API Key
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
# 启用 LangSmith 追踪(可选)
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY=ls-...
LangChain vs LangGraph
很多人会困惑 LangChain 和 LangGraph 的关系:
| 特性 | LangChain | LangGraph |
|---|---|---|
| 定位 | 基础组件库 | Agent 编排框架 |
| 核心功能 | 模型、工具、提示词、链 | 状态管理、循环、分支、持久化 |
| 适用场景 | 构建 LLM 应用的基础组件 | 构建复杂的 Agent 工作流 |
| 关系 | LangGraph 使用 LangChain 的组件 | - |
简单来说:LangChain 提供"积木",LangGraph 提供"搭建方法"。构建复杂 Agent 时,两者配合使用。
教程目录
基础入门
核心概念
进阶应用
工程实践
- 回调与监控 - LangSmith 调试和监控
知识速查
- 速查表 - 常用 API 和配置速查
学习建议
1. 前置知识
学习 LangChain 前需要掌握:
- Python 基础:熟悉 Python 语法和面向对象编程
- 了解 LLM:知道什么是大语言模型及其基本工作原理
- API 调用:会使用 RESTful API(了解 HTTP 请求即可)
2. 学习路径
基础阶段 核心阶段 进阶阶段 实战阶段
│ │ │ │
▼ ▼ ▼ ▼
环境配置 ──▶ LLM 调用 ──▶ Chain 开发 ──▶ 项目实战
入门 ──▶ Prompt 设计 ──▶ Agent 开发 ──▶ RAG 系统
──▶ Memory 管理 ──▶ 工具集成 ──▶ 部署上线
3. 实践建议
- 从官方示例开始:先跑通官方示例,理解每个组件的作用
- 动手改代码:不要只复制代码,尝试修改参数、组合不同组件
- 阅读源码:理解 LangChain 的设计思想
- 关注更新:LangChain 迭代较快,保持学习
开发工具推荐
1. Python 环境
# 推荐使用 conda 或 venv 创建虚拟环境
conda create -n langchain python=3.10
conda activate langchain
# 安装 LangChain
pip install langchain langgraph
2. IDE 推荐
- VS Code(推荐):配置 Jupyter 插件,交互式开发体验好
- PyCharm:功能强大的 Python IDE
- Jupyter Notebook:适合学习和实验
3. 模型提供商
LangChain 支持多种模型提供商:
| 提供商 | provider 标识 | 说明 |
|---|---|---|
| OpenAI | openai | GPT-4o, GPT-4o-mini |
| Anthropic | anthropic | Claude Sonnet 4.5 |
google_genai | Gemini 1.5 Pro | |
| AWS Bedrock | bedrock_converse | Claude, Titan 等 |
| Ollama | ollama | 本地开源模型 |
LangSmith 平台
LangSmith 是 LangChain 官方提供的 AI 应用开发平台,提供:
- 可观测性:详细的追踪和聚合趋势指标,查看 Agent 如何思考和行动
- 评估:在生产数据或离线数据集上测试和评分 Agent 行为
- Prompt 工程:版本控制、优化和协作功能
- 部署:一键部署,专为长时间运行任务设计的可扩展基础设施
参考资源
官方资源
学习资源
API 参考
准备好了吗?点击下一章开始你的 LangChain 学习之旅!