大聪明教你学Java | Spring AI Lab:一个让你 3 分钟接入 AI 对话能力的 Spring Boot 工具箱

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 接口直接就能调。


项目地址

🔗 Giteegitee.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,一起把这个工具箱打磨得更好用!

相关推荐
AskHarries20 分钟前
用 OpenClaw 做视频脚本:选题、分镜、旁白和镜头表
后端·程序员
狂炫冰美式34 分钟前
凌晨睡不着,我给台风巴威写了个追踪网站
前端·后端·github
程序员cxuan1 小时前
Claude Code 焚诀(一):Claude Code 六种心智模型
人工智能·后端
雪隐1 小时前
用Flutter做背单词APP-01服务器?不存在的,我家里就有
前端·人工智能·后端
huangjiazhi_2 小时前
纯C++实现ini文件操作
java·后端·spring
正儿八经的少年2 小时前
Spring Boot
java·spring boot·后端
未秃头的程序猿2 小时前
虚拟线程用了一年,我真香了——10倍吞吐量是真实存在的
java·后端·面试
沙蒿同学2 小时前
用 RAG+FAISS 构建古诗词 AI 取名系统:从向量检索到六层质量过滤的实战
后端·aigc·ai编程
豆瓣鸡3 小时前
封装 Jackson 配置 Starter:统一解决 LocalDateTime 请求解析和响应格式化问题
java·spring boot
宠友信息3 小时前
资源权限与钱包流水在即时通讯源码后端架构中的设计
java·spring boot·redis·websocket·缓存