LangChain核心组件可用工具

LangChain 是一个用于构建基于大语言模型(LLM)应用的框架,其核心思想是"组合可复用的组件 "来构建复杂链式逻辑。LangChain 的架构模块化清晰,主要包括以下 六大核心组件


🧩 一、LangChain 六大核心组件概览

组件 功能说明 主要子模块/工具
1. Models(模型) 调用 LLM 或 Embedding 模型 ChatOpenAI, HuggingFaceLLM, Ollama, AzureChatOpenAI
2. Prompts(提示) 构建和管理提示模板 PromptTemplate, ChatPromptTemplate, FewShotPromptTemplate
3. Chains(链) 组合多个步骤形成工作流 LLMChain, RetrievalQA, ConversationalRetrievalChain, SequentialChain
4. Memory(记忆) 在对话中保持上下文状态 ConversationBufferMemory, ConversationSummaryMemory, RedisChatMessageHistory
5. Indexes & Retrievers(索引与检索器) 文档加载、切分、向量化、检索 Document Loaders, Text Splitters, Vectorstores, Retrievers
6. Agents(代理) 让 LLM 调用工具自主决策 Zero-shot ReAct Agent, Self-ask Agent, Tool(如搜索、计算器等)

下面对每个组件进行 详细展开 + 可用工具 + 优缺点对比


1️⃣ Models(模型)

✅ 功能

  • 封装 LLM(生成)和 Embedding(向量化)模型的调用接口。
  • 统一 API,支持切换不同后端。

🔧 常用工具(按类型)

A. Chat/Completion Models

工具 所属包 说明
ChatOpenAI langchain_openai OpenAI GPT 系列(gpt-4, gpt-3.5-turbo)
ChatAnthropic langchain_anthropic Claude 系列
ChatOllama langchain_ollama 本地运行开源模型(Llama3, Mistral 等)
HuggingFacePipeline langchain_huggingface 本地 Hugging Face Transformers 模型
AzureChatOpenAI langchain_openai Azure OpenAI 服务

B. Embedding Models

工具 说明
OpenAIEmbeddings OpenAI text-embedding-ada-002
HuggingFaceEmbeddings 开源模型(如 all-MiniLM-L6-v2)
OllamaEmbeddings 通过 Ollama 使用本地嵌入模型

⚖️ 优缺点对比

方案 优点 缺点
OpenAI / Anthropic 效果好、API 稳定、低延迟 付费、需网络、数据隐私风险
Ollama / HuggingFace(本地) 数据私有、免费、可离线 需 GPU/CPU 资源、部署复杂、效果略弱
Azure OpenAI 企业合规、私有部署选项 配置复杂、成本高

💡 建议:开发阶段用 OpenAI 快速验证,生产环境考虑 Ollama + 开源模型保安全。


2️⃣ Prompts(提示模板)

✅ 功能

  • 结构化构建提示,支持变量注入、示例填充、多轮对话格式。

🔧 常用工具

  • PromptTemplate:基础字符串模板
  • ChatPromptTemplate:支持 HumanMessage / AIMessage 格式(推荐用于聊天模型)
  • FewShotPromptTemplate:带少量示例的提示(提升小模型效果)
  • PipelinePromptTemplate:组合多个子模板

⚖️ 优缺点

类型 优点 缺点
PromptTemplate 简单直接 不适合聊天模型
ChatPromptTemplate 符合现代 LLM 对话格式,支持系统消息 略复杂
FewShot... 提升 zero-shot 性能 占用 token,成本高

最佳实践 :始终使用 ChatPromptTemplate + SystemMessage 定义角色。


3️⃣ Chains(链)

✅ 功能

  • 将多个操作(如 prompt → LLM → parse → call tool)串联成 pipeline。

🔧 常用 Chain

Chain 用途
LLMChain 最基础:prompt + LLM
RetrievalQA RAG:检索 + 问答
ConversationalRetrievalChain 带历史的 RAG
SequentialChain / SimpleSequentialChain 多步骤顺序执行
TransformChain 自定义函数处理输入/输出

⚖️ 优缺点

Chain 优点 缺点
RetrievalQA 开箱即用 RAG 无法精细控制检索-生成交互
ConversationalRetrievalChain 支持对话历史 内存消耗大
自定义 Chain 灵活 需手动编写逻辑

💡 LangChain Expression Language(LCEL)正在取代传统 Chain,更灵活(见 v0.1+)。


