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遇到的问题跨域问题注意配置跨域。

相关新闻

Claude与GPT-Image-2国内免费使用方案与AI工具组合实战

Claude与GPT-Image-2国内免费使用方案与AI工具组合实战

1. 先搞清楚这几个工具到底能解决什么问题 Claude、GPT-Image-2(简称Image2)这类工具最近讨论度很高,但很多人下载安装后才发现根本用不起来,或者不知道具体能做什么。我花了几天时间实测了这几个工具的国内可用方案,先说结论: Claude :核心优势是代码理解和生成能力…

2026/7/25 5:00:22 阅读更多 →
AI销冠系统:提升销售效率与转化率的技术实践

AI销冠系统:提升销售效率与转化率的技术实践

1. 项目背景与核心价值去年服务某快消品企业时,他们的销售总监给我看了一组数据:平均每个销售每天要处理87个客户咨询,但有效转化率不足12%。这让我意识到,传统销售模式正面临三个致命瓶颈:人力响应天花板:…

2026/7/25 5:00:22 阅读更多 →
AI辅助学术专著创作全流程指南

AI辅助学术专著创作全流程指南

1. 项目概述作为一名在学术出版领域深耕多年的研究者,我深刻理解撰写高质量学术专著的挑战。传统专著创作往往需要耗费数月甚至数年时间,从资料收集、内容组织到文字打磨,每个环节都考验着作者的耐心和专业素养。而如今,随着AI技术…

2026/7/25 5:00:22 阅读更多 →

最新新闻

5PC900.TS17-02 CPU 控制主板

5PC900.TS17-02 CPU 控制主板

5PC900.TS17-02 CPU控制主板产品特点5PC900.TS17-02 是贝加莱 Automation PC 910 系列的一款 CPU 控制主板,搭载英特尔赛扬处理器,为工业自动化场景提供计算与控制核心。其主要特点如下:搭载英特尔赛扬 G3900E 处理器,双核心&…

2026/7/25 5:13:26 阅读更多 →
智能运维告警的“狼来了“困境突破:基于用户反馈的强化学习告警优先级调优的一年实践复盘

智能运维告警的“狼来了“困境突破:基于用户反馈的强化学习告警优先级调优的一年实践复盘

智能运维告警的"狼来了"困境突破:基于用户反馈的强化学习告警优先级调优的一年实践复盘 一、问题定义:告警体系的"狼来了"困境 2024年中,我们对公司告警体系做了一次全面的统计分析,结果令人不安:…

2026/7/25 5:13:26 阅读更多 →
知网AIGC检测3.0应对策略与学术写作优化

知网AIGC检测3.0应对策略与学术写作优化

1. 项目背景与核心挑战去年夏天,我在帮一位研究生朋友修改论文时,第一次遭遇了知网AIGC检测系统的"误伤"。当时只是用Grammarly调整了部分语法表达,系统却给出了"23.7%AI生成内容"的红色警告。这件事让我开始系统性研究学…

2026/7/25 5:13:26 阅读更多 →
基于YOLOv11的麻将识别系统开发实践

基于YOLOv11的麻将识别系统开发实践

1. 项目概述与核心价值麻将作为中国传统文化的重要组成部分,在现代娱乐和竞技领域占据重要地位。传统的麻将游戏依赖人工计分和规则判断,效率低下且容易出错。这个基于YOLOv11的麻将识别检测系统,通过计算机视觉技术实现了麻将牌的自动识别、…

2026/7/25 5:13:25 阅读更多 →
智能对话系统中的多轮状态建模与特征工程实践

智能对话系统中的多轮状态建模与特征工程实践

1. 多轮对话状态建模的核心挑战在智能对话系统开发中,准确捕捉用户状态就像给机器人装上"情感雷达"。OpenClaw团队在项目复盘时发现,传统对话系统常犯的致命错误是把所有用户会话都处理成孤立事件。实际上,人类对话中存在大量隐性状…

2026/7/25 5:13:25 阅读更多 →
如何快速上手MAA自动公招:面向新手的5大功能全解析与实战指南

如何快速上手MAA自动公招:面向新手的5大功能全解析与实战指南

如何快速上手MAA自动公招:面向新手的5大功能全解析与实战指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: http…

2026/7/25 5:12:25 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