当前位置: 首页 > news >正文

【AI】深入 LangChain 生态:核心包架构解析

引言

随着大语言模型(LLM)应用的爆发式增长,LangChain 已成为构建 AI 应用最流行的开源框架之一。然而,从 v0.1 到 v0.2 的重大重构后,LangChain 的包结构发生了根本性变化:从单一单体包拆分为多个独立的 PyPI 包。

这让许多开发者困惑:

  • 到底该装哪个包?
  • langchain-core 是什么?
  • 为什么 langchain 包还在,但功能变少了?

本文将带你深入剖析 LangChain 当前的模块化架构,厘清 langchain-corelangchain-communitylangchainlangchain-openai 等核心包的功能、联系与使用场景,帮助你构建清晰的认知体系。

 一、LangChain 的架构演进:从单体到微内核

旧时代(v0.1 及之前)

在 LangChain 早期版本中,所有功能都打包在一个名为 langchain 的单一 PyPI 包中:

pip install langchain

这个包包含了:

  • 核心接口
  • 所有模型集成(OpenAI、Hugging Face、Azure 等)
  • 所有工具集成(Google Search、Wolfram Alpha、数据库等)
  • 所有向量数据库支持

问题

  • 包体积巨大(依赖过多)
  • 安装缓慢
  • 引入大量你用不到的依赖
  • 版本冲突频繁

 新时代(v0.2+):模块化拆分

为解决上述问题,LangChain 团队进行了架构重构,采用“微内核 + 插件”模式:

          +---------------------+|   langchain-community |  ← 第三方集成(数据库、工具等)+----------+----------+|+----------v----------+|   langchain-openai    |  ← 特定平台模型集成|   langchain-aliyun    |  ← 阿里云通义千问|      ... 等等         |+----------+----------+|+----------v----------+|   langchain-core      |  ← ⭐ 核心抽象层(地基)+---------------------+

这种设计带来了:

  • 按需安装,减少依赖
  • 更快的迭代速度
  • 更清晰的职责划分
  • 更强的可维护性

 二、核心包详解

1. langchain-core:LangChain 的“内核”与“宪法”

PyPI 包名langchain-core
GitHub:https://github.com/langchain-ai/langchain/tree/master/libs/core

定位
  • LangChain 的核心抽象层
  • 定义所有组件必须遵守的“接口规范”
  • 是整个生态的基石和标准
主要功能
模块说明
BaseLanguageModel所有语言模型(LLM、ChatModel)的基类
Runnable“可运行”协议,支持 .invoke(), .stream(), .batch()
BasePromptTemplate提示词模板的标准接口
BaseRetriever检索器标准(用于 RAG)
BaseTool工具标准(用于 Agent)
BaseMemory记忆机制接口
messages统一的消息类型:HumanMessage, AIMessage, SystemMessage
output_parsers输出解析器,如 StrOutputParser
callbacks回调系统,用于日志、监控、追踪
为什么必须安装?
  • 所有其他 LangChain 包都依赖它
  • 它不提供具体功能,而是提供“类型定义”和“运行时协议”
一句话总结

langchain-core 是 LangChain 的“宪法”,规定了所有组件应该如何行为。


2. langchain-community:第三方集成的“大本营”

PyPI 包名langchain-community
GitHub:https://github.com/langchain-ai/langchain/tree/master/libs/community

定位
  • 官方维护的第三方集成库
  • 包含各种数据库、工具、检索器的实现
主要功能
类别示例
向量数据库FAISS, Chroma, Pinecone, Milvus, Weaviate, Qdrant
检索工具TavilySearch, Google Search, SerpAPI
数据库连接SQLDatabase, MongoDB, Redis
文档加载器PDF、Word、网页爬取等
工具(Tools)Requests(HTTP 调用)、Shell、Python REPL

langchain-community 是 LangChain 的“工具箱”,让你轻松连接外部世界。

使用场景
from langchain_community.vectorstores import FAISS
from langchain_community.tools import DuckDuckGoSearchRun

3. langchain-openai:OpenAI 模型的专用客户端

PyPI 包名langchain-openai
GitHub:https://github.com/langchain-ai/langchain/tree/master/libs/openai

 定位
  • 专门用于调用 OpenAI 模型(如 gpt-3.5-turbo, gpt-4)
  • 提供 ChatOpenAI, OpenAIEmbeddings 等类
主要功能
  • ChatOpenAI:调用 OpenAI 的聊天模型
  • OpenAIEmbeddings:生成文本向量
  • 支持流式输出、函数调用、工具调用等高级功能

langchain-openai 是 LangChain 与 OpenAI API 之间的“桥梁”。

使用场景
from langchain_openai import ChatOpenAI, OpenAIEmbeddingsmodel = ChatOpenAI(model="gpt-3.5-turbo")
embeddings = OpenAIEmbeddings()

注意:即使你用 ChatOpenAI 调用阿里云(通过 base_url),你也需要安装 langchain-openai,因为它提供了这个类。


