一.对话机器人,快速入门

1.创建Spring boot工程,版本选择3.4.3,并引入以下两个依赖

2.在项⽬pom.xml中添加spring-ai的版本信息

然后,添加spring-ai的依赖管理项:

最后,引⼊spring-ai-ollama的依赖:

为了⽅便后续开发,我们再⼿动引⼊⼀个Lombok依赖:

3.接下来,我们还要在配置⽂件中配置模型的参数信息

以ollama为例,我们将application.properties 的内容修改为 spring: application: name: ai-demo ai: ollama: chat: application.yaml ,然后添加下面的内容:

4.ChatClient 中封装了与AI⼤模型对话的各种API,同时⽀持同步式或响应式交互。 不过,在使⽤之前,⾸先我们需要声明⼀个 ChatClient

在 c om.springai.config 包下新建⼀个 CommonConfiguration 类

5.接下来,我们定义⼀个Controller,在其中接收⽤⼾发送的提⽰词,然后把提⽰词发送给⼤模型,交给 ⼤模型处理,拿到结果后返回

6.同步调⽤需要等待很⻓时间⻚⾯才能看到结果,⽤⼾体验不好。为了解决这个问题,我们可以改进调 ⽤⽅式为流式调⽤。 在SpringAI中使⽤了WebFlux技术实现流式调⽤。 修改刚才 ChatController 中的chat⽅法

7.可以发现,当我们询问AI你是谁的时候,它回答⾃⼰是DeepSeek-R1,这是⼤模型底层的设定。如果 我们希望AI按照新的设定⼯作,就需要给它设置System背景信息。 在SpringAI中,设置System信息⾮常⽅便,不需要在每次发送时封装到Message,⽽是创建 ChatClient时指定即可。 我们修改 CommonConfiguration 中的代码,给 ChatClient 设定默认的System信息:

并修改CommonConfiguration ,给 ChatClient 添加⽇志Advisor

8.在application.yaml 中添加⽇志配置,更新⽇志级别:

9.前后端在不同域名,存在跨域问题,因此我们需要在服务端解决cors问题。在 com.springai.config 包中添加⼀个 MvcConfiguration 类:

10.会话记忆功能

会话记忆功能同样是基于AOP实现,Spring提供了⼀个 们可以像之前添加⽇志通知⼀样添加到 MessageChatMemoryAdvisor 的通知,我 ChatClient 即可

ChatMemory 接⼝声明如下:

11.添加会话记忆Advisor

在 C ommonConfiguration 中注册 ChatMemory 对象:

12.管理会话id(会话历史)

我们定义⼀个 com.springai.repository 包,然后新建⼀个 接⼝:

然后定义⼀个实现类 InMemoryChatHistoryRepository :

13.保存会话id

14.查询会话历史

定义⼀个 com.springai.entity.vo 包,在其中定义⼀个 MessageVO 类:

在package com.springai.controller下新建⼀个ChatHistoryController :

OK,重启服务,现在AI聊天机器⼈就具备会话记忆和会话历史功能了!

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