上一篇: LangChain入门理解:为什么需要它?)

本文主要整理 LangChain 的核心组件,用于理解其是如何构建 AI 应用的

一、从整体看 LangChain

上一篇笔记核心认知:LangChain 是一个用于构建 LLM 驱动型 AI 应用的开源框架。
1.核心疑问:LangChain 如何实现“构建 AI 应用”?
从极简流程来看,LangChain 本质是实现“输入 → 处理 → 输出”的闭环,但实际开发中会拆分为多个核心组件,形成完整工作流:


	用户输入
	  ↓
	Prompt(构造规范输入)
	  ↓
	LLM(核心生成内容)
	  ↓
	Chain(链接多步流程)
	  ↓
	Memory(保存上下文记忆)
	  ↓
	OutputParser(解析输出格式)

2.核心思想:将复杂 AI 任务拆分为独立模块(组件),通过标准化接口组合执行,降低开发复杂度

二、核心组件详解

(一)LLM(大语言模型)—— 核心生成器

1.基本作用:

LLM 是整个 LangChain 体系的“核心引擎”,负责接收输入、生成符合语境的内容,是所有 AI 应用的基础。

极简逻辑:
输入 → 输出(接收 Prompt,生成文本结果)
我们来看一段代码:


from langchain_openai import ChatOpenAI
# 初始化 LLM 实例(以 OpenAI 模型为例)
model = ChatOpenAI()
# 调用模型
res = model.invoke("解释什么是递归,用通俗的语言说明")
# 输出文本
print(res.content)

2.可将 LLM 理解为:

一个“会说话的函数” —— 输入是 Prompt,输出是模型生成的文本,无需关注内部逻辑,只需调用即可

(二)Prompt(提示词)—— 输入控制器

1.核心意义:

LLM 的输出质量,直接由 Prompt 决定。同一个问题,模糊的 Prompt 会导致输出杂乱,明确的 Prompt 能让模型精准响应、提高效率。


举个例子:我们要AI帮我们写一段python代码

模糊的 Prompt(输出不可控):

	帮我写一段代码

明确的 Prompt(输出精准):

	你是一名Python 高级工程师,写一个快速排序算法,附带详细注释,同时说明时间复杂度和空间复杂度。

2.常用的工具:PromptTemplate
用于生成标准化 Prompt,支持参数化输入,避免重复编写相同格式的提示词


from langchain_core.prompts import PromptTemplate
# 1. 定义模板(这里主要以文本模板为主)
prompt_template = PromptTemplate.from_template(

"Translate the following into{language}")

# 2. 实例化模板
print(prompt_template.invoke({"language": "Chinese"}))
打印结果:

text='Translate the following intoChinese'

总结:
Prompt 决定输出质量 —— 编写 Prompt 时,需明确角色、任务要求、输出格式,避免模糊表述

(三)Runnable(核心接口)—— 组件连接器

  1. 核心定义:
    在 LangChain 中,几乎所有组件(LLM、Prompt、Parser 等)都继承了 Runnable 接口,是组件之间能够组合的核心基础

  1. 核心功能(3种常用操作)
  • invoke:单次调用(最常用),输入一个参数,返回一个结果
  • batch:批量调用,同时输入多个参数,批量返回结果,提升效率
  • stream:流式输出,逐步返回结果(类似 ChatGPT 的打字效果)

  1. 核心作用
    Runnable 的核心作用:统一所有组件的调用方式,让不同组件可以无缝组合(无需关注每个组件的调用差异)。

(四)Chain(流程控制器)—— 多步执行者

  1. 核心意义:
    现实中的 AI 任务往往是多步骤的(并非“输入 → 输出”一步完成),Chain 负责将多个组件(或步骤)串联起来,按顺序执行。

举个例子:最简单的链结构(链接LLM 和 Parser)

# 已初始化 model(LLM 实例)和 parser(OutputParser 实例)
# 用 | 符号串联组件(最常用),形成流程链
chain = model | parser  
# 调用整个流程
result = chain.invoke("你好,讲一个简短的冷笑话")  

  1. 本质与理解
