跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaAIjava

Spring AI 框架核心特性与实战指南

综述由AI生成Spring AI 是 Spring 生态中专为 AI 工程设计的应用框架,简化了与大型语言模型、嵌入模型和向量数据库的集成。文章解析其架构、支持的 AI 提供商及快速入门步骤,涵盖 ChatClient API、RAG、代理(Agents)等高级主题,并提供代码示例与最佳实践,帮助 Java 开发者构建生成式 AI 应用。

未来可期发布于 2026/3/15更新于 2026/5/2920 浏览

Spring AI 框架完整指南

Spring AI 是 Spring 生态中专为 AI 工程设计的应用框架,于 2024 年正式推出,并在 2025 年快速发展,已成为 Java 开发者构建生成式 AI 应用的首选工具。它简化了与大型语言模型(LLM)、嵌入模型和向量数据库的集成,让企业级 Java 应用轻松接入 AI 能力,如聊天机器人、RAG(Retrieval Augmented Generation)和智能代理。根据官方文档和 2025 年最新发布(如 Spring AI 1.1 GA),本指南从基础到高级全面解析,结合代码示例和最佳实践,帮助你快速上手。

一、Spring AI 概述

Spring AI 的核心使命是'连接企业数据和 API 与 AI 模型',它不是 Python AI 框架(如 LangChain)的直接移植,而是为 Java/Spring 生态量身定制,提供可移植的抽象层。不同于传统 Spring 模块,它聚焦生成式 AI,强调简洁性和生产就绪(如自动配置、观测性)。

为什么选择 Spring AI?(2025 年价值)
  • Java 原生:无需切换到 Python,保持端到端 Java 开发。
  • Spring 集成:无缝嵌入 Spring Boot,支持自动装配和 Starter。
  • 多提供商支持:统一 API 接入 OpenAI、Anthropic、Ollama 等,避免供应商锁定。
  • 企业级特性:工具调用、RAG、评估框架,解决幻觉(hallucination)和安全性问题。
  • 2025 年现状:Spring AI 1.1 GA(2025 年 11 月发布),引入 Agents 框架和 Bench 评估工具;兼容 Spring Framework 7.x 和 Java 21+。

适用场景:聊天助手、文档 Q&A、智能搜索、图像生成、代理式 AI(如代码生成工具)。

二、关键特性

Spring AI 的特性围绕可移植性和易用性设计,以下是核心亮点:

特性描述2025 年亮点
ChatClient API流式/同步聊天接口,类似 WebClient,支持多模型。集成 MCP(Model Context Protocol)协议,提升代理间通信。
嵌入与向量存储嵌入模型生成向量,向量数据库(如 PGVector、Neo4j)支持 RAG。新增 SQL-like 过滤 API,简化元数据查询。
工具/函数调用模型调用客户端工具(如天气 API),实现实时交互。@Tool 注解简化服务器暴露,支持 OAuth 安全。
结构化输出AI 输出映射到 POJO,避免解析 JSON。增强类型安全,支持复杂对象。
观测性追踪 AI 操作,支持 Prometheus/OpenTelemetry。新增聊天完成日志,便于调试。
评估框架Bench 工具评估生成内容,检测幻觉。Spring AI Bench:基准测试和评估套件。
文档 ETL摄取/转换/加载框架,处理企业数据。升级 Tika 3.2.3,支持多模态(文本 + 图像)。
代理与 Advisors构建代理模式,封装 AI 模式(如重试、缓存)。Agents 框架:5 大模式(简单代理、工具链等)。

这些特性让 Spring AI 适用于从简单聊天到复杂代理的场景。

三、架构解析

Spring AI 的架构基于抽象层 + 实现多态:

  • 抽象层:ChatModel、EmbeddingModel、VectorStore 等接口,提供统一 API。
  • 实现层:每个提供商(如 OpenAIChatModel)实现抽象,支持同步/流式。
  • Spring Boot 层:Starter 自动配置,@EnableSpringAi 启用。
  • 高级层:Advisors(模式封装)、MCP(代理协议)。

流程示例:用户输入 → ChatClient → 模型提供商 → 输出(可流式) → Advisors 处理(日志/缓存)。

2025 更新:兼容 GraalVM Native,提升冷启动性能;MCP 支持 stdio/HTTP SSE 端点。

四、支持的 AI 提供商

Spring AI 支持 20+ 提供商,确保灵活性。

类别提供商示例支持功能
聊天/LLMOpenAI、Anthropic、Microsoft、Amazon Bedrock、Google Vertex、Ollama聊天、流式、工具调用
嵌入OpenAI、Hugging Face、Cohere、Google Vertex向量生成
图像OpenAI DALL-E、Stability AI、Amazon Bedrock文本到图像、多模态
向量数据库PGVector、Neo4j、Milvus、Pinecone、Redis、WeaviateRAG、相似性搜索

配置示例(application.yml):

spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
chat:
  options:
    model: gpt-4o
embedding:
  options:
    model: text-embedding-ada-002

五、快速入门

步骤 1: 添加依赖

使用 Spring Initializr(start.spring.io)添加 spring-ai-openai-spring-boot-starter。

Maven 示例:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
步骤 2: 配置 API Key

在 application.yml 中设置密钥(环境变量推荐)。

步骤 3: 构建简单应用

启动类:

@SpringBootApplication
public class SpringAiApp {
    public static void main(String[] args) {
        SpringApplication.run(SpringAiApp.class, args);
    }
}

