LangChain之多轮对话
2026/8/15 9:17:21 网站建设 项目流程

为了让大模型能够记忆历史消息,让其在回答每一个问题时不至于都开启一次新的会话,langchain中内置了会话记忆的功能,接下来,我将举例介绍:

当我们有多个用户在对话时,为了方便对会话内容进行标记,我们为他们的对话进行一个标记,这里我们命名为:

session_id,并用store={}进行统一管理。

获取对应会话历史消息内容:

store={} # 获取会话历史 def get_session_history(session_id:str)->BaseChatMessageHistory: if session_id not in store: store[session_id] = InMemoryChatMessageHistory() return store[session_id]

其中:

InMemoryChatMessageHistory()

就是一个内存中的聊天历史容器,我们将聊天历史存入其对应的store[session_id]中进行保存。

创建一个可运行的模型,带会话历史:

# 创建一个可运行的模型,带会话历史 with_history_message_model = RunnableWithMessageHistory(model,get_session_history) config={"configurable":{"session_id":"1"}}
RunnableWithMessageHistory(model,get_session_history)

= 给一个普通 Runnable 加上“自动管理聊天历史”的能力,把 model 包装起来,让它能够根据 session_id 自动读取和保存历史消息。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询