网站首页 > 编程文章 正文
之前我一直使用的1.0.0-M6版本,最近发现Spring已经更新到M7了,据说这个版本是预览版里最后一个版本了,可能在SpringIO开发者大会的时候就要发布正式版了。这个M7的版本有很多破坏性的改造,对代码库进行了深度重构,形成了更模块化、易维护的架构 ,显著降低了开发者集成 AI 能力的复杂性。所以很有必要记录一下如何从老版本升级到M7。
M7版本主要在这几点改变了:
- Artifact ID 和包名标准化 :所有组件的命名规范统一,提升依赖管理的清晰度.
- 工具调用 API 全面更新 :新增的工具调用 API 替代了旧版设计(已弃用),进一步简化与外部 AI 服务的交互流程。
- Fluent API 增强 :通过链式调用构建 Prompt 对象,开发者可更直观地将提示词输入 AI 模型,减少冗余代码。
具体说来,首先对咱们来说最需要关心的就是包名和类路径,Artifact ID的调整。比如spring-ai-{model}-spring-boot-starter变成了spring-ai-starter-model-{model},其他的模块也类似。所以升级时pom文件或者gradle文件里。另外有些包路径,比如一些内容相关的类Content,Media以及相关类,挪到了
org.springframework.ai.content包下。这些如果用了Idea,自动导包轻松解决。
然后是模块化,按需引入,使应用更轻量。下面是具体几个重点模块的介绍:
- spring-ai-commons: 最基础的,包含文档(Document)、文本分割器(TextSplitter)等核心模型和工具,不依赖其他 Spring AI 模块。
- spring-ai-model: 负责 AI 能力的抽象,像 ChatModel, EmbeddingModel, ImageModel 这些接口都在这。
- spring-ai-vector-store: 统一的向量数据库抽象层。
- spring-ai-client-chat: 更高层的对话式 AI API,像 ChatClient、对话记忆 (ChatMemory) 都在这里。
- spring-ai-rag: 专门为 RAG 设计的框架。
- spring-ai-model-chat-memory-*:持久化实现,Cassandra、Neo4j 和 JDBC 实现。
还有SpringAI在M7中删除了内置的内存级向量数据库,SimpleVectorStore。想用这个做demo的还是找个专业向量数据库吧,比如Redis
下面,我们就来看一下,如何将M6的版本升级到M7。
首先是仓库,M7挪到了快照仓库,所以不需要额外添加里程碑仓库了。下面这段代码可以去掉了。
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
然后改一下spring-ai-bom的版本。
<properties>
<spring-ai.version>1.0.0-M7</spring-ai.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这是我们同步下maven,会发现好多包都找不到了,别着急,是名称换了。我们按相应的规范把他们改一下。
这时,我们发现
spring-ai-spring-boot-autoconfigure,这个是没有找到。而且去掉还会报错。很奇怪。网上说,autoconfigure已经分开添加到每个模块中去了,可是我没找到。所以先加上M6版本的先用着吧。有试验成功的同学可以在评论区留言这个到底怎么回事。
目前这样改造,之前的项目运行成功了。
执行以下之前系统的接口。
基本上,如果你用的是starter,只是改一下命名就ok了,其他的starter会帮你搞定。如果你使用的原生的包,就可能需要更多的改造。这次版本是里程碑版的最终版,后续到了正式版,升级估计也不会太复杂了。
猜你喜欢
- 2025-05-03 IDEA那些既好用又好玩的30多款宝贝插件
- 2025-05-03 「开发工具」idea2021.3版本设置优化,这样设置就可以了
- 2025-05-03 idea使用maven创建web项目(idea构建maven)
- 2025-05-03 JetBrains2024(IntelliJ IDEA)安装教程
- 2025-05-03 从IDEA开始,迈进GO语言之门(idea golang)
- 2025-05-03 第二弹!安排!安利几个让你爽到爆的IDEA必备插件
- 2025-05-03 解决idea配置自定义的maven失败的问题
- 2025-05-03 就在昨天,《权游》“三傻”结婚了!
- 2025-05-03 使用idea插件对Maven快速打包,以及Maven常用命令。
- 2025-05-03 java日常开发笔记和开发问题记录(java开发总结)
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)