六、基本用法代码示例

1. 聊天交互(ChatClient)
@Service
public class ChatService {
    private final ChatClient chatClient;

    public ChatService(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }

    public String chat(String message) {
        return chatClient.prompt().user(message).call().content(); // 同步响应
    }
}

流式示例:.call().stream() 返回 Flux。

2. 嵌入生成
@Service
public class EmbeddingService {
    private final EmbeddingModel embeddingModel;

    public List<Double> embed(String text) {
        EmbeddingResponse response = embeddingModel.embed(text);
        return response.getOutput().get(0).getEmbedding();
    }
}
3. 图像生成
@Service
public class ImageService {
    private final ImageModel imageModel;

    public String generateImage(String prompt) {
        ImageResponse response = imageModel.call(new Prompt(new ImagePrompt(prompt)));
        return response.getResult().getOutput().getUrl(); // 返回图像 URL
    }
}

支持多模态:输入图像 + 文本。

4. RAG 示例(向量存储)

使用 PGVector:

@Autowired
private VectorStore vectorStore;

public SearchResult ragSearch(String query) {
    vectorStore.add(List.of(Document.builder().content("企业数据...").build()));
    return vectorStore.similaritySearch(SimilarityRequest.query(query));
}

集成 ChatClient:chatClient.prompt().user(query).advisors(ragAdvisor).call()。

七、高级主题

1. RAG(Retrieval Augmented Generation)
  • 核心:嵌入查询 → 向量搜索 → 注入上下文 → LLM 生成。
  • 2025 实践:模块化 RAG 架构,支持多向量存储。
2. 代理(Agents)

Spring AI 1.1 引入 Agents 框架,支持 5 大模式:

  • 简单代理:基本工具调用。
  • 工具链:顺序执行工具。
  • 示例:天气代理(调用 MCP 工具)。
@Tool
public String getWeather(String city) {
    /* 调用 API */
}

使用 Advisors 封装模式,如重试/缓存。

3. 评估与 Bench

使用 Spring AI Bench 评估生成质量:

// 伪代码:评估幻觉率
BenchmarkResult result = bench.evaluate(generatedText, expected);
4. 安全与非功能需求
  • moderation 模型过滤内容。
  • OAuth for MCP。
  • 性能:虚拟线程支持,Native Image 兼容。

八、Spring Boot 集成与最佳实践

  • Starter 机制:spring-ai-starter-vector-store-pgvector 等,一键集成。
  • 观测:集成 Micrometer,监控令牌使用。
  • 最佳实践:
    • 使用 Advisors 封装模式,避免重复代码。
    • 优先结构化输出,减少解析错误。
    • 测试:Mock AI 提供商,单元测试 ChatClient。
    • 伦理:评估幻觉,遵守数据隐私(GDPR)。

2025 学习路线:从 ChatClient 入门 → RAG 项目 → Agents 高级 → Bench 优化。

目录

  1. Spring AI 框架完整指南
  2. 一、Spring AI 概述
  3. 为什么选择 Spring AI?(2025 年价值)
  4. 二、关键特性
  5. 三、架构解析
  6. 四、支持的 AI 提供商
  7. 五、快速入门
  8. 步骤 1: 添加依赖
  9. 步骤 2: 配置 API Key
  10. 步骤 3: 构建简单应用
  11. 六、基本用法代码示例
  12. 1. 聊天交互(ChatClient)
  13. 2. 嵌入生成
  14. 3. 图像生成
  15. 4. RAG 示例(向量存储)
  16. 七、高级主题
  17. 1. RAG(Retrieval Augmented Generation)
  18. 2. 代理(Agents)
  19. 3. 评估与 Bench
  20. 4. 安全与非功能需求
  21. 八、Spring Boot 集成与最佳实践
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Windows 至鸿蒙:ToDesk、Splashtop、TeamViewer、向日葵跨平台远控对比
  • 基于 Jenkins 与 Gitea 的离线环境 CI/CD 自动化搭建指南
  • CloudBeaver 快速搭建指南:Web 数据库管理平台部署
  • Ubuntu 24.04 Server 系统安装及配置
  • AstrBot+NapCat 一键部署智能 QQ 机器人及 cpolar 公网访问配置
  • Java 使用 MemCachedClient 遍历 Memcached 所有 Key 的方法
  • OpenClaw Docker 部署指南:搭建私有爬虫管理平台
  • 医疗 AI 场景下的算法编程深度解析
  • 二叉树深度优先遍历实战:计算布尔值与路径数字和
  • LLaMA 2/3、Qwen 与 DeepSeek 开源大模型技术对比分析
  • QTTabBar 解析:Windows 资源管理器标签页增强方案
  • Linux 环境下 OpenClaw 安装、初始化与 Web UI 配置
  • incbin:C/C++ 二进制资源嵌入的实用方案
  • Ollama v0.17.0 发布:OpenClaw 自动安装、Web 搜索及 Context 动态分配优化
  • 基于 MCP 的可插拔式临床 AI 工具链架构研究(上)
  • 机器人远程监控与 OTA 升级技术架构
  • Parlant 开源 LLM 智能体行为建模引擎介绍
  • RabbitMQ 发布确认模式详解:单条、批量与异步实现
  • 基于 Django 与 Vue 的大学生兼职管理系统设计与实现
  • C++ 实现 2048 小游戏核心逻辑与代码解析

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online