Skip to main content

📚 LangChain 的核心概念

LangChain 是一个用于构建基于大型语言模型(LLMs)应用的框架,其核心价值在于将 LLM 与外部资源(如数据、工具)连接,并通过结构化流程实现复杂任务。理解其核心概念是掌握 LangChain 的关键,以下是主要核心概念:

1. 模型(Models)

指与 LangChain 集成的各类语言模型,是整个框架的“大脑”。

  • 类型
    • LLMs:生成文本的大型语言模型(如 GPT-3.5/4、Llama 系列),输入文本,输出文本。
    • 聊天模型(Chat Models):以“对话消息”为输入输出的模型(如 ChatGPT),输入是 HumanMessage AIMessage 等消息列表,输出是 AIMessage
    • 文本嵌入模型(Embedding Models):将文本转换为向量(嵌入)的模型(如 OpenAI Embeddings、Sentence-BERT),用于文本相似度计算、检索等。
  • 作用:负责核心的文本生成、理解或向量转换,是应用的基础能力来源。

2. 提示词模板(Prompt Templates)

定义输入到模型的文本格式,用于规范化提示词,避免重复编写相似内容。

  • 核心功能
    • 将动态变量(如用户输入、上下文数据)插入固定文本模板中,生成最终提示词。
    • 支持条件逻辑、格式化(如列表、表格)等,让提示词更结构化。
  • 示例
    模板:“请总结以下内容:{text}”,其中 {text} 为变量,传入具体文本后生成完整提示。

3. 链(Chains)

将多个组件(如模型、提示词模板、工具)按逻辑串联起来,实现复杂任务的流水线式执行。

  • 类型
    • LLMChain:最基础的链,由“提示词模板 + LLM/聊天模型”组成,完成单步文本生成。
    • SequentialChain:按顺序执行多个链,前一个链的输出作为后一个链的输入(如“提取关键词 → 生成摘要 → 翻译摘要”)。
    • RouterChain:根据输入内容动态选择不同的链执行(如根据问题类型选择“问答链”或“翻译链”)。
  • 作用:突破 LLM 单步调用的局限,实现多步骤任务拆解与协作。

4. 代理(Agents)

让 LLM 拥有“决策能力”,能根据任务需求自主选择工具或步骤,而非按固定流程执行。

  • 核心逻辑
    1. 接收用户问题,分析需要做什么(如“需要查天气”“需要计算”)。
    2. 选择合适的工具(如搜索引擎、计算器)并调用。
    3. 根据工具返回结果,判断是否需要进一步操作(如补充搜索、直接回答)。
  • 关键组件
    • 代理类型:如 ZeroShotAgent(基于单轮提示做决策)、ReActAgent(模仿人类“思考-行动”模式)。
    • 工具集(Tools):代理可调用的外部能力,如 SerpAPI(搜索)、PythonREPL(执行代码)、SQLDatabaseToolkit(操作数据库)等。
  • 应用场景:复杂推理任务(如规划旅行、数据分析、代码调试)。

5. 记忆(Memory)

让 LLM 能够“记住”对话历史或上下文信息,支持多轮交互。

  • 类型
    • 短期记忆:如 ConversationBufferMemory(存储完整对话历史)、ConversationSummaryMemory(存储对话摘要,节省 Token)。
    • 长期记忆:结合外部存储(如数据库、向量库),持久化保存对话或知识,供后续调用。
  • 作用:解决 LLM 单次调用“无状态”的问题,让对话更连贯,支持依赖历史信息的任务(如客服对话、多步骤规划)。

6. 索引(Indexes)与检索(Retrieval)

用于将外部数据(如文档、数据库)结构化,以便 LLM 高效检索和使用,核心是“检索增强生成(RAG)”。

  • 核心流程
    1. 加载数据:通过 DocumentLoader 读取文件(PDF、TXT)、数据库等外部数据。
    2. 分割文本:用 TextSplitter 将长文本拆分为短片段(如按字数、语义),便于嵌入和检索。
    3. 创建向量存储:将文本片段通过嵌入模型转换为向量,存储到 VectorStore(如 Chroma、Pinecone)。
    4. 检索:根据用户问题生成向量,在向量库中匹配最相关的文本片段,作为上下文输入 LLM 生成回答。
  • 作用:让 LLM 能够结合最新/私有数据回答问题,弥补其知识截止日期和训练数据局限。

7. 工具(Tools)

指 LLM 可以调用的外部能力或服务,扩展其功能边界。

  • 常见工具类型
    • 搜索引擎(如 Google Search)
    • 数据库操作(SQL、NoSQL)
    • 代码执行(Python、JavaScript)
    • 文件操作(读取/写入本地文件)
    • API 调用(如天气 API、支付 API)
  • 作用:让 LLM 从“纯文本生成”升级为“能与现实世界交互”,完成需要实时数据、计算或外部系统支持的任务。

总结

LangChain 的核心概念围绕“连接”与“扩展”展开:通过 模型 提供基础能力,用 提示词模板 规范输入,以 代理 实现流程控制与决策,借助 记忆 支持多轮交互,通过 索引与检索 关联外部数据,最终通过 工具 连接现实世界。这些概念相互配合,让开发者能快速构建复杂、实用的 LLM 应用。