LangChain API 功能介绍和使用示例
以下是关于 LangChain API 的安装与使用方法的详细指南,涵盖从环境准备到实际案例的完整流程:
一、安装步骤
1. 前置条件
- Python 版本:需 Python ≥ 3.8(推荐最新版)。
- 虚拟环境(可选但建议):避免依赖冲突。
python -m venv myenv # 创建虚拟环境 source myenv/bin/activate # Linux/MacOS .\myenv\Scripts\activate # Windows
2. 核心库安装
✅ 基础安装(包含核心功能):
pip install langchain
💡 扩展组件(按需选择):
- 对接特定大模型提供商(如 OpenAI、Anthropic):
pip install langchain_openai # OpenAI/Azure pip install langchain_anthropic # Anthropic pip install langchain_cohere # Cohere
- 嵌入模型集成:
pip install langchain_community # 社区版嵌入模型
二、基础使用示例
🔧 场景 1:基础文本生成
from langchain_openai import ChatOpenAI# 初始化模型客户端(需提前配置环境变量或直接传入 API Key)
model = ChatOpenAI(model="gpt-4o") # 自动读取 .env 文件中的 OPENAI_API_KEY# 单轮对话
response = model.invoke("写一首关于月亮的短诗")
print(response.content) # 输出生成的诗歌# 多轮对话历史
messages = [("system", "你是一位诗人"),("user", "描述星空的美丽"),
]
result = model.invoke(messages)
print(result.content)
⚙️ 关键类:ChatOpenAI
(支持聊天模式)、LLMChain
(结合自定义提示模板)。
📦 场景 2:结构化数据输出
from pydantic import BaseModel, Field
from langchain_core.output_parsers import PydanticOutputParser
from langchain_openai import ChatOpenAI# 定义目标数据结构
class PoemReview(BaseModel):title: str = Field(description="诗歌标题")rating: int = Field(ge=1, le=5, description="评分 1-5")comments: str = Field(description="点评内容")# 初始化带结构解析器的模型
llm = ChatOpenAI(model="gpt-4o").with_structured_output(PoemReview)# 执行推理
review = llm.invoke("请评价这首古诗:《静夜思》")
print(review) # 自动按字段返回结果
🔍 优势:强制模型输出符合预定义格式的数据,便于后续程序处理。
🔗 场景 3:链式工作流(Chain)
from langchain import PromptTemplate
from langchain.chains import LLMChain
from langchain_openai import ChatOpenAI# 定义提示模板
template = PromptTemplate.from_template("将以下英文翻译成中文:{input}")# 构建翻译链
translator = LLMChain(llm=ChatOpenAI(model="gpt-4o"), # 底层模型prompt=template # 任务描述模板
)# 执行翻译
result = translator.run({"input": "Hello, world!"})
print(result["text"]) # 输出翻译结果
🔄 核心逻辑:将「输入预处理 → 模型推理 → 输出后处理」封装为可复用的流水线。
三、高级功能实践
🛠️ 整合外部工具(Tools)
from langchain import hub
from langchain_openai import ChatOpenAI
from langchain.agents import ToolAgent
from langchain.tools import DuckDuckGoSearchTool# 初始化工具集
tools = [DuckDuckGoSearchTool()] # 网络搜索工具# 创建智能体代理
agent = ToolAgent(llm=ChatOpenAI(model="gpt-4o"),tools=tools,verbose=True # 打印执行日志
)# 执行复杂任务
result = agent.run("明天北京天气如何?如果下雨,推荐室内活动。")
print(result)
🤖 原理:模型自动判断何时调用工具(如搜索天气 API),实现动态决策。
📚 连接知识库(RAG 检索增强生成)
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_openai import ChatOpenAI
from langchain.retrievers import ContextualCompressionRetriever
from langchain.chains import RetrievalQA# 加载文档 & 构建向量数据库
docs = [...] # 你的文档列表
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
db = FAISS.from_documents(docs, embeddings)# 创建 RAG 链
qa_chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(),retriever=ContextualCompressionRetriever(db),return_source_documents=True # 返回引用来源
)# 提问并获取答案 + 依据
answer = qa_chain.invoke("什么是量子计算?")
print(f"答案:{answer['result']}\n来源:{answer['source_documents']}")
📖 适用场景:企业知识库问答、长文档分析等需要结合外部知识的场合。
四、常见问题解决
问题类型 | 解决方案 |
---|---|
ModuleNotFoundError | 确保已安装对应提供商的集成包(如 langchain_openai ) |
API Key 缺失 | 通过环境变量传递密钥(如 export OPENAI_API_KEY="your_key" ) |
速率限制 | 升级账户额度 / 改用本地模型(如 Ollama) |
内存溢出 | 减少上下文长度或启用分块处理 |
五、学习资源推荐
- 官方文档:https://api.langchain.com/docs/latest/index.html
- GitHub 仓库:https://github.com/langchain-ai/langchain
- 快速上手教程:https://js.langchain.com/docs/getting_started/introduction
通过以上步骤,您可以快速搭建基于 LangChain 的 AI 应用。如需进一步优化性能或定制复杂逻辑,建议深入研究其模块化设计原则(Models, Prompts, Chains, Agents)。