大聪明教你学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,一起把这个工具箱打磨得更好用!

相关推荐
武子康13 分钟前
Java-07 深入浅出 MyBatis数据库一对多关系模型实战:表结构设计与查询实现
java·后端
花椒技术1 小时前
企业内部 Agent 落地复盘:Gateway、Skill 和二次确认如何串起受控业务执行
后端·agent·ai编程
我是一颗柠檬3 小时前
【MySQL全面教学】MySQL事务与ACID Day9(2026年)
数据库·后端·mysql
枕星而眠3 小时前
数据结构八大排序详解(一):四大简单排序
c语言·数据结构·c++·后端
IT_陈寒3 小时前
React useEffect闭包陷阱差点把我整失业了
前端·人工智能·后端
苍何4 小时前
爆肝两周,我把 Codex 最全实战指南开源了
后端
苏渡苇4 小时前
服务容错的必要性与Spring Cloud Alibaba Sentinel 限流配置实战
spring boot·spring cloud·sentinel
bug菌4 小时前
【SpringBoot 3.x 第254节】夯爆了,数据库访问性能优化实战详解!
数据库·spring boot·后端
Rust研习社4 小时前
从碎片化到标准化:cargo-bp 如何重构 Rust 开发逻辑
后端·rust·编程语言
锋行天下4 小时前
一句mysql复杂查询搞崩一个壮汉
后端·mysql·go