SpringAI入门

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 通过 ChatModelEmbeddingModel 等接口,屏蔽不同 AI 厂商的 API 差异,实现"一次编码,多处运行"。它解决的是 AI 应用集成中的工程问题,如配置管理、依赖注入、可观测性等。

ChatClient是与 AI 交互的主要入口。实现 了.call() 同步调用和 .stream() 流式输出。

3.1、核心模型抽象

  • ChatModel :是所有聊天模型(LLM)的统一接口,定义了 callstream 方法。
  • EmbeddingModel:作用是将文本转换为向量,是语义搜索和 RAG 的基础。
  • ChatOptions :配置通用模型参数,如 temperaturemaxTokens 等。

3.2、提示词 (Prompt) 工程

  • Prompt 对象:封装了发送给 AI 的完整消息,包括用户消息和系统消息。
  • PromptTemplate :模板化提示词,将静态文案与动态变量({key})分离,提高可维护性。
  • SystemPromptTemplate:专门用于定义 AI 的"人设"和行为准则。更高级别的提示词。

3.3、结构化输出 (Structured Output)

解决如何将 AI 的自然语言回复直接转换为 Java 对象(POJO)或 JSON。

使用 BeanOutputConverter转换器,让AI按照指定格式输出,直接返回 UserDTOList<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,轻松实现基于私有知识库的问答。

使用 VectorStoreQuestionAnswerAdvisor,实现"基于企业文档的问答"。

4.3、工具调用 (Function Calling / Tool Calling)

  • 核心:让 AI 能够根据用户意图,自主决定调用预定义的 Java 方法(如查询天气、执行计算)。
  • 实战 :通过 @Tool 等注解,将业务逻辑暴露给 AI,扩展其能力边界。定义 @Tool 注解的方法(如查询天气、查询订单),让 AI 自动识别意图并执行代码。

5、工程化与进阶(生产级落地)

解决AI 应用"上线后怎么管"的问题,确保系统稳定、可控、可观测、可扩展。

5.1、监控与追踪

集成 Micrometer,监控 Token 消耗、API 调用延迟等关键指标。

配置日志级别,追踪 AI 的请求与响应链路。

5.2、异常处理与降级

配置统一的异常处理器,优雅地处理 API 超时、限流等问题。

重试机制:处理网络波动导致的 API 超时。

多模型路由:实现简单的路由策略,当主模型挂了自动切换到备用模型。

相关推荐
K姐研究社2 小时前
怎么用AI制作电商口播视频,开拍APP一键生成
人工智能·音视频
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
传说故事3 小时前
【论文阅读】MotuBrain: An Advanced World Action Model for Robot Control
论文阅读·人工智能·具身智能·wam
北京耐用通信3 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
火山引擎开发者社区3 小时前
TRAE × 火山引擎 Supabase:为你的 AI 应用装上“数据引擎”
人工智能
小a彤3 小时前
GE 在 CANN 五层架构中的位置
人工智能·深度学习·transformer
前端若水4 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Upsy-Daisy4 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
企学宝4 小时前
企学宝5月专题课程丨《OpenClaw AI 智能体实战营:从零基础部署到全场景自动化落地》
人工智能·ai·企业培训
冬奇Lab4 小时前
让 AI Agent 更可靠:Harness Engineering 与多 Agent 系统工程实践
人工智能·llm·agent