Spring AI是一个用于人工智能工程的应用框架。核心在于解决AI集成的基本挑战:将企业数据、程序接口API、AI模型连接起来。如图:企业数据喂给AI大模型,应用API接口从大模型获取答案。

相关知识点:
| 优先级 | 模块 | 核心知识点 | 为什么学? |
|---|---|---|---|
| P0 (必须) | 基础交互 | ChatClient, PromptTemplate, application.yml |
这是所有功能的基石,不学没法开发。 |
| P0 (必须) | 数据交互 | BeanOutputConverter (结构化输出) |
业务开发中,99% 的场景都需要 JSON/对象格式。 |
| P0 (必须) | 上下文管理 | ChatMemoryAdvisor, Token 裁剪 |
没有记忆,AI 只是个一次性问答机器。 |
| P1 (核心) | 外部能力 | @Tool (Function Calling), 简单 RAG |
让 AI 从"陪聊"变成"业务助手"的关键。 |
| P2 (进阶) | 架构模式 | MCP (Model Context Protocol), Agent |
适合复杂场景,初学者容易劝退,后期再学。 |
| P2 (进阶) | 运维监控 | 向量数据库选型, 成本监控 | 项目做大之后才需要考虑的问题。 |
1、核心概念
| 核心概念 | 作用 | 类比理解 |
|---|---|---|
ChatClient |
与 AI 交互的主要入口,提供流畅的 API。 | RestTemplate / WebClient |
PromptTemplate |
管理提示词结构,实现文案与数据分离。 | MyBatis 的 XML Mapper |
Advisors |
在调用链中插入通用逻辑(记忆、日志、RAG)。 | Spring MVC 的 Interceptor / Filter |
VectorStore |
存储和检索文本向量,是 RAG 的核心组件。 | JpaRepository (但存的是向量) |
Function Calling |
让 AI 调用本地 Java 方法,扩展其能力。 | 依赖注入的"动态"版本 |
2、学习路径
-
第 1 (基础):搭建 Spring Boot 3 项目,配置 DeepSeek 或 OpenAI,写一个能流式输出的聊天接口。
-
第 2 (数据) :学习
PromptTemplate优化提示词。重点BeanOutputConverter,尝试让 AI 返回一个包含"姓名、年龄"的 JSON 对象。 -
第 3 (增强) :引入
ChatMemory实现多轮对话;写一个@Tool方法(比如计算加减法),让 AI 帮你算数。 -
第 4 (实战) :做一个**"个人知识库助手"**。读取一个 TXT 文件,存入内存向量库,然后向 AI 提问文件里的内容。
3、概论理念
Spring AI 通过 ChatModel、EmbeddingModel 等接口,屏蔽不同 AI 厂商的 API 差异,实现"一次编码,多处运行"。它解决的是 AI 应用集成中的工程问题,如配置管理、依赖注入、可观测性等。
ChatClient是与 AI 交互的主要入口。实现 了.call() 同步调用和 .stream() 流式输出。
3.1、核心模型抽象
ChatModel:是所有聊天模型(LLM)的统一接口,定义了call和stream方法。EmbeddingModel:作用是将文本转换为向量,是语义搜索和 RAG 的基础。ChatOptions:配置通用模型参数,如temperature、maxTokens等。
3.2、提示词 (Prompt) 工程
Prompt对象:封装了发送给 AI 的完整消息,包括用户消息和系统消息。PromptTemplate:模板化提示词,将静态文案与动态变量({key})分离,提高可维护性。SystemPromptTemplate:专门用于定义 AI 的"人设"和行为准则。更高级别的提示词。
3.3、结构化输出 (Structured Output)
解决如何将 AI 的自然语言回复直接转换为 Java 对象(POJO)或 JSON。
使用 BeanOutputConverter转换器,让AI按照指定格式输出,直接返回 UserDTO 或 List<Product>对象,便于后续业务处理。
4、赋予 AI"记忆"与"外挂"(RAG 与 Tools)
这是 Spring AI 最核心的两个增强能力,让 AI 懂私有数据、能干实事。
4.1、Advisors (顾问) 机制
设计思想:AOP(面向切面编程)思想,作为拦截器链在请求/响应前后执行通用逻辑。
核心实现:
MessageChatMemoryAdvisor:实现多轮对话的记忆能力。配合 Redis 或 JDBC 实现多轮对话上下文持久化,解决"AI 健忘症"。SimpleLoggerAdvisor:记录完整的 AI 交互日志,便于调试。
4.2、检索增强生成 (RAG)
- 核心流程:"文档加载 -> 文本分割 -> 向量化 -> 存入向量库 -> 检索 -> 增强提示"的完整链路。
VectorStore:是向量数据库的统一抽象,支持切换不同的后端(如 Milvus, Redis, 内存)。QuestionAnswerAdvisor:内置 Advisor,轻松实现基于私有知识库的问答。
使用 VectorStore 和 QuestionAnswerAdvisor,实现"基于企业文档的问答"。
4.3、工具调用 (Function Calling / Tool Calling)
- 核心:让 AI 能够根据用户意图,自主决定调用预定义的 Java 方法(如查询天气、执行计算)。
- 实战 :通过
@Tool等注解,将业务逻辑暴露给 AI,扩展其能力边界。定义@Tool注解的方法(如查询天气、查询订单),让 AI 自动识别意图并执行代码。
5、工程化与进阶(生产级落地)
解决AI 应用"上线后怎么管"的问题,确保系统稳定、可控、可观测、可扩展。
5.1、监控与追踪:
集成 Micrometer,监控 Token 消耗、API 调用延迟等关键指标。
配置日志级别,追踪 AI 的请求与响应链路。
5.2、异常处理与降级
配置统一的异常处理器,优雅地处理 API 超时、限流等问题。
重试机制:处理网络波动导致的 API 超时。
多模型路由:实现简单的路由策略,当主模型挂了自动切换到备用模型。