4️⃣ Memory(记忆)

✅ 功能

  • 在多轮对话中保存上下文,避免 LLM "失忆"。

🔧 常用 Memory 类型

Memory 特点
ConversationBufferMemory 保存全部历史(简单但占 token)
ConversationSummaryMemory 用 LLM 压缩历史为摘要
ConversationBufferWindowMemory 只保留最近 N 轮
RedisChatMessageHistory 外部存储(支持多用户会话持久化)

⚖️ 优缺点

类型 优点 缺点
Buffer 精确还原上下文 token 成本高,长对话失效
Summary 节省 token 摘要可能丢失细节
Window 平衡 可能切断关键上下文
Redis/DB 可扩展、多用户 需额外基础设施

生产建议 :用 Window + 外部存储(如 Redis)组合。


5️⃣ Indexes & Retrievers(索引与检索)

✅ 功能

  • 从非结构化数据(PDF、MD、网页等)构建可检索的知识库。

🔧 子组件与工具

A. Document Loaders

  • TextLoader, UnstructuredMarkdownLoader, PyPDFLoader, WebBaseLoader, DirectoryLoader

B. Text Splitters

  • RecursiveCharacterTextSplitter(最常用)
  • MarkdownHeaderTextSplitter(保留标题结构)
  • TokenTextSplitter(按 token 切分)

C. Vectorstores(向量数据库)

  • FAISS, Chroma, Qdrant, Pinecone, Weaviate(见前文对比)

D. Retrievers

  • vectorstore.as_retriever()
  • MultiQueryRetriever(生成多个查询提升召回)
  • ContextualCompressionRetriever(压缩冗余内容)

⚖️ 优缺点(整体流程)

环节 挑战 优化建议
加载 格式兼容性差 优先用 unstructured
切分 语义断裂 MarkdownHeaderTextSplitter + overlap
向量库 过滤能力弱(如 FAISS) 选 Qdrant/Pinecone 支持 metadata filter
检索 召回率低 MultiQueryRetriever + 重排序(CohereRerank)

6️⃣ Agents(代理)

✅ 功能

  • 让 LLM 自主决定是否调用工具(如搜索、计算、查数据库),实现动态推理。

🔧 核心组成

  • Agent Type

    • zero-shot-react-description(最常用)
    • self-ask-with-search
    • conversational-react-description
  • Tools

    • DuckDuckGoSearchRun(网络搜索)
    • WikipediaQueryRun
    • PythonREPLTool(慎用!)
    • 自定义 Tool(继承 BaseTool

⚖️ 优缺点

方面 优点 缺点
能力 可解决复杂、开放问题 执行慢(多轮 LLM 调用)
可控性 可限制可用工具 LLM 可能误用或死循环
安全性 ------ 若允许代码执行,有安全风险

⚠️ 生产建议 :严格限制工具权限,避免 PythonREPLTool;用 max_iterations 防止死循环。


📌 总结:LangChain 组件选型建议

场景 推荐配置
快速 RAG Demo Chroma + OpenAI + RetrievalQA + BufferMemory
企业私有知识库 Qdrant + Ollama(Llama3)+ MarkdownHeaderTextSplitter + RedisMemory
多轮智能客服 ConversationalRetrievalChain + WindowMemory + Pinecone
复杂任务自动化 Agent(ReAct) + DuckDuckGo + 自定义安全工具

LangChain 的优势在于 高度模块化,但也带来"选择困难"。建议:

  1. 先用默认组合(如 Chroma + OpenAI)跑通流程;
  2. 再根据性能、成本、隐私需求逐步替换组件。
相关推荐
测试员周周4 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
K姐研究社5 小时前
怎么用AI制作电商口播视频,开拍APP一键生成
人工智能·音视频
LaughingZhu6 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
传说故事6 小时前
【论文阅读】MotuBrain: An Advanced World Action Model for Robot Control
论文阅读·人工智能·具身智能·wam
北京耐用通信7 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
火山引擎开发者社区7 小时前
TRAE × 火山引擎 Supabase:为你的 AI 应用装上“数据引擎”
人工智能
小a彤7 小时前
GE 在 CANN 五层架构中的位置
人工智能·深度学习·transformer
前端若水7 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Upsy-Daisy8 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
企学宝8 小时前
企学宝5月专题课程丨《OpenClaw AI 智能体实战营:从零基础部署到全场景自动化落地》
人工智能·ai·企业培训