Spring AI 是 Spring 官方团队(现属 Broadcom)推出的专为 Java 和 Spring 生态系统 设计的生成式人工智能应用开发框架。
它的核心目标是:让 Java 开发者能够像使用 RestTemplate 或 JdbcTemplate 一样,以熟悉的 Spring 风格(依赖注入、自动配置、POJO)轻松集成大语言模型(LLM)、向量数据库、RAG(检索增强生成)和 Agent(智能体)等现代 AI 能力,而无需跨越到 Python 生态。
截至 2026 年 3 月,Spring AI 已经经历了快速发展,以下是其核心现状、特性和使用指南:
🚀 1. 当前版本与状态 (2026 年)
- 最新稳定版 :Spring AI 1.0.x / 1.1.x (GA 正式版已发布)。
- 1.0 GA 于 2025 年中旬发布,标志着框架进入生产就绪状态。
- 随后发布了 1.1 版本,增强了 MCP (Model Context Protocol)、Prompt 缓存和智能体功能。
- 前沿版本 :Spring AI 2.0.0-M1 (里程碑版本,已发布)。
- 重大变化 :基于 Spring Boot 4.0 和 Spring Framework 7.0 构建。
- 强制要求 :Java 21+ (不再支持 Java 17)。
- 新特性:深度集成 Redis 作为向量存储,全面拥抱 Jakarta EE 11。
- 生态扩展 :Spring AI Alibaba (阿里云主导) 也已发布 1.0 GA,专门优化了对通义千问、百炼平台等国产模型的支持。
💡 2. 核心功能特性
Spring AI 不仅仅是一个 HTTP 客户端封装,它提供了一套完整的 AI 应用抽象:
A. 统一的模型 API (Model Abstraction)
屏蔽不同大模型厂商(OpenAI, Anthropic, Azure, Ollama, 阿里云等)的 API 差异。
- ChatClient: 用于对话交互(类似 ChatGPT)。
- ImageClient: 用于文生图(如 DALL-E 3, Stable Diffusion)。
- EmbeddingClient: 用于文本向量化。
- AudioClient: 用于语音转文本或文本转语音。
java
// 极简示例:一行代码调用大模型
@Autowired
private ChatClient chatClient;
public String ask(String question) {
return chatClient.prompt()
.user(question)
.call()
.content();
}
B. 检索增强生成 (RAG) 支持
内置了构建企业知识库所需的全套组件:
- Vector Store: 统一接口支持 Redis, PostgreSQL (pgvector), Milvus, Chroma, Pinecone 等。
- Document Reader: 支持 PDF, Word, Markdown, HTML 等多种格式解析。
- Retrieval Augmentation: 自动将用户问题与向量库中的文档片段结合,生成更准确的回答。
C. 函数调用 (Function Calling)
允许大模型在需要时"反向调用"你的 Java 方法。
- 你可以注册一个
@Bean方法(例如getWeather,queryOrderStatus)。 - 当用户问"查一下北京天气"时,模型会自动识别意图并触发你的 Java 代码,获取结果后再生成回答。
D. 智能体 (Agents) & MCP
- 支持构建多步执行的自主 Agent。
- 支持 MCP (Model Context Protocol),这是一种新兴标准,允许 AI 模型安全地访问本地文件、数据库和工具。
E. 观测性与测试
- 深度集成 Micrometer,可监控 Token 消耗、延迟、错误率。
- 提供
spring-ai-test模块,方便对 Prompt 和 AI 响应进行单元测试。
🛠️ 3. 快速开始 (Hello World)
假设你使用 Spring Boot 3.x + Java 17 (若用 2.0 则需 Java 21),接入 OpenAI 或 Ollama (本地模型) 非常简单。
第一步:引入依赖
xml
<dependencies>
<!-- Spring AI OpenAI Starter -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>1.0.2</version> <!-- 或最新版本 -->
</dependency>
<!-- 如果使用本地 Ollama -->
<!--
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>1.0.2</version>
</dependency>
-->
</dependencies>
第二步:配置文件 (application.yml)
yaml
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY} # 从环境变量读取
chat:
options:
model: gpt-4o # 或 gpt-3.5-turbo
# 如果使用 Ollama:
# ollama:
# base-url: http://localhost:11434
# chat:
# model: llama3
第三步:编写代码
java
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AiController {
private final ChatClient chatClient;
// ChatClient 自动注入
public AiController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/ai/chat")
public String chat(@RequestParam(value = "msg", defaultValue = "Hello") String msg) {
return chatClient.prompt()
.user(msg)
.call()
.content();
}
}
⚖️ 4. Spring AI vs LangChain4j
这是 Java 社区最常问的问题。两者对比:
| 特性 | Spring AI | LangChain4j |
|---|---|---|
| 出身 | Spring 官方团队 (VMware/Broadcom) | 社区驱动 (个人/小团队起家) |
| 设计理念 | 强依赖 Spring 生态 (DI, Auto-config, Boot) | 纯 Java 库,可在任何环境运行 (Spring, Quarkus, 原生 Java) |
| 集成度 | 与 Spring Boot, Spring Cloud 无缝集成 | 需要手动配置 Bean,但更灵活 |
| 学习曲线 | 对 Spring 开发者极低 | 需要学习其特有的链式 API |
| 更新速度 | 稳健,跟随 Spring 发布节奏 | 极快,新功能尝试激进 |
| 推荐场景 | 企业级 Spring 项目,追求长期维护和标准化 | 非 Spring 项目,或需要极度灵活控制的场景 |
结论 :如果你的项目是基于 Spring Boot 的,首选 Spring AI。它是未来的官方标准,能获得更好的长期支持和工具链集成。
🔮 5. 2026 年发展趋势
- Java 21 普及:随着 Spring AI 2.0 的推进,虚拟线程 (Virtual Threads) 将被广泛用于处理高并发的 AI 流式响应。
- Redis 向量化:利用 Redis Stack 进行向量检索将成为轻量级 RAG 的首选方案(无需额外部署 Milvus)。
- 多模态常态化:图片理解、语音交互将像文本聊天一样简单集成。
- Agent 编排:从简单的问答转向复杂的多步任务自动化(如:自动查库 -> 分析数据 -> 生成报表 -> 发送邮件)。
总结
Spring AI 是 Java 开发者进入 AI 应用开发的最佳入场券。它消除了"Java 不适合做 AI"的偏见,让你能用最擅长的技术栈构建下一代智能应用。如果你正在规划 2026 年的新项目,强烈建议直接采用 Spring AI。