Spring AI Lab:一个让你 3 分钟接入 AI 对话能力的 Spring Boot 工具箱
不用看 Spring AI 源码,不用手写 ChatClient 配置,不用管理对话记忆------引入依赖、配好 API Key,接口直接可用。
你有没有遇到过这些问题?
想在项目中加个 AI 对话功能,结果发现:
- Spring AI 官网文档啃了半天,ChatClient、Advisor、ToolCalling 一堆概念
- 对话记忆要自己实现,过两天忘了清理,内存炸了
- 想加个 RAG 知识库问答,ETL 管道、向量存储、检索增强,一套组合拳下来头都大了
- 老板说"顺便加个代码审查、数据分析、智能客服",你看着屏幕沉默了
Spring AI Lab 就是为这些场景准备的------它把上述所有能力封装成了 7 个即插即用的 Spring Boot Starter,只需引入对应的依赖,配好 API Key,HTTP 接口直接就能调。
项目地址
🔗 Gitee :gitee.com/sjz_zy/spri...
🌟 如果觉得有用,欢迎 Star 支持!
一、它是什么?
Spring AI Lab 是 Spring AI 的上层封装,定位是"AI 应用快速开发工具箱"。
Spring AI(底层能力)→ Spring AI Lab(场景封装)→ 你的业务代码
它不重新发明轮子,100% 基于 Spring AI 官方 API,只负责把零散的能力组合成可以直接使用的"产品级"场景模板。
二、7 个开箱即用的场景
| 场景 | 引入的依赖 | 自动提供的 API |
|---|---|---|
| 💬 通用对话 | spring-ai-lab-scenario-chat |
POST /api/chat 同步 + SSE 流式 |
| 📚 RAG 问答 | spring-ai-lab-scenario-rag |
文档上传 → ETL → 向量检索 → 生成回答 |
| 🤝 多 Agent 协作 | spring-ai-lab-scenario-multi-agent |
顺序/并行/路由/辩论 四种协作模式 |
| 📝 代码审查 | spring-ai-lab-scenario-code-review |
Git Diff 解析 + 多维度 AI 审查 |
| 📊 数据分析 | spring-ai-lab-scenario-data-analysis |
自然语言 → SQL → AI 分析报告 |
| 🎧 智能客服 | spring-ai-lab-scenario-customer-service |
意图识别 + 多轮对话 + 知识库 |
| 🔌 MCP Server | spring-ai-lab-scenario-mcp |
MCP 协议服务端,JSON-RPC + SSE |
三、有多简单?看代码
3 个文件,拥有 AI 对话 + 知识库问答
pom.xml
xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.liziye</groupId>
<artifactId>spring-ai-lab-bom</artifactId>
<version>1.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.liziye</groupId>
<artifactId>spring-ai-lab-scenario-chat</artifactId>
</dependency>
<dependency>
<groupId>com.liziye</groupId>
<artifactId>spring-ai-lab-scenario-rag</artifactId>
</dependency>
</dependencies>
application.yml
yaml
spring:
ai:
dashscope:
api-key: ${DASHSCOPE_API_KEY} # 任何 OpenAI 兼容的 API Key 都可以
base-url: https://your-api-endpoint.com/v1/chat/completions
model: your-model-name
MyApp.java
java
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
启动,直接调接口:
json
POST /api/chat
{
"userInput": "你好,介绍一下你自己"
}
// 返回
{
"code": 200,
"data": {
"content": "你好!我是基于 MiMo 大模型的 AI 助手...",
"conversationId": "conv_abc123",
"metadata": { "tokens": 1523, "latencyMs": 2300, "model": "mimo-v2-pro" }
}
}
没有手写 ChatClient,没有管理对话历史,没有处理重试------这些都内置了。
四、不止能用,还很靠谱
作为生产级的 AI 基础设施,Spring AI Lab 内置了:
| 能力 | 实现方式 |
|---|---|
| 🔀 多模型路由 | 多模型动态切换,支持按场景/成本/延迟选择,主备自动降级 |
| 🧠 对话记忆 | 内存/Redis 双实现,TTL 自动过期,定时清理 |
| 🛡️ 容错降级 | 三级防护:指数退避重试 → Resilience4j 熔断 → Fallback 兜底 |
| 📊 可观测性 | Token 统计、延迟监控、错误率、Micrometer → Prometheus + Grafana |
| 🔒 安全防护 | 令牌桶限流,接口级速率控制 |
| 📄 文档处理 | PDF/Word/Markdown/HTML/TXT 五种格式,固定大小/段落/语义三种切分 |
五、架构设计
采用五层架构,依赖自上而下单向流动:
css
场景模板层(7 个 @EnableXxx 注解)
↓
编排层(BaseOrchestrator 模板方法模式)
↓
能力层(记忆/路由/重试/文档/工具/指标)
↓
Spring AI 基础层(ChatClient / VectorStore / Embedding 等)
↓
基础设施(Prometheus / Redis / Resilience4j)
核心设计思想是模板方法模式 :编排层定义了 preProcess() → doExecute() → postProcess() 的骨架,自动处理记忆管理、Token 统计、延迟监控、异常兜底。子类只需实现 doExecute() 中的场景差异化逻辑。
六、测试验证
项目使用 小米 MiMo 大模型(mimo-v2-pro) 完成全量功能验证:
- 69 个单元测试:限流器、数据分析、智能客服等核心模块 100% 通过
- 27 个集成测试:覆盖 Chat、RAG、Multi-Agent、Code Review、Data Analysis、Customer Service、MCP 全部场景
只要模型兼容 OpenAI Chat Completions 协议(DashScope、OpenAI、Ollama 等),即可直接替换使用。
七、技术栈
| 类别 | 技术 | 版本 |
|---|---|---|
| 基础框架 | Spring Boot | 3.4.5 |
| AI 框架 | Spring AI | 1.1.5 |
| JDK | Java | 17+ |
| 容错 | Resilience4j | 2.3.0 |
| 监控 | Micrometer + Prometheus + Grafana | 1.14.3 |
| 文档解析 | Apache PDFBox + POI + Jsoup | 3.0.4 / 5.4.0 / 1.18.1 |
八、适用场景
如果你的项目需要以下能力之一,Spring AI Lab 能让你省掉 80% 的底层开发时间:
- 给管理系统加个 AI 对话助手
- 基于内部文档搭建知识库问答
- 用 AI 辅助 Code Review
- 自然语言查数据库
- 搭建智能客服系统
- MCP 协议的 Tool 服务端
结语
这个项目的初衷很简单:让 AI 能力接入像加一个 Spring Boot Starter 一样简单。
从 0 搭建一个具备对话记忆、多模型路由、容错降级、可观测性的 AI 应用,至少要一两周。但用 Spring AI Lab,引入依赖 + 配 Key 就搞定了。
🔗 Gitee 地址 :gitee.com/sjz_zy/spri...
欢迎 Star ⭐,也欢迎提 Issue 和 PR,一起把这个工具箱打磨得更好用!