4. langchain:顶层聚合包(“快捷方式”)

PyPI 包名langchain
GitHub:https://github.com/langchain-ai/langchain/tree/master/libs/core

定位
  • 一个“聚合包”或“元包”(metapackage)
  • 安装它会自动安装 langchain-core + langchain-community + langchain-openai
主要功能
  • 无实际代码,只是一个 setup.py 文件
  • 用于快速入门兼容旧项目
什么时候用?
  • 快速原型开发,不想纠结装哪个包
  • 教学演示,简化依赖
  • 旧项目迁移
什么时候不用?
  • 生产环境(会引入大量不需要的依赖)
  • 希望最小化依赖的项目
使用场景
pip install langchain  # 一键安装所有常用组件

5. 包之间的依赖关系图

所有包都依赖 langchain-core,它是“根”。

三、其他必要的相关包

除了上述核心包,以下包在实际开发中也非常重要:

包名作用安装命令
langchain-aliyun调用阿里云通义千问模型pip install langchain-aliyun
langchain-anthropic调用 Claude 模型pip install langchain-anthropic
langchain-google-genai调用 Gemini 模型pip install langchain-google-genai
langchainhub共享 Prompt、Chain、Agentpip install langchainhub
langsmith调试、监控、评估 LangChain 应用pip install langsmith
langgraph构建基于图的 Agent 工作流pip install langgraph
python-dotenv加载 .env 文件pip install python-dotenv

四、实战:如何选择安装哪些包?

场景 1:只用 OpenAI + FAISS 做知识库问答

pip install langchain-core langchain-openai langchain-community

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS


场景 2:用通义千问 + Google 搜索做 Agent

pip install langchain-core langchain-aliyun langchain-community
from langchain_aliyun import ChatTongyi
from langchain_community.tools import GoogleSearchResults

场景 3:快速原型开发(不介意依赖多)

pip install langchain langsmith python-dotenv

五、总结:一张表搞懂所有包

包名类型是否必须主要用途
langchain-core核心抽象✅ 必须定义接口、Runnable、消息类型
langchain-community第三方集成⚠️ 按需向量库、工具、检索器
langchain-openai平台集成⚠️ 按需调用 OpenAI 模型
langchain聚合包❌ 非必须一键安装,适合快速入门
langchain-aliyun平台集成⚠️ 按需调用通义千问
langsmith开发工具✅ 推荐调试与监控

LangChain 的模块化拆分是其走向成熟的重要标志。理解 langchain-corelangchain-community 等包的职责,不仅能更高效地管理依赖,还能在阅读源码、调试问题时心中有数

记住:

langchain-core 是“宪法”,langchain-community 是“工具箱”,langchain-openai 是“桥梁”,而 langchain 只是“快捷方式”。

http://www.dtcms.com/a/453165.html

相关文章:

  • CodeBuddy Code + 腾讯混元打造“AI识菜通“
  • 记录踩过的坑-金蝶云·苍穹平台-杂七杂八
  • 【嵌入式原理系列-第11篇】半导体电子传输与PN结工作原理浅析
  • 磁力链接 网站怎么做的做网站多少钱西宁君博专注
  • 苹果RL4HS框架的技术原理
  • 在哪网站开发软件发视频的网址网址是什么?
  • 第74篇:AI+教育:个性化学习、智能辅导与虚拟教师
  • 2025 AI 落地元年:从技术突破到行业重构的实践图景
  • 《每日AI-人工智能-编程日报》--2025年10月7日
  • 公司销售泄密公司资料如何管控?信企卫文件加密软件深度分析
  • .NET+AI: (微家的AI开发框架)什么是内核记忆(Kernel Memory)?
  • 版本控制器 git(2)--- git 基本操作
  • 数字信号处理 第六章(IIR数字滤波器设计)
  • 辽宁专业网页设计免费建站正规seo服务商
  • 西安将军山网站建设wordpress评论模板怎么改
  • 抽象类定义
  • 基于sprigboot的农贸市场摊位管理系统(源码+论文+部署+安装)
  • 基于Flink的AB测试系统实现:从理论到生产实践
  • 开源 C++ QT QML 开发(八)自定义控件--圆环
  • CTF攻防世界WEB精选基础入门:backup
  • 建设信用卡积分网站网站备案掉了
  • 免杀技术(高级中的基础手法)之PE扩大节注入ShellCode
  • C#自动化程序界面
  • 什么是Maven?关于 Maven 的坐标、依赖管理与 Web 项目构建
  • 新上线网站如何做搜索引擎市场监督管理局
  • 《投资-84》价值投资者的认知升级与交易规则重构 - 第二层:是虚拟的不可见的价值,可以被正向放大、也可以反向放大
  • 上虞中国建设银行官网站网站开发的工作总结
  • Cortex-M 中断挂起、丢中断与 EXC_RETURN 机制详解
  • Qt C++ :QWidget类的主要属性和接口函数
  • 串扰14-蛇形走线与信号延迟