langchain框架有关的包的关系和由来
🧩 LangChain 模块关系与架构全解析
你提到的这些包:
langchain-core
、langchain
、langchain-openai
、langchain-community
、langchain-text-splitters
、langchain-deepseek
确实都与 LangChain 框架相关。下面是它们的关系、依赖、演化顺序和架构图说明。
🏗️ 一、LangChain 模块化演化
LangChain 最早是一个单一包:
pip install langchain
后来因为:
• 包体太大,安装慢;
• 依赖冲突频发;
• 用户通常只用到部分模块;
官方进行了模块化拆分,形成了如下层级结构:
langchain-core
│
├── langchain
│ ├── langchain-community
│ ├── langchain-openai
│ ├── langchain-text-splitters
│ └── langchain-deepseek
⸻
🧠 二、各包的功能与依赖关系
1️⃣ langchain-core
LangChain 的“核心层”。
定义了框架的核心抽象接口与类型系统:
• BaseLanguageModel
• BaseChatModel
• Document
• Runnable
• PromptTemplate
• CallbackManager
📦 依赖关系
langchain-core
└── 无其他依赖(所有其他包都依赖它)
📚 安装
pip install langchain-core
⸻
2️⃣ langchain
框架主入口,整合核心能力和高级接口。
它提供链(Chains)、代理(Agents)、执行流(Runnables)等框架层能力。
📦 依赖
langchain
├── langchain-core
├── langchain-community
└── langchain-text-splitters(间接)
📚 安装
pip install langchain
⸻
3️⃣ langchain-community
“社区集成层”,包含各种第三方适配器。
例如:
• 向量数据库:Chroma、FAISS、Pinecone、Redis
• 模型接入:HuggingFace、Cohere
• 工具集成:Google Search、文件加载器等
📦 依赖
langchain-community
├── langchain-core
└── 第三方SDK(redis, chromadb 等)
📚 安装
pip install langchain-community
⸻
4️⃣ langchain-openai
针对 OpenAI 模型的适配层。
实现:
• ChatOpenAI
• OpenAIEmbeddings
• AzureOpenAI
📦 依赖
langchain-openai
├── langchain-core
└── openai
📚 安装
pip install langchain-openai
⸻
5️⃣ langchain-text-splitters
文本分块工具包。
常用于 RAG 场景中对长文档的分片。
支持:
• RecursiveCharacterTextSplitter
• MarkdownHeaderTextSplitter
• TokenTextSplitter
📦 依赖
langchain-text-splitters
└── langchain-core
📚 安装
pip install langchain-text-splitters
⸻
6️⃣ langchain-deepseek
DeepSeek 模型适配层。
封装了对 DeepSeek API 的支持:
• DeepSeekChat
• DeepSeekEmbeddings
📦 依赖
langchain-deepseek
├── langchain-core
└── deepseek (官方SDK)
📚 安装
pip install langchain-deepseek
⸻
🧩 三、依赖结构图
┌──────────────────────┐│ langchain-core ││ (定义接口与核心类型) │└──────────┬───────────┘│┌────────────────────┼────────────────────┐│ │ │
┌───────────────┐ ┌────────────────┐ ┌─────────────────────┐
│ langchain │ │ langchain-openai│ │ langchain-community │
│ (框架主入口) │ │ (OpenAI适配) │ │ (社区集成包) │
└──────┬────────┘ └────────────────┘ └─────────────────────┘
│
│
┌───────────────┐ ┌────────────────┐
│ text-splitters│ │ langchain-deepseek │
│ (文本分块工具)│ │ (DeepSeek适配包) │
└───────────────┘ └────────────────┘
⸻
🕰️ 四、出现的时间顺序
时间 模块 说明
2022 langchain 单包版本(所有内容混合)
2023 langchain-core 核心层抽象分离
2023 Q4 langchain-community, langchain-openai 集成层模块化
2024 Q1 langchain-text-splitters 工具层拆出
2024 Q3 langchain-deepseek 第三方模型适配扩展
⸻
📊 五、模块总结表
包名 职责 依赖 是否必须 举例
langchain-core 核心抽象与类型定义 无 ✅ 必须 BaseChatModel
langchain 框架主入口 core + community ✅ 常用 LLMChain
langchain-community 社区插件与集成 core ✅ 常用 Chroma, FAISS
langchain-openai OpenAI 模型支持 core + openai 可选 ChatOpenAI
langchain-text-splitters 文本分块工具 core 可选 RecursiveCharacterTextSplitter
langchain-deepseek DeepSeek 模型支持 core + deepseek 可选 DeepSeekChat
⸻
✅ 六、推荐安装组合
使用场景 推荐安装命令
使用 OpenAI 模型 pip install langchain langchain-openai
使用 DeepSeek 模型 pip install langchain langchain-deepseek
做 RAG 文档检索 pip install langchain langchain-community langchain-text-splitters
⸻
🎨 七、架构示意图
⸻
📘 总结:
• langchain-core 是所有包的地基。
• langchain 是框架主入口。
• langchain-community、langchain-openai、langchain-deepseek 是扩展集成层。
• langchain-text-splitters 是工具层。
模块化设计让 LangChain 更轻、更灵活,也方便第三方厂商扩展模型生态。