RETRIEVAL-AUGMENTED GENERATION · 07
理解短期记忆、长期记忆、RAG 与 Memory 的区别及 ChatMessageHistory。
- Memory
- ChatMessageHistory
Memory 与对话历史
23.1 为什么需要 Memory?
大模型本身:
无状态
不会保存之前聊天。
所谓记忆:
实际上是:
应用层保存历史信息
↓
下一次调用重新发送给模型
二十四、短期记忆
Short-term Memory:
保存:
当前会话历史消息
内容:
[
HumanMessage,
AIMessage
]
用于:
- 聊天机器人
- 客服系统
- 多轮问答
二十五、长期记忆
Long-term Memory:
保存:
跨会话用户信息
例如:
{
"favorite_drink":"coffee"
}
通常存储:
- 数据库
- 向量数据库
二十六、Memory 与 RAG 区别
RAG
解决:
模型不知道外部知识。
例如:
公司制度、产品文档。
Memory
解决:
模型不知道用户历史信息。
例如:
用户偏好、历史聊天。
二十七、ChatMessageHistory
ChatMessageHistory 是最基础的短期记忆组件。
作用:
保存 HumanMessage 和 AIMessage。
创建:
from langchain_core.chat_history import ChatMessageHistory
history = ChatMessageHistory()
添加用户消息:
history.add_user_message(
"我叫张三"
)
添加 AI 消息:
history.add_ai_message(
"你好张三"
)
查看:
history.messages
得到:
HumanMessage
AIMessage
注意:
ChatMessageHistory 只负责保存消息。
它不会:
- 自动调用模型
- 自动拼接 Prompt
- 自动管理上下文