Chain 的本质:
把多个步骤串起来执行,类似编程中的“函数调用链”:
函数1(Prompt构造) → 函数2(LLM生成) → 函数3(Parser解析)

(五)Memory(记忆组件)—— 上下文保存器

  1. 核心问题
    LLM 默认是“无状态”的 —— 每次调用都是独立的,无法记住上一轮的对话内容(比如聊天时,无法记住你之前说过的话),非常影响我们使用

  1. 核心作用
  • 保存对话历史(或上下文信息)

  • 将历史信息传入下一次 LLM 调用,让模型“记住”之前的内容


  1. 典型使用场景
    聊天机器人、AI 助手(需要持续对话,上下文连贯)。

Memory 的核心价值:
让 AI“记住之前说过什么”,解决 LLM 无状态的问题,实现连贯对话。

(六)OutputParser(输出解析器)—— 结果格式化工具

  1. 核心问题

LLM 的输出是“非结构化文本”(纯字符串),无法直接被程序使用(比如需要 JSON 格式、列表格式等)。


我们举个例子:我们可以让AI讲个冷笑话:

# 定义模型(这里以千问为例)
model = ChatTongyi(model="qwen-turbo")
#方式一:直接输出
res = model.invoke("你好,讲一个简短的冷笑话")
print(res)
#方式二:定义输出解析器直接输出
parser = StrOutputParser()
chain = model | parser
# 作用:将 LLM 的输出(非结构化文本)解析为标准字符串
print(chain.invoke("你好,讲一个简短的冷笑话"))

输出结果:

content='为什么冰箱会感冒?  \n因为它打开了门!' additional_kwargs={} response_metadata={'model_name': 'qwen-turbo', 'finish_reason': 'stop', 'request_id': 'fdc528f4-d61c-9e59-85db-ae06c2d146bb', 'token_usage': {'input_tokens': 21, 'output_tokens': 10, 'prompt_tokens_details': {'cached_tokens': 0}, 'total_tokens': 31}} id='lc_run--019d965a-303e-75e2-930b-abab2b03c089-0' tool_calls=[] invalid_tool_calls=[]

为什么数学书总是很忧郁?  
因为它有太多的问题。 😂


  1. 核心使用

通过 Chain 链接 LLM 和 Parser,直接获取格式化后的结果:

chain = model| parser
result = chain.invoke("什么是 LangChain")

OutputParser 的核心作用:把 LLM 的非结构化输出,转化为程序可直接使用的数据格式(字符串、JSON、列表等)


三、组件间的关系

我们可以将上述核心组件链接起来,可实现一个最简单的 LangChain 流程,逻辑流程为:

用户输入(讲编程笑话) → LLM(生成笑话) → Parser输出解析(格式化字符串) → 最终结果

转换为代码:

from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser

# 1. 初始化核心组件
# 定义模型(LLM 核心)
model= ChatOpenAI()  
# 输出解析器
parser = StrOutputParser()  

# 2. 用 Chain 链接组件(LLM → 解析器)
chain = model| parser

# 3. 调用流程,获取结果
result = chain.invoke("什么是langchain")
print(result )

四、小结

通过这一篇,我们已经梳理清楚了:

LangChain 是如何将多个组件组合起来,构建完整的 AI 应用流程


它的核心能力在于:

  • 拆分任务
  • 组织流程
  • 串联组件

让原本只能“单次对话”的大模型,具备了构建实际应用的能力。


不过,到这里还有一个关键问题没有解决:

模型虽然可以完成流程,但它的“知识来源”仍然是有限但目前仍存在一个关键局限:

模型的回答高度依赖自身预训练知识,信息来源存在明显边界。
典型问题包括:

  • 无法访问本地文档
  • 无法获取企业私有数据
  • 无法使用最新的信息

由此引出一个核心问题:

如何让模型调用外部知识,回答它原本 “不知道” 的问题?

这正是下一节我们要重点解决的关键技术:

RAG 检索增强生成

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