admin 管理员组文章数量: 1184232
核心需求拆解
首先得明确什么是 “记忆隔离”。在对话系统里,这意味着:
- 用户 A 的历史对话不能被用户 B 获取
- 同一用户的多轮对话必须保持上下文连贯
技术选型思路
SpringAI 本身提供了对话记忆(ChatMemory),如果不用这个的话就得手动维护一轮对话中上下文内容,会非常麻烦,ChatMemory实际上内部也是封装了一个map,这个map大致就是Map<用户id,List<消息>>这样子的结构,通过这个id进行用户的记忆隔离。本文先用基于内存的方式实现
实现步骤详解
1.导入ChatMemory所用到的包,使用ChatMemoryAutoConfigure配置类
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-autoconfigure-model-chat-memory</artifactId>
</dependency>
2.在构造出ChatClient加上ChatMemory的配置
ChatClient chatClient = ChatClient
.builder(dashScopeChatModel)
//chatMemory专门提供存储记录的功能
.defaultAdvisors(PromptChatMemoryAdvisor.builder(chatMemory).build())
.defaultOptions(ChatOptions.builder().<
版权声明:本文标题:SpringAI实现多用户记忆隔离 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1765776053a3413663.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论