LangChain 大模型对话记忆模块实战与 Web 应用搭建
为什么需要对话记忆?
日常使用豆包、ChatGPT 等 AI 应用时,我们习以为常的「上下文记忆」功能(比如问完'林俊杰是谁'再问'他的代表作',AI 能精准理解),其实并非大模型原生自带。直接调用大模型 API 时,每次请求都是独立的,模型只会基于当前输入的 Token 逐个预测回复,完全没有'记忆'能力。
LangChain 作为大模型应用开发的核心框架,已经帮我们封装了对话记忆、Prompt 模板、链式调用等高频功能,无需手动解析原始 API 的复杂输出,也不用自己拼接上下文。
核心认知:原始 API vs LangChain 封装
原生 API 调用的痛点
直接调用大模型 API(即使是通义千问等兼容 OpenAI 接口的模型),每次请求都是'一次性'的,模型无法关联历史对话。
from openai import OpenAI
import os
# 初始化客户端(对接阿里云通义千问)
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# 第一次提问:林俊杰是谁
completion1 = client.chat.completions.create(
model="qwen3.5-plus",
messages=[{"role":"user","content":"林俊杰是谁?"}]
)
print("第一轮回复:", completion1.choices[0].message.content)
# 第二次提问:他有哪些代表作(无上下文,模型无法识别'他')
completion2 = client.chat.completions.create(
model="qwen3.5-plus",
messages=[{"role":"user","content":"他有哪些代表作?"}]
)
print("第二轮回复:", completion2.choices[0].message.content)
输出结果:第二轮回复会反问'你说的他是谁?',因为模型没有历史对话的记忆。
LangChain 的价值
LangChain 的核心价值在于封装对话记忆模块,无需手动拼接上下文;统一不同大模型的调用方式;提供链式调用能力,串联'记忆→Prompt→模型→输出'全流程;自动处理响应格式,直接返回可读的回复内容。
LangChain 记忆模块核心组件
LangChain 提供了多种记忆类型,适配不同场景,核心均基于 ConversationBufferMemory 扩展:
| 记忆类型 |
|---|

