LangChain(🦜️🔗)是2022年由 Harrison Chase 创立的开源框架,核心定位是连接大语言模型(LLM)与外部世界,让开发者像拼乐高一样快速构建复杂AI应用,无需从零编写所有代码。它解决了LLM原生的三大痛点:信息时效性差、无法访问私有数据、缺乏工具使用能力。

一、核心定位与价值

• 统一接口:封装OpenAI、Anthropic、Google Gemini等主流LLM,切换模型无需修改核心代码

• 模块化组件:将AI应用开发拆分为可复用的"积木",覆盖从数据接入到流程编排全链路

• 降低门槛:内置对话记忆、检索增强生成(RAG)、工具调用等核心能力,加速应用落地

• 生态丰富:支持数百种数据源、向量数据库和第三方工具集成

二、五大核心组件(Model I/O+数据+记忆+工具+流程)

  1. Model I/O:模型输入输出管理

• 提示词模板(Prompt Templates):预定义对话框架,支持动态变量替换,保证输出一致性

• 模型包装器(Model Wrappers):统一LLM/Chat Model调用接口,处理API密钥、参数配置等底层细节

• 输出解析器(Output Parsers):将LLM原始文本转换为结构化数据(JSON、Pydantic模型等),便于下游处理

  1. Retrieval:检索增强生成(RAG)核心

解决LLM"失忆"和知识过时问题:

• 文档加载器(Document Loaders):从PDF、CSV、网页、数据库等数百种源导入数据

• 文本分割器(Text Splitters):智能切分长文本,保持语义完整性,适配LLM上下文窗口限制

• 嵌入模型(Embeddings):将文本转为向量表示,捕捉语义信息

• 向量数据库(Vector Stores):支持Pinecone、Chroma、FAISS等,实现高效语义检索

  1. Memory:对话上下文管理

• Conversation Buffer Memory:保留完整对话历史

• Conversation Summary Memory:自动总结对话,节省上下文空间

• Entity Memory:跟踪对话中提到的实体及其属性,提升个性化交互

  1. Agents:智能决策与工具调用

让LLM像人一样思考并执行任务:

• 规划能力:拆解复杂任务为子步骤

• 工具选择:根据需求自动调用搜索、计算器、API等外部工具

• 结果整合:分析工具返回结果,形成最终答案

• 内置Agent类型:React、Self-Ask、Plan-and-Execute等,适配不同任务复杂度

  1. Chains:流程编排核心

将组件串联成端到端工作流:

• 基础链:SimpleSequentialChain(线性执行)、SequentialChain(多输入输出)

• 文档链:Stuff(全部内容一次性传入)、MapReduce(并行处理后汇总)、Refine(迭代优化结果)

• 工具链:将模型调用与工具使用结合,实现复杂任务自动化

三、关键技术与配套工具

  1. LCEL:LangChain表达式语言(1.0+核心)

声明式编程范式,用简单表达式组合复杂流程,支持流式处理和异步执行,是LangChain 1.0后的推荐开发方式。

示例:chain = prompt | model | output_parser

  1. LangSmith:开发调试平台

• 追踪链执行全过程,可视化每一步输入输出

• 评估LLM响应质量,支持自定义指标

• 团队协作与版本管理,提升开发效率

  1. LangServe:快速部署工具

将LangChain链一键转换为REST API,支持Docker容器化部署,简化生产环境上线流程。

四、快速入门:5分钟搭建第一个应用

  1. 环境准备
    pip install langchain openai # 基础安装,根据需要添加其他集成包
    export OPENAI_API_KEY=“your-api-key” # 设置环境变量
  2. 极简示例:创建对话链
    from langchain.chat_models import ChatOpenAI
    from langchain.chains import ConversationChain
    from langchain.memory import ConversationBufferMemory

初始化模型和记忆

llm = ChatOpenAI(model_name=“gpt-3.5-turbo”, temperature=0.7)
memory = ConversationBufferMemory()

创建对话链

conversation = ConversationChain(llm=llm, memory=memory, verbose=True)

交互

conversation.predict(input=“你好,我叫小明”)
conversation.predict(input=“我今天想学习LangChain,能给我一些建议吗?”)
3. 输出解析示例(获取结构化数据)
from langchain.prompts import PromptTemplate
from langchain.output_parsers import PydanticOutputParser
from pydantic import BaseModel, Field

定义数据模型

class BookRecommendation(BaseModel):
title: str = Field(description=“书名”)
author: str = Field(description=“作者”)
reason: str = Field(description=“推荐理由”)

配置解析器和提示词

parser = PydanticOutputParser(pydantic_object=BookRecommendation)
prompt = PromptTemplate(
template=“推荐一本{genre}小说。\n{format_instructions}\n”,
input_variables=[“genre”],
partial_variables={“format_instructions”: parser.get_format_instructions()}
)

生成并解析结果

chain = prompt | llm | parser
result = chain.invoke({“genre”: “科幻”})
print(result.title, result.author, result.reason)
五、典型应用场景

  1. 智能问答系统:结合企业知识库,提供精准答案,支持文档溯源

  2. 对话机器人:保留上下文,实现多轮自然对话,可集成到网站/APP

  3. 数据分析助手:连接数据库,自动生成SQL查询并解释结果

  4. 代码生成工具:理解需求,编写/优化代码,调用测试工具验证正确性

  5. 内容创作平台:生成博客、邮件、报告等,支持多轮修改和格式转换

  6. 自主智能体:完成复杂任务(如市场调研、旅行规划),自动调用搜索引擎、API等工具

六、LangChain vs LlamaIndex:如何选择
维度 LangChain LlamaIndex
核心定位 通用型LLM应用框架,侧重流程编排与工具调用 以数据为中心,专注文档检索与知识管理
最佳场景 智能助手、工具链代理系统、复杂流程自动化 垂直知识库、企业文档检索、RAG优化
优势 工具调用能力强,Agent生态完善,流程灵活 文档处理更精细,检索效率高,查询优化好
关系 非竞争,可互补使用(如LangChain负责流程,LlamaIndex负责检索)

七、总结与学习路径

LangChain不是替代LLM,而是赋能LLM的框架,核心价值在于"连接"与"编排"。

入门三步走:

  1. 安装基础库,完成5分钟快速示例,理解核心概念

  2. 掌握三大基础应用:对话机器人(Memory)、文档问答(RAG)、工具调用(Agent)

  3. 学习LCEL表达式,尝试用LangSmith调试,用LangServe部署

随着LangChain 1.0的发布,其模块化设计和表达式语言让开发更高效、可维护。无论你是AI初学者还是资深开发者,掌握LangChain都能大幅提升大模型应用开发效率,解锁更多AI创新可能。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