介绍
langchain-community 是 LangChain 生态中的 第三方集成仓库,由社区主导维护,集中存放非官方、非核心但高频使用的组件,是 LangChain 连接外部世界的“万能适配器”。
- 依赖关系:仅依赖
langchain-core(核心接口),无强制依赖,所有第三方依赖均为可选安装。 - 生态分工:
langchain-core:定义标准接口(LLM、VectorStore、Tool 等)。langchain:通用链/代理逻辑(不涉及具体集成)。langchain-community:社区贡献的第三方集成(占 LangChain 集成量 90%+)。- 官方分包:
langchain-openai、langchain-anthropic等(热门集成拆分,生产优先)。
模型集成(LLM/ChatModel)
覆盖主流+小众+本地部署模型,统一 langchain-core 接口,无缝切换。
- 国内模型:通义千问(
ChatTongyi)、DeepSeek(社区版)、智谱 GLM、文心一言。 - 本地模型:Ollama(调用本地 Llama3/DeepSeek)、
HuggingFacePipeline(本地 Hugging Face 模型)。 - 开源/小众:LlamaCpp、Cohere、AI21、Replicate 等。
文档加载器(Document Loaders)
RAG 核心入口,支持几乎所有格式的文档导入。
- 文件格式:
TextLoader(.txt)、PyPDFLoader(PDF)、CSVLoader、UnstructuredLoader(Word/Markdown/HTML)。 - 批量/目录:
DirectoryLoader(递归加载目录)、NotionLoader、GitHubLoader、YouTubeLoader(字幕)。 - 数据库/云:
SQLDatabaseLoader、MongoDBLoader、S3Loader等。
向量存储(Vector Stores)
RAG 核心组件,对接主流向量库+数据库向量扩展。
- 轻量开源:Chroma、FAISS(本地优先)、PGVector(PostgreSQL 向量插件)。
- 云端/企业级:Pinecone、Weaviate、Milvus、Qdrant、Elasticsearch(向量版)。
使用示例:
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import HuggingFaceEmbeddings
vectorstore = Chroma.from_documents(
documents=docs,
embedding=HuggingFaceEmbeddings()
)
文本分割器(Text Splitters)
将长文档切分为语义连贯、检索友好的片段。
- 通用:
RecursiveCharacterTextSplitter(按段落/句子递归分割,最常用)。 - 语义感知:
TokenTextSplitter(按 LLM token 数)、MarkdownTextSplitter、LatexTextSplitter。
工具集成(Tools)
Agent 核心能力,对接搜索、数据库、API、系统命令等外部工具。
- 搜索:
TavilySearch、GoogleSearch、SerpAPI、ArXivSearch。 - 系统/代码:
PythonREPLTool、ShellTool、RequestsTool(HTTP 调用)。 - 办公/协作:
SlackTool、NotionTool、GitHubTool。
记忆(Memory)
扩展 langchain-core 记忆能力,支持多轮对话上下文管理。
- 存储型:
RedisChatMessageHistory、MongoDBChatMessageHistory、SQLiteMemory。 - 摘要型:
ConversationSummaryMemory、VectorStoreRetrieverMemory(向量记忆)。
检索器(Retrievers)
RAG 核心,将向量存储封装为统一检索接口。
- 向量检索:
VectorStoreRetriever(基础)、MultiQueryRetriever(多查询扩展)。 - 混合检索:
EnsembleRetriever(向量+关键词)、BM25Retriever(关键词检索)。
安装
# 基础安装(无依赖)
pip install langchain-community
# 带常用依赖(如向量库、文档处理)
pip install "langchain-community[all]" # 全量依赖(不推荐)
pip install "langchain-community[vectorstores]" # 仅向量库依赖
pip install "langchain-community[document_loaders]" # 仅文档加载依赖
RAG 例子
# 1. 加载文档
from langchain_community.document_loaders import TextLoader
loader = TextLoader("demo.txt")
docs = loader.load()
# 2. 分割文本
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)
# 3. 向量存储
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
vectorstore = FAISS.from_documents(chunks, HuggingFaceEmbeddings())
# 4. 检索+生成
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(
llm=Ollama(model="deepseek-r1"),
retriever=vectorstore.as_retriever()
)
print(qa_chain.run("你的问题"))
优点
- 覆盖极广:95%+ 小众集成需求,原型开发“开箱即用”。
- 轻量灵活:可选依赖,不冗余,按需安装。
- 社区活跃:快速新增模型/工具,适配最新开源生态。
缺点
- 质量参差:部分组件维护滞后、文档简陋、bug 较多。
- 版本兼容:依赖升级可能导致组件失效(如 Hugging Face 版本)。
- 无官方 SLA:问题响应慢,生产环境风险高。
使用建议
- 原型阶段:优先用
langchain-community,快速验证想法。 - 生产环境:
- 热门集成:替换为官方分包(如
langchain-openai)。 - 关键组件:自研或fork后维护,确保稳定性。
- 小众集成:评估后封装,加单元测试与版本锁定。
- 热门集成:替换为官方分包(如
与官方分包对比
| 特性 | langchain-community | 官方分包(如 langchain-openai) |
|---|---|---|
| 维护方 | 社区 | LangChain 官方团队 |
| 质量 | 参差 | 高,严格测试 |
| 更新 | 不定期 | 同步核心版本,及时修复 |
| 文档 | 简略 | 完善,含最佳实践 |
| 适用场景 | 原型、小众需求 | 生产、核心链路 |
总结
langchain-community 是 LangChain 生态的“万能工具箱”,以全面性、灵活性、低成本成为原型开发首选;但生产环境需谨慎,优先官方分包或自研封装。