[ PROMPT_NODE_22208 ]
langchain
[ SKILL_DOCUMENTATION ]
# LangChain - 使用智能体与 RAG 构建大模型应用
构建大模型驱动应用最流行的框架。
## 何时使用 LangChain
**在以下场景使用 LangChain:**
- 构建具备工具调用和推理能力(ReAct 模式)的智能体
- 实现 RAG(检索增强生成)流水线
- 需要轻松切换 LLM 提供商(OpenAI、Anthropic、Google)
- 创建带有对话记忆的聊天机器人
- 大模型应用的快速原型开发
- 结合 LangSmith 可观测性进行生产环境部署
**指标**:
- **119,000+ GitHub 星标**
- **272,000+ 仓库**使用 LangChain
- **500+ 集成**(模型、向量数据库、工具)
- **3,800+ 贡献者**
**可替代方案**:
- **LlamaIndex**: 专注于 RAG,更适合文档问答
- **LangGraph**: 适用于复杂的有状态工作流,提供更强的控制力
- **Haystack**: 适用于生产级搜索流水线
- **Semantic Kernel**: 微软生态系统
## 快速开始
### 安装
bash
# 核心库 (Python 3.10+)
pip install -U langchain
# 使用 OpenAI
pip install langchain-openai
# 使用 Anthropic
pip install langchain-anthropic
# 常用扩展
pip install langchain-community # 500+ 集成
pip install langchain-chroma # 向量数据库
### 基础 LLM 使用
python
from langchain_anthropic import ChatAnthropic
# 初始化模型
llm = ChatAnthropic(model="claude-sonnet-4-5-20250929")
# 简单补全
response = llm.invoke("用两句话解释量子计算")
print(response.content)
### 创建智能体 (ReAct 模式)
python
from langchain.agents import create_agent
from langchain_anthropic import ChatAnthropic
# 定义工具
def get_weather(city: str) -> str:
"""获取城市当前天气。"""
return f"{city} 天气晴朗,72°F"
def search_web(query: str) -> str:
"""搜索网络信息。"""
return f"搜索结果: {query}"
# 创建智能体 (<10 行代码!)
agent = create_agent(
model=ChatAnthropic(model="claude-sonnet-4-5-20250929"),
tools=[get_weather, search_web],
system_prompt="你是一个乐于助人的助手。在需要时使用工具。"
)
# 运行智能体
result = agent.invoke({"messages": [{"role": "user", "content": "巴黎的天气怎么样?"}]})
print(result["messages"][-1].content)
## 核心概念
### 1. 模型 (Models) - LLM 抽象
python
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
from langchain_google_genai import ChatGoogleGenerativeAI
# 轻松切换提供商
llm = ChatOpenAI(model="gpt-4o")
llm = ChatAnthropic(model="claude-sonnet-4-5-20250929")
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash-exp")
# 流式输出
for chunk in llm.stream("写一首诗"):
print(chunk.content, end="", flush=True)
### 2. 链 (Chains) - 顺序操作
python
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
# 定义提示词模板
prompt = PromptTemplate(
input_variables=["topic"],
template="写一段关于 {topic} 的 3 句总结"
)