首页/新闻资讯/正文详情

Spring AI(5) :对话机器人-会话记忆

发布时间:2026/9/24 13:37:53 来源:云帆数科 栏目:资讯中心
Spring AI(5) :对话机器人-会话记忆
本章代码已分享至Gitee:https://gitee.com/lengcz/ai-study.git文章目录会话记忆配置cors 跨域如何实现会话记忆遇到的问题跨域问题会话记忆大模型是不具备记忆功能的要想让大模型记住之前聊天的内容唯一的办法就是把之前聊天的内容与新的提示词一起发给大模型。openAI 请求大模型assistant 就是大模型回复的消息配置cors 跨域由于前端网页和后端接口不在同一个域名和端口所以这里就涉及到跨域问题需要先配置允许跨域。ConfigurationpublicclassWebMvcConfigurationimplementsWebMvcConfigurer{OverridepublicvoidaddCorsMappings(org.springframework.web.servlet.config.annotation.CorsRegistryregistry){registry.addMapping(/**).allowedOrigins(*).allowedMethods(GET,POST,PUT,DELETE,OPTIONS).allowedHeaders(*);}}如何实现会话记忆定义会话存储方式spring AI 为我们定义了存储会话的接口spring AI 已经提供了一个默认的会话会话记忆InMemoryChatMemory配置会话记忆AdvisorBeanpublicChatMemorychatMemory(){returnnewInMemoryChatMemory();}BeanpublicChatClientchatClient(OllamaChatModelollamaChatModel){returnChatClient.builder(ollamaChatModel).defaultSystem(你是一个热心的智能助手你的名字叫小可爱请以小可爱的名义回答用户的问题。).defaultAdvisors(newSimpleLoggerAdvisor(),newMessageChatMemoryAdvisor(chatMemory()))//环绕增强,SimpleLoggerAdvisor 用于简单日志.build();}添加会话id让前端传入chatId不同会话使用不同的chatId这样就可以区分不同会话的聊天了。RequestMapping(value/stream_chat,producestext/html;charsetutf-8;)publicFluxStringstream_chat(Stringprompt,StringchatId){returnchatClient.prompt().user(prompt).advisors(a-a.param(CHAT_MEMORY_CONVERSATION_ID_KEY,chatId)).stream().content();//stream() 表示流式输出}启动服务器测试第一个会话聊天中AI记住了上文的苹果数量。而后面新开的会话聊天中显然并不知道分什么这样就实现了会话记忆和会话的隔离。这里将前端页面放在了同一个工程仅是方便demo运行。访问前端http://localhost:8080/aichat.html遇到的问题跨域问题注意配置跨域。

相关推荐

18、敏捷应急指挥系统
18、敏捷应急指挥系统

第十八篇:化工园区敏捷应急指挥系统:平战结合、多部门联动 摘要 化工园区的应急指挥系统必须做到"平时练兵、战时管用"。本文从应急指挥中心的物理设计(LED拼接屏选型、坐席协作、视频会议)出发,系统阐述数字化应急预案管理——事故场景库建设与预案结构化分解… · 2026/9/21 1:32:52

LoRA大模型微调技术解析与实践指南
LoRA大模型微调技术解析与实践指南

1. 项目背景与核心价值最近半年在AI圈最火的话题莫过于大模型微调技术了。作为一名从Transformer架构兴起就持续跟进的技术从业者,我亲眼见证了从BERT时代到如今百亿参数大模型的演进过程。LoRA(Low-Rank Adaptation)作为当前最实用的微调方法… · 2026/9/16 17:18:06

Codex与Claude Code企业级实战:从环境配置到工作流集成的完整指南
Codex与Claude Code企业级实战:从环境配置到工作流集成的完整指南

1. 先搞清楚 Codex 和 Claude Code 到底能帮你解决什么实际问题 如果你正在找关于 Codex 和 Claude Code 的教程,尤其是那些号称“企业级实战”的内容,最该先弄明白的不是怎么安装,而是这两个工具到底能帮你做什么、不能做什么,以及它们之间到底是什么关系。很多教程一上来… · 2026/9/17 18:47:20

SpringBoot+Vue画师约稿平台管理系统全栈开发实战
SpringBoot+Vue画师约稿平台管理系统全栈开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 13:37:51

Go CDK `As` 机制深度指南:在可移植 API 中安全访问云厂商特有功能
Go CDK `As` 机制深度指南:在可移植 API 中安全访问云厂商特有功能

云原生后端微服务 【免费下载链接】go-cloud The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go. 项目地址: https://gitcode.com/gh_mirrors/go/go-cloud 点击查看 免费下载 Go CDK(Go Cloud Development… · 2026/9/24 13:37:51

同城小程序源码实战:多城市部署与二次开发全指南
同城小程序源码实战:多城市部署与二次开发全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 13:37:44

Cytoscape.js breadthfirst 布局完全指南:基于 BFS 的层次化树图布局算法与参数详解
Cytoscape.js breadthfirst 布局完全指南:基于 BFS 的层次化树图布局算法与参数详解

数据可视化 【免费下载链接】cytoscape.js Graph theory (network) library for visualisation and analysis 项目地址: https://gitcode.com/gh_mirrors/cy/cytoscape.js 点击查看 免费下载 导读:breadthfirst 是 Cytoscape.js 内置的八种布局之一&… · 2026/9/24 13:37:44

开源掌机DIY工作坊:从硬件选型到系统烧录的完整指南
开源掌机DIY工作坊:从硬件选型到系统烧录的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 13:37:44

ManageEngine卓豪-多域环境推荐用什么 AD 域管理工具?
ManageEngine卓豪-多域环境推荐用什么 AD 域管理工具?

熟悉AD域管理的运维人员都清楚,单域场景下,系统自带的ADUC图形工具足以满足日常操作,复杂场景依靠PowerShell脚本就能兜底。但企业业务持续扩张、分子公司独立部署、企业并购整合,都会催生多域、多林的复杂AD架构。 不同于单域管… · 2026/9/24 13:37:38

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码