什么是 LangChain
简介
LangChain 是一个强大的开源框架,专门用于构建基于大语言模型(LLM)的应用程序。它由 Harrison Chase 于 2022 年创建,现已成为 AI 应用开发领域最受欢迎的工具之一。
🎉 LangChain v1.x 正式发布!
LangChain 已升级到 v1.x 版本,带来了全新的简化 API 和更强大的功能。本教程已全面更新以覆盖最新特性。
- 需要 Python 3.10+
- 新的
create_agentAPI,10 行代码创建智能 Agent - Agent 基于 LangGraph 构建,支持持久化、流式输出、人机协作等高级特性
核心理念
LangChain 的核心理念是:将大语言模型与外部数据、工具、系统连接起来,创建真正有用的 AI 应用。
为什么需要 LangChain?
直接调用大语言模型的 API(如 OpenAI、Claude 等)虽然简单,但在构建实际应用时会遇到很多挑战:
| 挑战 | 描述 | LangChain 解决方案 |
|---|---|---|
| 上下文限制 | LLM 只能处理有限的文本长度 | 提供文档分割、向量检索等工具 |
| 知识时效性 | LLM 的知识有截止日期 | 支持 RAG 技术接入实时数据 |
| 无法执行操作 | LLM 只能生成文本 | 提供 Tools 和 Agent 机制 |
| 缺乏记忆 | 每次对话独立,没有上下文 | 内置多种记忆组件 |
| 提示词管理 | 提示词散落各处,难以维护 | 提供模板化的提示词管理 |
LangChain 生态系统
LangChain 不只是一个库,而是一个完整的生态系统:
┌─────────────────────────────────────────────────────┐
│ LangChain 生态系统 │
├─────────────────────────────────────────────────────┤
│ │
│ 🔧 LangChain - 核心框架,构建 AI 应用 │
│ │
│ 🔀 LangGraph - Agent 编排框架 │
│ │
│ 📊 LangSmith - 监控、调试、评估平台 │
│ │
│ 🚀 LangServe - 部署 LangChain 应用 │
│ │
└─────────────────────────────────────────────────────┘
LangChain 核心框架
这是我们主要学习的部分,包含:
- Models(模型) - 标准化的模型接口,支持 OpenAI、Anthropic、Google 等各种提供商,可无缝切换
- Agents(智能体) - 🆕 v1.x 新增简化 API,10 行代码创建智能 Agent
- Prompts(提示词) - 提示词模板和管理
- Chains(链) - 将多个组件串联起来
- Memory(记忆) - 保存对话历史
- Retrievers(检索器) - 从数据源获取相关信息
v1.x 核心优势
| 特性 | 描述 |
|---|---|
| 标准模型接口 | 不同提供商有不同的 API 格式,LangChain 标准化了模型交互方式,让你可以无缝切换提供商,避免锁定 |
| 简单易用的 Agent | 10 行代码创建 Agent,同时保持高度灵活性 |
| 基于 LangGraph | Agent 构建在 LangGraph 之上,获得持久化执行、流式输出、人机协作等能力 |
| LangSmith 调试 | 深度可视化 Agent 行为,追踪执行路径 |
LangGraph
用于构建复杂的、有状态的 Agent 工作流。当你的应用需要:
- 多步骤推理
- 循环和条件分支
- 人机协作(Human-in-the-loop)
就应该考虑使用 LangGraph。
LangSmith
一个开发者平台,提供:
- 🔍 可观测性 - 查看每次 LLM 调用的详细日志
- 📈 评估 - 测试和评估你的应用性能
- 🔄 迭代 - 快速调试和优化提示词
支持的模型提供商
LangChain 支持众多模型提供商,你可以根据需求灵活选择:
国际模型
- OpenAI - GPT-4、GPT-3.5
- Anthropic - Claude 系列
- Google - Gemini 系列
- Mistral - Mistral 系列
- Cohere - Command 系列
国内模型
- 百度文心 - 文心一言
- 阿里通义 - 通义千问
- 智谱AI - ChatGLM
- 讯飞星火 - Spark
- MiniMax - abab 系列
本地模型
- Ollama - 运行本地模型
- LlamaCpp - 本地推理引擎
- HuggingFace - 各种开源模型
典型应用场景
学习 LangChain 后,你可以构建:
1. 智能问答系统
# 基于你的文档构建问答机器人
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=document_retriever
)
answer = qa_chain.invoke("公司的退款政策是什么?")
2. 对话式 AI 助手
# 具有记忆功能的对话助手
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
conversation = ConversationChain(llm=llm, memory=memory)
3. 自动化 Agent(v1.x 新 API)
# 🆕 v1.x 简化 API - 10 行代码创建智能 Agent
from langchain.agents import create_agent
def get_weather(city: str) -> str:
"""获取城市天气"""
return f"{city}今天晴,25°C"
def send_email(to: str, content: str) -> str:
"""发送邮件"""
return f"邮件已发送给 {to}"
agent = create_agent(
model="gpt-4",
tools=[get_weather, send_email],
system_prompt="你是一个智能助手,帮助用户完成各种任务"
)
agent.invoke({"messages": [{"role": "user", "content": "查询北京天气并发送给张三"}]})
4. 文档分析工具
- 自动总结长文档
- 从 PDF 中提取关键信息
- 多文档比较分析
5. 代码助手
- 代码解释和生成
- 自动代码审查
- 技术文档生成
学习准备
在开始学习之前,确保你具备以下基础:
前置知识
- Python 基础 - 了解 Python 语法、函数、类等基本概念
- API 概念 - 了解什么是 API,如何调用 REST API
- 命令行操作 - 能够使用终端/命令行安装包和运行脚本
如果你对上述内容还不熟悉,建议先学习相关基础知识再继续。
本教程结构
本教程分为三个阶段,循序渐进:
📗 基础篇(当前)
- 环境搭建
- 模型调用
- 提示词模板
- 创建第一个应用
📘 进阶篇
- 链式调用(Chains)
- 记忆功能(Memory)
- 工具使用(Tools)
- 检索增强生成(RAG)
📙 高级篇
- Agent 智能体
- LangGraph 编排
- LangSmith 监控
- 生产部署优化
下一步
现在你已经了解了 LangChain 是什么,接下来让我们搭建开发环境,开始动手实践吧!