Spring AI 大模型应用开发篇 —— 新手入门知识(2026 年最新版)
Spring AI 是 Spring 官方推出的 AI 工程框架,目标是用 Spring 熟悉的编程模型(AutoConfiguration、Starter、ChatClient、Advisors 等)让 Java 开发者轻松集成大模型(LLM)、向量数据库、RAG、Function Calling 等能力。
它不是 LangChain 的简单 Java 移植,而是企业级、厂商无关、可移植的 AI 抽象层。
2026 年 3 月最新状态:Spring AI 2.0.0-M2(2026 年 1 月 23 日发布),基于 Spring Boot 4 + Spring Framework 7 + Java 21,已接近 GA,生产可用性大幅提升。
一、Spring AI 到底解决什么问题?
| 痛点 | 没有 Spring AI 时 | 使用 Spring AI 后 |
|---|---|---|
| 厂商绑定 | 直接调用 OpenAI / Gemini / Claude SDK | 一套 API 切换任意模型(OpenAI、Ollama、Anthropic、Gemini、Mistral 等) |
| 代码风格不统一 | 每个模型调用方式不同 | 统一 ChatClient(类似 WebClient)、PromptTemplate、Advisors |
| 企业数据接入难 | 手动写 RAG 逻辑 | 内置 VectorStore + DocumentReader + ETL 管道 |
| 生产特性缺失 | 缺少缓存、观测、结构化输出 | 内置 Redis Semantic Cache、Observability、Structured Output、Tool Calling |
一句话:Spring AI 让 Java 开发者用 Spring 的方式写 AI 应用,不用学 Python 那一套。
二、核心概念速览(新手必须先懂)
- ChatClient:最核心的 fluent API,类似 RestClient,负责与 LLM 对话(同步/流式)。
- PromptTemplate:带占位符的提示词模板,支持变量注入。
- Advisor:拦截器模式,可在请求/响应前后做日志、缓存、RAG、Guardrails 等操作。
- VectorStore:向量数据库抽象(Redis、PGVector、Pinecone、Milvus、Qdrant、Elasticsearch 等)。
- EmbeddingModel:文本向量化模型。
- Function/Tool Calling:让模型主动调用你的 Java 方法(实时查数据库、调用 API)。
- Structured Output:让模型输出严格符合 Java POJO(JSON Schema 验证)。
- RAG:Retrieval-Augmented Generation(检索增强生成),企业知识库问答必备。
三、零基础 10 分钟上手(2026 年推荐方式)
步骤 1:使用 Spring Initializr 创建项目(最快)
访问 https://start.spring.io
- Spring Boot:4.0.x(或最新)
- Java:21
- Dependencies 搜索并勾选:
- Spring Web(可选)
- OpenAI(入门首选)或 Ollama(本地免费)
- Redis Vector Store(推荐用于 RAG)
- 其他:PostgreSQL Vector、Chroma 等按需选择
下载后解压,项目自动带好 spring-ai-bom 和 starter。
步骤 2:添加 OpenAI Key(application.yml)
spring:
ai:
openai:
api-key: sk-XXXXXXXXXXXXXXXXXXXXXXXX # 换成你的 OpenAI Key
chat:
options:
model: gpt-4o-mini # 或 gpt-4o、o1-mini 等
temperature: 0.7
本地模型推荐用 Ollama(完全免费):
spring:
ai:
ollama:
base-url: http://localhost:11434
chat:
options:
model: qwen2.5:7b # 或 llama3.2、deepseek-r1 等
步骤 3:最简单 Hello World(ChatClient)
@RestController
@RequestMapping("/ai")
@RequiredArgsConstructor
public class AiController {
private final ChatClient chatClient; // Spring AI 自动注入
@GetMapping("/chat")
public String chat(@RequestParam String question) {
return chatClient.prompt()
.user(question) // 简单方式
.call()
.content(); // 返回 String
}
// 进阶:带系统提示 + 流式输出
@GetMapping("/stream")
public Flux<String> stream(@RequestParam String question) {
return chatClient.prompt()
.system("你是一位友善的 Java 技术专家,用中文回答")
.user(question)
.stream()
.content();
}
}
启动项目,访问 http://localhost:8080/ai/chat?question=Spring AI 是什么 即可看到回答。
步骤 4:PromptTemplate + Structured Output 示例
record Poem(String title, String content) {}
@GetMapping("/poem")
public Poem generatePoem(@RequestParam String theme) {
return chatClient.prompt()
.user(u -> u.text("写一首关于 {theme} 的现代诗")
.param("theme", theme))
.call()
.entity(Poem.class); // 自动转 POJO(2.0 加强特性)
}
四、2026 年 Spring AI 2.0 重要新特性(新手关注)
- 原生 OpenAI SDK 支持,性能更好
- Redis Semantic Cache(语义缓存 Advisor)
- Mistral / Ollama Structured Output 原生支持
- 新增 Amazon S3、Infinispan、Amazon Bedrock Knowledge Base 等 VectorStore
- 全量 Null-Safety(JSpecify + NullAway)
- Model Context Protocol (MCP) SDK 深度集成(支持外部工具调用)
五、新手推荐学习路径(建议顺序)
- Day 1:跑通上面 Hello World + ChatClient 基础
- Day 2:PromptTemplate + Advisor + 简单 RAG(加载文档到 VectorStore)
- Day 3:Function/Tool Calling(让模型调用你的 Java Service)
- Day 4:Structured Output + Streaming + Observability
- Week 2:完整 RAG 项目(企业知识库问答)+ Ollama 本地部署
官方文档(强烈建议收藏):
- https://docs.spring.io/spring-ai/reference/
- Getting Started:https://docs.spring.io/spring-ai/reference/getting-started.html
你现在处于哪个阶段?
- 完全零基础,想一步步手把手写第一个项目?
- 已经装好依赖,想直接做 RAG / Function Calling / Structured Output?
- 还是想用本地 Ollama + Qwen2.5 完全免费跑?
告诉我你的目标(或直接说“给我一个完整的 RAG 示例项目结构”),我立刻给你贴出 可运行完整代码 + application.yml + Prompt 模板,带你 30 分钟跑通第一个生产级 Spring AI 应用!