LangChain

把模型、提示词、检索、工具、记忆抽象成可组合组件,LLM 应用生态里最绕不开的那一层胶水


项目速览

项目 内容
仓库 langchain-ai/langchain
语言 Python / JavaScript
协议 MIT
形态 库 + 配套服务(LangSmith)
生态 数百个集成包

它想解决什么问题

做 LLM 应用的早期代码高度重复:调模型、拼提示词、切文档、存向量、管上下文。每换一家模型或向量库就要重写一遍。

LangChain 的答案是抽象:把每一环定义成标准接口,你用链式组合表达流程,换实现只改一行。

核心机制拆解

1. 统一抽象。 ChatModel、Embeddings、VectorStore、Retriever、Tool 各有基类,集成包只需实现接口。

2. 组合表达。 LCEL 用管道符把组件串成链,支持流式、批处理、并发与重试,这层语法糖降低了编排成本。

3. 生态广度。 数百个集成包覆盖主流模型、向量库、文档加载器与工具,几乎”想接什么都有现成的”。

4. 可观测。 配套 LangSmith 提供追踪与评测,链路的每一步输入输出可回看。

安装与上手

1
pip install langchain langchain-openai
1
2
3
4
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
chain = ChatPromptTemplate.from_template("用三句话解释{topic}") | ChatOpenAI()
print(chain.invoke({"topic": "向量数据库"}))

点评

亮点是生态与惯性:遇到任何”接某个服务”的需求,先搜 LangChain 集成几乎成了默认动作。对需要快速拼出多模型、多数据源应用的团队,它省下的胶水代码相当可观。

局限:抽象层太厚,出问题时栈跟踪能翻十几层;版本迭代激进,langchain 与 langchain-core 的破坏性变更让人频繁改代码;很多场景下”自己写 200 行”比引入框架更透明、更好调;LangSmith 是商业化产品,深度可观测要付费。

适合人群:需要快速集成多家模型与数据源的团队;想用统一接口避免供应商锁定的项目;以及把它当”参考实现”读、而非全盘照搬的工程师。