wap网站建设多少钱无锡做网站价格
2026/5/21 12:29:27 网站建设 项目流程
wap网站建设多少钱,无锡做网站价格,删除wordpress 后台,网页配色设计我们在上一节课学习了LangChain V1.0的模型调用与基础对话#xff0c;今天这节课我们来学习大模型的批处理对话#xff0c;我们通过制作简单的带有简易记忆机制的对话机器人#xff0c;来学习并熟练掌握该用法。 一、前期准备 1、方法介绍 今天我们要用到的是langchain_core…我们在上一节课学习了LangChain V1.0的模型调用与基础对话今天这节课我们来学习大模型的批处理对话我们通过制作简单的带有简易记忆机制的对话机器人来学习并熟练掌握该用法。一、前期准备1、方法介绍今天我们要用到的是langchain_core.messages模块它是LangChain V1.0处理对话消息chat messages 的核心组件。定义了标准化的消息类型用于在聊天模型如 ChatOpenAI、ChatTongyi、ChatOllama 等之间传递结构化对话历史主要作用如下标准化消息格式统一表示用户输入、模型响应、工具调用等。支持复杂交互工具调用、多轮对话、多角色。无缝集成 LCEL作为 Runnable 链的标准数据单元。兼容外部系统可与 OpenAI 格式、Gradio、FastAPI 等互转。我们主要使用以下几种message类别由于我们还没学习工具调用本节课主要围绕前三个类别进行讲解。类型用途字段HumanMessage用户输入content: str | List[Union[str, dict]],name: Optional[str]AIMessageAI 助手回复content: str,tool_calls: List[dict],name: Optional[str]SystemMessage系统指令角色设定content: strToolMessage工具调用返回结果content: str,tool_call_id: str2. 消息的创建方式方式一直接实例化fromlangchain_core.messagesimportHumanMessage,AIMessage,SystemMessage messages[SystemMessage(content你是一个专业中医顾问。),HumanMessage(content我最近失眠多梦怎么办),AIMessage(content建议您调理心脾可考虑归脾汤加减...)]方式二从字典转换常用于 API 输入fromlangchain_core.messagesimportmessages_from_dict message_dicts[{role:system,content:你是一个助手},{role:user,content:你好},{role:assistant,content:你好}]方式三使用 convert_to_messages兼容多种格式后续在切换模型对话时需要fromlangchain_core.messagesimportconvert_to_messages# 支持字符串自动转 HumanMessage、字典列表、消息对象等input_data[我最近心情不太好]messagesconvert_to_messages(input_data)# → [HumanMessage(content我最近心情不太好)]二、案例实操多轮对话情感机器人需要导入的包fromlangchain_ollamaimportChatOllamafromlangchain_core.messagesimportAIMessage,HumanMessage,SystemMessage设置预设词systemmsgSystemMessage(你叫小美是一个30岁的知性温柔细腻温文尔雅气质高文雅的大姐姐是一个情感大师和心理学硕士毕业生善于倾听用户的烦心事给予用户安慰和意见帮助用户解决问题。注意在与用户交流时要像一个正常朋友间的交流不要加入过多复杂的多余的语句)用户界面输入转换为HumanMessage输入quit退出聊天humanmsginput()ifhumanmsgquit:breakmessages.append(HumanMessage(humanmsg))使用流式输出并将输出存入AIMessagefull_replyforchunkinmodel.stream(messages):ifchunk.content:print(chunk.content,end,flushTrue)full_replychunk.content aimsgfull_reply messages.append(AIMessage(aimsg))历史对话压缩如果对话记录超过10条交给大模型进行总结作为新的SystemMessage 系统预设词iflen(messages)10:messages_tumpmessages[:7]messages_tump.append(HumanMessage(将该对话的所有内容中的关键信息进行总结主要针对HumanMessage进行总结用户的具体信息如姓名、年龄、工作等用户当前的主要烦心事如工作压力等还有提到的一些关键词如用户工作压力的主要原因等保留原本的SystemMessage对AIMessage进行关键语言动作提取如跟用户的许诺、给用户提出的建议这些关键信息进行提取减少上下文的内容用于更长的对话记忆))resultmodel.invoke(messages_tump)print(f##############################总结内容{result.content})messagesmessages[-5:]messages.append(systemmsg)messages.append(SystemMessage(result.content))完整代码如下fromlangchain_ollamaimportChatOllamafromlangchain_core.messagesimportAIMessage,HumanMessage,SystemMessage modelChatOllama(modelqwen3:latest)quitTruemessages[]systemmsgSystemMessage(你叫小美是一个30岁的知性温柔细腻温文尔雅气质高文雅的大姐姐是一个情感大师和心理学硕士毕业生善于倾听用户的烦心事给予用户安慰和意见帮助用户解决问题。注意在与用户交流时要像一个正常朋友间的交流不要加入过多复杂的多余的语句)messages.append(systemmsg)print(你好我是小美如果有什么情感问题都可以向我倾诉我会一直陪在你的身边输入quit即可结束对话)whilequit:humanmsginput()ifhumanmsgquit:breakmessages.append(HumanMessage(humanmsg))full_replyforchunkinmodel.stream(messages):ifchunk.content:print(chunk.content,end,flushTrue)full_replychunk.content aimsgfull_reply messages.append(AIMessage(aimsg))print(\n)iflen(messages)10:messages_tumpmessages[:7]messages_tump.append(HumanMessage(将该对话的所有内容中的关键信息进行总结主要针对HumanMessage进行总结用户的具体信息如姓名、年龄、工作等用户当前的主要烦心事如工作压力等还有提到的一些关键词如用户工作压力的主要原因等保留原本的SystemMessage对AIMessage进行关键语言动作提取如跟用户的许诺、给用户提出的建议这些关键信息进行提取减少上下文的内容用于更长的对话记忆))resultmodel.invoke(messages_tump)print(f##############################总结内容{result.content})messagesmessages[-5:]messages.append(systemmsg)messages.append(SystemMessage(result.content))print(再见)流程图结语本节课使用了简单的例子多轮对话情感机器人将消息批处理、流式对话、上下文窗口限制和长期记忆维持这三个挑战通过一个“对话-总结-重置”的循环机制结合了起来在实例操作中学习通过这个例子我们可以更好的学习我们可以更好的了解langchain_core.messages方法、流式输出等经过这次简单的例子我们也可以了解到基础的大模型记忆存储机制。如果大家对本节课内容有疑问欢迎大家在评论区提问我们下节课再见

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

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

立即咨询