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. 再根据性能、成本、隐私需求逐步替换组件。
相关推荐
恋猫de小郭19 小时前
AI 正在造就你的「认知卸载」,但是时代如此
前端·人工智能·ai编程
飞哥数智坊1 天前
我的“龙虾”罢工了!正好对比下GLM、MiniMax、Kimi 3家谁更香
人工智能
风象南1 天前
很多人说,AI 让技术平权了,小白也能乱杀老师傅 ?
人工智能·后端
董董灿是个攻城狮1 天前
大模型连载1:了解 Token
人工智能
RoyLin1 天前
沉睡三十年的标准:HTTP 402、生成式 UI 与智能体原生软件的时代
人工智能
needn1 天前
TRAE为什么要发布SOLO版本?
人工智能·ai编程
毅航1 天前
自然语言处理发展史:从规则、统计到深度学习
人工智能·后端
前端付豪1 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
ursazoo1 天前
写了一份 7000字指南,让 AI 帮我消化每天的信息流
人工智能·开源·github
_志哥_2 天前
Superpowers 技术指南:让 AI 编程助手拥有超能力
人工智能·ai编程·测试