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. 再根据性能、成本、隐私需求逐步替换组件。
相关推荐
yuhaiqun198914 分钟前
学服务器训练AI模型:5步路径助力高效入门
运维·服务器·人工智能·笔记·机器学习·ai
后端小肥肠22 分钟前
18条作品狂揽390万赞?我用Coze破解了“情绪放大镜”的流量密码
人工智能·aigc·coze
小鸡吃米…1 小时前
机器学习中的回归分析
人工智能·python·机器学习·回归
程序新视界1 小时前
为什么不建议基于Multi-Agent来构建Agent工程?
人工智能·后端·agent
AI360labs_atyun1 小时前
上海打出“开源”国际牌!2025重磅新政
人工智能·科技·学习·ai·开源
沛沛老爹1 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理
Deepoch1 小时前
Deepoc具身模型:破解居家机器人“需求理解”难题
大数据·人工智能·机器人·具身模型·deepoc
AiTop1002 小时前
英伟达Rubin芯片提前量产,物理AI“ChatGPT 时刻” 降临
人工智能·chatgpt
阿正的梦工坊2 小时前
Git Rebase 是什么?为什么需要它?
人工智能·git