深入浅出LangChain AI Agent智能体开发教程(四)—LangChain记忆存储与多轮对话机器人搭建


theme: cyanosis

前言

本系列分享前三期分别讲述了

学完以上内容我们就掌握了LangChain代码编写的基本语法。本期分享笔者将通过一个包含前端和后端的全栈项目——大模型智能问答网站,带大家进一步巩固LangChain的基础知识。

本系列分享是笔者结合自己学习工作中使用LangChain&LangGraph经验倾心编写,力求帮助大家体系化快速掌握LangChain&LangGraph AI Agent智能体开发的技能!大家感兴趣可以关注笔者优快云账号和系列专栏。更可关注笔者同名微信公众号: 大模型真好玩, 每期分享涉及的代码均可在公众号私信: LangChain智能体开发获得。

一、LangChain搭建多轮对话流式智能系统

1.1 LangChain单轮对话机器人

学习完以上三节内容,相信大家已经掌握与大模型实现单轮对话的技巧,这里通过一个快速示例带大家简单回顾一下LangChain链式调用的基本内容。编写LangChain对话智能体的基本流程如下:

  1. 导入相关依赖包并初始化提示词ChatPromptTemplate
  2. 调用统一接口init_chat_model初始化大模型组件
  3. 使用LCEL语法将大模型组件和输出解析器组件相连接,形成“链”
  4. 执行“链”并输出结果

按照以上流程编写代码如下:

from langchain_core.output_parsers import StrOutputParser
from langchain.chat_models import init_chat_model
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import init_chat_model


chatbot_prompt = ChatPromptTemplate.from_messages([
    ("system", "你叫苍井空,是日本著名女演员。"),
    ("user", "{input}")
])

# 使用 硅基流动 模型
model = init_chat_model(
    model="Qwen/Qwen3-8B",
    model_provider="openai",
    base_url="https://api.siliconflow.cn/v1/",
    api_key="你注册的硅基流动api key",
)

# 直接使用模型 + 输出解析器
basic_qa_chain = chatbot_prompt | model | StrOutputParser()

# 测试
question = "你好,请你介绍一下你自己。"
result = basic_qa_chain.invoke(question)
print(result)

以上代码的执行结果如下图所示,可见大模型正确输出了回答:

在这里插入图片描述

1.2 LangChain添加多轮记忆

要把单轮对话修改为多轮对话我们应该怎么做呢?逻辑其实很简单,在LangChain中我们可以通过人工拼接消息队列来为每次模型调用设置多轮对话记忆。需要进行如下步骤:

  1. 构建提示词组件ChatPromptTemplate时,通过占位符MessagePlaceholder定义一个消息列表, 关键代码为
prompt = ChatPromptTemplate.from_messages([ 
    SystemMessage(content="你叫苍井空,是日本著名女演员。"),  
    MessagesPlaceholder(variable_name="messages"), 
])
  1. 在多轮对话中不断的向message列表中追加消息,并将其传递给占位符,大模型组件接收到列表信息后会自动关联历史消息并回复内容, 关键代码为:
# 1) 追加用户消息 
messages_list.append(HumanMessage(content=user_query)) 

# 2) 调用模型 
assistant_reply = chain.invoke({
   
   "messages": messages_list}) 

print(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型真好玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值