跳到主要内容

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 的关系:

特性LangChainLangGraph
定位基础组件库Agent 编排框架
核心功能模型、工具、提示词、链状态管理、循环、分支、持久化
适用场景构建 LLM 应用的基础组件构建复杂的 Agent 工作流
关系LangGraph 使用 LangChain 的组件-

简单来说:LangChain 提供"积木",LangGraph 提供"搭建方法"。构建复杂 Agent 时,两者配合使用。

教程目录

基础入门

核心概念

进阶应用

工程实践

知识速查

学习建议

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 标识说明
OpenAIopenaiGPT-4o, GPT-4o-mini
AnthropicanthropicClaude Sonnet 4.5
Googlegoogle_genaiGemini 1.5 Pro
AWS Bedrockbedrock_converseClaude, Titan 等
Ollamaollama本地开源模型

LangSmith 平台

LangSmith 是 LangChain 官方提供的 AI 应用开发平台,提供:

  • 可观测性:详细的追踪和聚合趋势指标,查看 Agent 如何思考和行动
  • 评估:在生产数据或离线数据集上测试和评分 Agent 行为
  • Prompt 工程:版本控制、优化和协作功能
  • 部署:一键部署,专为长时间运行任务设计的可扩展基础设施

参考资源

官方资源

学习资源

API 参考

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