本文目录
  1. 23.1 为什么需要 Memory?
  2. 二十四、短期记忆
  3. 二十五、长期记忆
  4. 二十六、Memory 与 RAG 区别
  5. RAG
  6. Memory
  7. 二十七、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
  • 自动管理上下文