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 超时。

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

相关推荐
AI周红伟5 小时前
周红伟:AI时代,苹果还行吗?
大数据·人工智能·安全·copilot·openclaw
-cywen-5 小时前
扩散模型基础
人工智能·深度学习·机器学习
sky_8106135 小时前
深入理解 Claude Code:从 0 到 1 构建 AI 智能体工作台
人工智能
旺财矿工5 小时前
AI 智能体 OpenClaw 2.6.6 Win11 安装与快速上手教程
人工智能·自动化·openclaw·小龙虾·龙虾
0xR3lativ1ty5 小时前
Transformer自注意力为何除以根号dk
人工智能·深度学习·transformer
无籽西瓜a6 小时前
RAG 中的幻觉是什么?原因分析与防范措施
人工智能·ai·rag
大囚长6 小时前
AI是人类灭绝的前奏
人工智能
小妖同学学AI6 小时前
抛弃传统数据库!Qdrant用Rust重写AI记忆,大模型知识库迎来性能革命!
数据库·人工智能·rust
星爷AG I6 小时前
20-3 长时记忆(AGI基础理论)
人工智能·agi