JeecgBoot 是一款基于代码生成器的低代码开发平台!前后端分离架构 SpringBoot2.x 和 3.x,SpringCloud,Ant Design Vue3,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!JeecgBoot 引领新的低代码开发模式 (OnlineCoding-> 代码生成器 -> 手工 MERGE), 帮助解决 Java 项目 70% 的重复工作,让开发更多关注业务。既能快速提高效率,节省研发成本,同时又不失灵活性!

JeecgBoot 如何集成 Spring AI

JeecgBoot 如何集成 Spring AI

打开网易新闻 查看精彩图片

Spring 通过 Spring AI 项目正式启用了 AI(人工智能)生成提示功能。本文将带你了解如何在 Jeecg Boot 应用中集成生成式 AI,以及 Spring AI 如何与模型互动,包含 RAG 功能。

(Retrieval Augmented Generation)检索增强生成(RAG)是一种用于将个人未经训练数据与人工智能模型集成的技术。在 RAG 工作流程中,第一步将文档数据加载到矢量数据库(例如 Redis)中。当收到用户查询时,矢量数据库会检索一组与该查询相似的文档。然后,这些文档数据充当用户问题的上下文,并与用户的查询结合使用生成响应(通常通过 LLM 模型)。

先来看一下最终效果,效果分别是 AI 互动以及 RAG 互动。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

集成 Spring AI 在 Jeecg-module-demo 模块的 pom.xml 中,添加如下配置

打开网易新闻 查看精彩图片

添加配置 Spring AI 提供的 starter 自动配置完成了大部分工作,引入依赖后,只需要再进入如下配置即可

打开网易新闻 查看精彩图片

进行以上配置之后,官方默认没有提供 ChatClient 的 bean 注册,所以我们还需要最后一步,注册 ChatClient Bean。

打开网易新闻 查看精彩图片

到这里,我们已经可以正常使用 ChatClient、ImageModel 等 API 与 OpenAI 进行互动访问了,如下:

文生文:

文生图:

打开网易新闻 查看精彩图片

RAG:

打开网易新闻 查看精彩图片

与 JeecgBoot 集成

与 JeecgBoot 集成

经过以上两段配置,已经可以正常与 Spring AI 支持的各个大模型进行 API 调用了,不过也仅仅是停留在代码层面,使用门槛也限制在开发员人层面。

JeecgBoot 在 3.7 版本提供了 AI 对话的页面,不过现在版本的默认实现并不是通过 Spring AI 进行集成的,但是却已经完成了前后端对话通信的框架,接下来只需要使用 Spring AI 替换掉原有的大模型交互即可。

org.jeecg.modules.demo.gpt.service.impl.ChatServiceImpl 这个类的 sendMessage 方法中,将如下代码进行注释,替换上 Spring AI 的 API 调用代码即可。如下

打开网易新闻 查看精彩图片

替换成

打开网易新闻 查看精彩图片

最终效果如开头所示,如果需要将对话替换成 RAG 对话,只需要将 chatClient 调用更换即可。