Spring AI 发布了它的 1.0.0 版本的第七个里程碑(M7)

**Spring AI 发布了它的 1.0.0 版本的第七个里程碑(M7),**下个月就是 RC1,紧接着就是 GA!,对于我们 Java 开发者来说,这绝对是个值得关注的好消息!

但是对于 Java 学习者来说,内心难免吐槽一句:又有新东西要学啦!

像我最近在写 AI 相关的项目教程,基于的是 M6 版本,结果突然就来 M7 了,当时还不知道有没有什么破坏性变更,让我不由得心头一紧 "刚写完的教程又得更新了?"

考虑到很多读者还不知道 Spring AI 是什么,这里先简单介绍一下。

Spring AI 介绍

简单来说,Spring AI 就是 Spring 家族为我们 Java 开发者量身打造的、用来简化 AI 应用开发的框架。

Spring AI 提供了构建常见 AI 应用的能力,例如:基于文档的问答、与文档交互的聊天。它的目标就是将数据和 API 无缝连接到 AI 模型中。

这是 Spring AI 官方对其的描述:

The Spring AI project aims to streamline the development of applications that incorporate artificial intelligence functionality without unnecessary complexity.

Spring AI 项目旨在简化集成人工智能功能的应用程序开发,避免不必要的复杂性。

Spring AI 核心想解决这几个问题:

  1. 提供抽象,屏蔽底层差异: 不管你用的是 OpenAI 的 GPT,还是谷歌的 Gemini,或者是 Anthropic 的 Claude,甚至是 Hugging Face 上的开源模型,Spring AI 都想提供一套统一的、可移植的 API 让你去调用。同样,对于向量数据库(像 Milvus、Pinecone、Redis、PGVector 等),它也提供了统一的 API 和查询方式。这意味着你的代码可以更容易地在不同的 AI 服务和数据库之间切换,不用被某个厂商锁死。

  2. 简化 AI 应用开发: 构建一个稍微复杂点的 AI 应用,比如 RAG(检索增强生成),涉及到数据加载、切分、向量化、存储、检索、调用 LLM 等一系列步骤。Spring AI 提供了像 ETL 框架、ChatClient、VectorStore 等组件和抽象,大大简化了这些流程的实现。

  3. 模型与向量数据库支持广泛: 它对接了市面上几乎所有主流的大模型提供商(聊天、文生图模型都支持)和向量数据库。选择非常丰富。

  4. 深度集成 Spring 生态: 这可是 Spring 的看家本领!提供了各种 Spring Boot Starter,让 AI 模型、向量数据库的配置和集成变得超级简单,遵循"约定大于配置"的原则,开箱即用。

项目地址:https://github.com/spring-projects/spring-ai/tags

Spring AI 1.0.0 M7 改进

Spring AI 1.0.0 M7 号称是最后一个里程碑版本,值得关注一波,下个月就是 RC1,紧接着就是 GA!

这意味着框架的结构和核心 API 趋于稳定了。不过,也正因为如此,M7 带来了一些重要的(破坏性的)变更,主要是为了让整个框架结构更合理、更模块化。大家升级的时候需要注意一下!

下面我会对这个版本的改动做详细的解读,官方解读在这里:https://spring.io/blog/2025/04/10/spring-ai-1-0-0-m7-released

1、包名和类路径大调整 (Breaking Change):

  • Starter 的 Artifact ID 变了! 命名规则更加规范了,比如模型相关的 Starter 从 spring-ai-{model}-spring-boot-starter 变成了 spring-ai-starter-model-{model},向量数据库的也类似。升级时 pom.xmlbuild.gradle 文件里的依赖需要修改。

  • 一些类的包路径也挪了地方 ,比如 Content、Media 相关类挪到了 org.springframework.ai.content 包下。不过别担心,这些重构你的 IDE(比如 IDEA)应该能自动帮你搞定。

2、核心架构大升级:从"大一统"到"模块化" (Core Architecture Improvements):

这是 M7 最核心的变化!之前的 spring-ai-core 被拆分成了多个更专注的领域模块,比如:

    • 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 实现。

    • ......

  • 好处是啥?

    • 按需引入,应用更轻量: 你只需要引入你真正用到的模块,应用的依赖更少,部署包更小。

    • 减少依赖冲突: 模块化后,传递性依赖更少,跟其他第三方库冲突的概率也小了。

    • 关注点分离更清晰: 每个模块职责更明确。

  • 升级影响: 如果你之前用的是 Spring AI 的 Starter,那这个变化对你来说应该是透明的,因为 Starter 会自动帮你引入新的模块化依赖。但如果你是直接依赖旧的 spring-ai-core,那这次升级就需要手动调整依赖了。

  • 自动配置也模块化了: 配合核心架构的调整,自动配置类也拆分到各个模块对应的 autoconfigure 包里了,同样是为了减少不必要的依赖。

Spring AI 依赖项

3、升级到 MCP 0.9.0 (Breaking Change):

  • Spring AI 集成了最新的 Multimodal Client Protocol (MCP) 参考实现 0.9.0 版本。MCP 是 Spring AI 用于处理多模态交互(比如文本+图像)的一种协议。新版本带来了基于 Session 和 Exchange 的架构改进,更健壮、更符合规范。

  • 如果你用到了 MCP 相关的功能,升级时需要参考官方 MCP 升级说明进行代码调整,地址:https://docs.spring.io/spring-ai/reference/upgrade-notes.html#upgrading-to-1-0-0-m7

4、模型集成更新与增强 (New and Enhanced Model Integrations):

  • Anthropic Claude: 支持了最新的 Claude 3.7 Sonnet 模型并设为默认,增加了 "thinking" 能力,API 命名向 "tool" 靠拢。

  • Mistral AI: 增加了内容审核模型、自定义 JSON 输出能力。

  • Ollama: 增加了更多模型参数和对新模型的支持(如 LLAMA3_2_3B)。

  • Azure OpenAI / OpenAI: 也有一些选项增强和问题修复。

5、重量级新特性:支持 Docker Desktop 的 Model Runner!

  • Docker Desktop 4.40 版本引入了 Model Runner 功能,可以在本地运行 AI 模型,并提供了一个与 OpenAI API 兼容的本地接口。

  • Spring AI M7 现在原生支持了这个功能!这意味着:

    • 你可以在本地(比如 M 系列芯片的 Mac)直接运行像 Gemma 这样的模型,而不需要把数据发送到云端。

    • 配置非常简单,只需要在 Spring AI 的 OpenAI 配置里把 base-url 指向本地 Model Runner 的地址(如 **http://localhost:12434/engines**)就行了,API Key 都可以忽略。

    • 所有 Spring AI 的功能(函数调用、流式输出等)都能无缝对接本地模型。

  • 这对于本地开发、调试、或者注重数据隐私的场景来说,简直是太方便了!

6、工具调用 (Tool/Function Calling) 和多模态能力增强:

  • 工具执行框架有改进,比如增加了 ToolExecutionEligibilityPredicate 接口。

  • 多模态方面,增强了对 Base64 编码图像的处理能力。

7、文档处理、记忆存储、向量数据库增强:

  • 增加了 JSoup HTML 文档读取器。

  • 新增了基于 JDBC 和 Neo4j 的 ChatMemory 实现。

  • 新增了 Couchbase 向量数据库支持,并对 Milvus、PgVector 等现有向量库做了增强。

8、开发者体验提升:

  • 改进了 Spring Boot 自动配置模式。

  • 增强了 AOT 和 Native Image 的支持。

  • 官方文档也做了更新,增加了 M7 的升级指南和模块架构图。

相关推荐
xcSpark19 分钟前
Python基础入门(二)
开发语言·人工智能·python
小杜-coding24 分钟前
黑马头条day02
java·spring boot·spring·spring cloud·java-ee·maven·mybatis
谦行25 分钟前
前端视角 Java Web 入门手册 5.5:真实世界 Web 开发——控制反转与 @Autowired
java·后端
qw94928 分钟前
JVM:JVM与Java体系结构
java·开发语言·jvm
驼驼学编程30 分钟前
目标检测与分割:深度学习在视觉中的应用
人工智能·深度学习·目标检测·计算机视觉
啊QQQQQ35 分钟前
设计模式-原型模式
java·设计模式·原型模式
行走的bug...35 分钟前
sklearn估计器和变换器共有的一些方法 待更新
人工智能·算法·sklearn
jstart千语35 分钟前
【版本控制】git命令使用大全
java·git
李白的粉40 分钟前
基于ssm的航空售票系统
java·毕业设计·ssm·课程设计·源代码·航空售票系统
cg501744 分钟前
Spring Boot 使用 SMB 协议
java·前端·spring boot·smb