一、LangChain简介 #
LangChain 是一个用于构建基于大语言模型(LLM)的应用开发框架,极大简化了对话机器人、智能问答、智能体(Agent)等复杂场景的开发流程。它支持多种主流大模型(如OpenAI、ChatGLM等),并提供了丰富的链式组件和工具集。
二、安装方法 #
介绍如何安装LangChain及其依赖。
# 安装LangChain主库
pip install langchain
# 推荐安装OpenAI等大模型依赖
pip install openai三、核心概念 #
本节介绍LangChain的核心组成部分。
- 链(Chain):将多个LLM调用、工具、数据流等串联起来,形成复杂的处理流程。
- 工具(Tool):可被Agent调用的外部能力,如搜索、计算、数据库查询等。
- Agent(智能体):具备自主决策能力的智能体,可以根据任务动态选择链或工具。
- Memory(记忆):用于保存对话历史或上下文信息,实现有记忆的对话。
- Prompt(提示词):与大模型交互的输入模板。
四、常见用法 #
介绍LangChain的典型应用场景和基本用法。
1. 基础对话 #
展示如何用LangChain实现最简单的对话。
`python
导入OpenAI LLM模块 #
from langchain.llms import OpenAI
创建OpenAI LLM对象,需替换为你的API密钥 #
llm = OpenAI(openai_api_key="你的API密钥")
发送简单对话请求 #
response = llm("你好,LangChain!")
输出模型回复 #
print(response)
### 2. 构建链式流程
> 展示如何用Prompt和LLMChain实现链式推理。
```python
# 导入链相关模块
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
# 定义提示词模板
prompt = PromptTemplate(
input_variables=["product"],
template="请用一句话介绍{product}的优点。"
)
# 创建OpenAI LLM对象
llm = OpenAI(openai_api_key="你的API密钥")
# 构建链对象
chain = LLMChain(llm=llm, prompt=prompt)
# 执行链式推理,传入参数
result = chain.run({"product": "LangChain"})
# 输出结果
print(result)3. Agent与工具调用 #
展示如何让Agent自动选择工具完成复杂任务。
`python
导入Agent和工具模块 #
from langchain.agents import load_tools, initialize_agent from langchain.llms import OpenAI
创建OpenAI LLM对象 #
llm = OpenAI(openai_api_key="你的API密钥")
加载内置工具(如搜索、计算器等) #
tools = load_tools(["serpapi", "llm-math"], llm=llm)
初始化Agent,指定工具和LLM #
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
让Agent自动选择工具完成任务 #
result = agent.run("帮我查一下北京天气,并计算明天比今天高5度是多少摄氏度")
输出结果 #
print(result)
### 4. 有记忆的对话
> 展示如何实现带记忆的多轮对话。
```python
# 导入对话链和记忆模块
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.llms import OpenAI
# 创建OpenAI LLM对象
llm = OpenAI(openai_api_key="你的API密钥")
# 创建对话记忆对象
memory = ConversationBufferMemory()
# 构建有记忆的对话链
conversation = ConversationChain(llm=llm, memory=memory)
# 连续对话,第一轮
print(conversation.predict(input="你好"))
# 连续对话,第二轮
print(conversation.predict(input="我刚才说了什么?"))五、生态与扩展 #
LangChain 拥有丰富的生态系统,支持多种大模型(OpenAI、Azure、ChatGLM、百度文心等),并可集成向量数据库(如FAISS、Chroma)、搜索引擎、知识库、RAG等。
- LangChain Hub:社区共享的链、Agent、Prompt模板。
- LangServe:将链/Agent快速部署为API服务。
- LangSmith:用于链路调试和监控的可视化平台。
六、应用场景 #
LangChain 适用于以下典型场景:
- 智能对话机器人
- 智能问答系统(RAG)
- 智能体(Agent)自动化办公
- 多工具协作(如搜索+计算+数据库)
- 复杂业务流程自动化
- 具备记忆的多轮对话
七、参考资料 #
推荐学习和查阅的LangChain相关资料。
- 官方文档:https://python.langchain.com.cn/
- LangChain Hub:https://hub.langchain.com/
- LangChain GitHub:https://github.com/langchain-ai/langchain
- LangChain 中文社区:https://langchain.com.cn/