SpringAI 2.0版本升级

SpringAI 2.0版本升级
mengnankkzhou背景
前面我们谈到了Spring boot 4.0版本的升级,然后对应的Spring AI 也进行维护两个大版本,一个是1.x的版本对应Spring boot的3.x版本,一个是我们的Spring AI 2.x对应我们Springboot的4.x版本,那我们来比较下这两个版本究竟有什么的不同吧!
变化
Spring Boot 4.0 升级 - 从 3.5.8 升级到 4.0.0,这是一个主要版本升级
JDK 21.0.8+ 强制要求 - 通过 maven-enforcer-plugin 强制执行,开发环境必须升级
空值处理增强,多个核心 API 返回类型标记为
@Nullable:
ChatModel.call()可能返回 nullChatResponse.getResult()可能返回 nullMessage.getText()可能返回 null
这个也是Spring boot4.x版本做出的一个新的改变
比如说我们的ChatModel 接口
call(String message)返回类型:String→@Nullable Stringcall(Message... messages)返回类型:String→@Nullable String
对应的Message的抽象也做了改变:
- AbstractMessage:
getText()返回@Nullable String - SystemMessage: 构造函数参数
textContent标记为@Nullable - AssistantMessage: 构造函数
content参数标记为@Nullable
然后还新增了一个接口:
VectorStoreRetriever
- 位置:
spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/VectorStoreRetriever.java 作用是:提供只读的检索操作(函数式接口)
List<Document> similaritySearch(SearchRequest request),然后他具体的逻辑就是AbstractVectorStore里面实现的```java
VectorStoreObservationContext searchObservationContext = this
.createObservationContextBuilder(VectorStoreObservationContext.Operation.QUERY.value())
.queryRequest(request)
.build();1
2
3
4
5
6
7
8
9
10
11
12
进行上下文的构建,它携带了操作类型(`QUERY`)和原始请求(`request`)。这些数据后续会被 `ObservationConvention` 转换为具体的 Metrics Tags(标签)或 Span Tags(链路属性)。
- ```
return VectorStoreObservationDocumentation.AI_VECTOR_STORE
.observation(this.customObservationConvention, DEFAULT_OBSERVATION_CONVENTION,
() -> searchObservationContext, this.observationRegistry)
.observe(() -> {
var documents = this.doSimilaritySearch(request);
searchObservationContext.setQueryResponse(documents);
return documents;
});.observe(...)是 Micrometer 的核心方法。它会自动开启一个 Scope(Scope),记录开始时间。searchObservationContext.setQueryResponse(documents):关键点。查询结束后,将结果回写到上下文中。这样,观测组件就能根据结果的大小、内容(如 TopK 相似度分数)来生成更丰富的指标。
优势: 遵循最小权限原则,可以提供只读访问
基本架构
说完变化,但是很多孩子都不知道Spring AI 的基本架构是什么,那么先去介绍一下Spring AI
Spring AI 采用清晰的分层架构,从下到上依次为:
- 基础层 - 通用工具(commons、template-st、test)
- 核心抽象层 - 领域接口(Model、ChatModel、VectorStore)
- 功能层 - 高级功能(ChatClient、RAG、Advisors、Memory)
- 实现层 - 具体实现(21 个 AI 提供商 + 21 个向量数据库)
- 集成层 - Spring Boot 集成(50+ Starters + 50+ AutoConfiguration)
比如:
1 | ChatClient (高层) |
- 内置 Micrometer Observation
- 所有模型调用自动记录 metrics
- 支持分布式追踪(OpenTelemetry)







