Spring AI框架完整指南

Spring AI 框架完整指南(2025 年最新版)

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

一、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: 构建简单应用

启动类:

@SpringBootApplicationpublicclassSpringAiApp{publicstaticvoidmain(String[] args){SpringApplication.run(SpringAiApp.class, args);}}

六、基本用法代码示例

1. 聊天交互(ChatClient)

@ServicepublicclassChatService{privatefinalChatClient chatClient;publicChatService(ChatClient.Builder chatClientBuilder){this.chatClient = chatClientBuilder.build();}publicStringchat(String message){return chatClient.prompt().user(message).call().content();// 同步响应}}

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

2. 嵌入生成

@ServicepublicclassEmbeddingService{privatefinalEmbeddingModel embeddingModel;publicList<Double>embed(String text){EmbeddingResponse response = embeddingModel.embed(text);return response.getOutput().get(0).getEmbedding();}}

3. 图像生成

@ServicepublicclassImageService{privatefinalImageModel imageModel;publicStringgenerateImage(String prompt){ImageResponse response = imageModel.call(newPrompt(newImagePrompt(prompt)));return response.getResult().getOutput().getUrl();// 返回图像 URL}}

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

4. RAG 示例(向量存储)

使用 PGVector:

@AutowiredprivateVectorStore vectorStore;publicSearchResultragSearch(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 工具)。
@ToolpublicStringgetWeather(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 优化。

Spring AI 让 Java 开发者轻松拥抱 AI 浪潮!需具体示例或 2025 迁移指南?随时问我。

Read more

【研发规范】Git 提交(commit)、CodeReview规范

本文将分为三个部分: 1. 为什么需要提交规范? 2. 提交规范详解(核心内容) 3. 与 Code Review 流程的结合 1. 为什么需要提交规范? 在 Code Review 前,如果提交的代码杂乱无章,审查者会非常痛苦: * 理解成本高:审查者需要花费大量时间猜测这个提交到底做了什么和为什么这么做。 * 范围不明确:一个提交里混杂了多个功能的修改,难以聚焦审查。 * 历史追溯困难:混乱的提交信息使得日后排查问题、生成变更日志(Changelog)变得几乎不可能。 良好的提交规范旨在解决这些问题,它的核心目标是:让每一次提交都是一个逻辑独立、意图明确、易于理解的故事单元。 2. 提交规范详解 一份优秀的提交(Commit)主要由两部分组成: 1. 提交信息 2. 提交内容(代码变更集) A. 提交信息规范 提交信息是写给未来维护者(包括你自己) 的说明文档。一个常见的规范格式是:

By Ne0inhk
【Linux工具】git

【Linux工具】git

文章目录 * Git 概述 * 主要功能 * 使用场景 * 资源链接 * 使用和下载git * 总结 Git 概述 Git是一个流行的分布式版本控制系统,主要用于跟踪计算机文件的变化,尤其是在软件开发中。它允许多个开发者协同工作,并管理项目的版本历史。 主要功能 1. 版本跟踪 记录文件的每次更改,用户可以随时回溯到先前的版本。 2. 分支管理 允许开发者创建独立的工作线,便于新特性的开发和实验。 3. 合并功能 轻松合并不同分支的更改,处理冲突并保持代码整洁。 4. 分布式操作 每个开发者都有完整的代码库副本,允许离线工作并提高效率。 使用场景 * 软件开发 最常见的用途,管理源代码的版本控制。 * 文档管理 跟踪文档修改历史,尤其是在团队协作中。 资源链接 * Git官方文档 * Atlassian的Git指南 使用和下载git 如果在你的Linux系统上没有下载git那么我们可以使用下面命令进行下载 sudo yum install -y git 这里我

By Ne0inhk
开源力量:GitCode+昇腾NPU 部署Mistral-7B-Instruct-v0.2模型的技术探索与经验总结

开源力量:GitCode+昇腾NPU 部署Mistral-7B-Instruct-v0.2模型的技术探索与经验总结

开源力量:GitCode+昇腾NPU 部署Mistral-7B-Instruct-v0.2模型的技术探索与经验总结 目录 开源力量:GitCode+昇腾NPU 部署Mistral-7B-Instruct-v0.2模型的技术探索与经验总结 摘要 一、技术背景 1.1 昇腾NPU 1.2 GitCode平台 1.3 vLLM Ascend 二、环境准备 2.1 创建GitCode Notebook 2.2 配置Hugging Face镜像 三、部署方案一:原生部署(transformers + torch_npu) 3.1 安装依赖 3.2 下载模型 3.3 推理代码 3.

By Ne0inhk
Git国内极速下载与安装全攻略:无需翻墙的完整解决方案

Git国内极速下载与安装全攻略:无需翻墙的完整解决方案

在国内使用Git时,由于网络限制,直接从官方源下载安装包或克隆仓库往往速度缓慢甚至失败。本文将提供一套完整的国内镜像解决方案,涵盖从Git软件安装到日常使用加速的全流程,帮助开发者无需翻墙即可高效完成Git相关操作。 一、国内镜像源安装Git 1.1 选择国内镜像源下载安装包 国内多所高校和企业提供了Git安装包的镜像服务,下载速度远超国际源: * 中科大镜像源 :https://mirrors.ustc.edu.cn/git/ * 清华大学镜像源 :https://mirrors.tuna.tsinghua.edu.cn/git/ * 阿里云镜像源 :https://registry.npmmirror.com/binary.html?path=git-for-windows/ * 码云(Gitee)镜像 :https://gitee.com/mirrors/git-for-windows 推荐优先使用阿里云或中科大镜像,更新频率高且下载稳定 1.2 各系统安装步骤

By Ne0inhk