spring-ai

GitHub
8.5k 2.5k 简单 1 次阅读 今天Apache-2.0语言模型图像音频开发框架数据工具Agent
AI 解读 由 AI 自动生成,仅供参考

Spring AI 是一个专为 Java 开发者打造的 AI 应用开发框架,旨在将成熟的 Spring 生态系统设计原则引入人工智能领域。它核心解决了企业现有数据、API 与各类大语言模型之间难以高效连接和集成的痛点,让开发者无需在不同厂商的专有 SDK 间反复切换。

无论是希望构建智能应用的 Java 工程师,还是需要在企业级架构中落地生成式 AI 的团队,Spring AI 都提供了标准化的解决方案。其独特亮点在于“一次编写,多处运行”的可移植 API,统一支持 OpenAI、Anthropic、Google、Ollama 等主流模型提供商,涵盖聊天、嵌入、图像生成及语音处理等多种能力。此外,它创新性地提供了类似 SQL 的元数据过滤接口以兼容多种向量数据库,并支持将 AI 输出直接映射为 Java 对象(POJO),极大简化了结构化数据处理。

受到 LangChain 等 Python 项目的启发,Spring AI 并非简单复制,而是致力于证明生成式 AI 开发不应局限于单一语言。通过提供同步与流式调用选项以及完善的工具函数调用支持,Spring AI 帮助开发者利用熟悉的 Spring Boot 技术栈,轻松构建模块化、可维护的下一代智能应用。

使用场景

某电商平台的 Java 后端团队正在构建一个“智能售后助手”,需要连接企业内部订单数据库与主流大模型,以自动处理用户的退货咨询。

没有 spring-ai 时

  • 厂商锁定严重:代码中硬编码了特定 AI 厂商(如 OpenAI)的 SDK,一旦需要切换模型或实现多云灾备,必须重构大量底层网络请求代码。
  • 数据转换繁琐:大模型返回的非结构化 JSON 文本需要手动解析并映射为 Java 对象,字段类型不匹配常导致运行时异常,开发效率低下。
  • 工具调用复杂:想让 AI 调用内部的“查询订单”接口,需自行编写复杂的 Prompt 工程来模拟函数调用逻辑,且难以维护上下文状态。
  • 向量检索割裂:集成向量数据库(如 PGVector)进行知识库检索时,缺乏统一的元数据过滤 API,不同数据库的查询语法差异增加了适配成本。

使用 spring-ai 后

  • 架构灵活可移植:利用 spring-ai 统一的便携式 API,团队仅需修改配置即可在 OpenAI、Azure 或本地 Ollama 模型间无缝切换,核心业务逻辑零改动。
  • 结构化输出自动化:通过内置的结构化输出转换器,直接将 AI 回复映射为标准的 POJO(如 RefundRequest 类),彻底消除了手动解析 JSON 的出错风险。
  • 原生函数调用支持:只需将现有的 Service 方法注册为工具,spring-ai 自动处理参数提取与执行流程,让 AI 能精准调用内部订单系统完成闭环操作。
  • 统一向量存储抽象:借助跨供应商的向量存储 API 和类 SQL 的元数据过滤器,轻松实现基于用户等级的知识库隔离检索,无需关心底层数据库差异。

spring-ai 成功将企业现有数据资产与大模型能力标准化连接,让 Java 开发者能以熟悉的 Spring 生态模式高效构建生产级 AI 应用。

运行环境要求

操作系统
  • 未说明
GPU
  • 非必需(基于 Java 的框架,主要调用外部 AI 模型 API
  • 若本地运行 Transformers 模型需自行配置相应硬件)
内存

未说明

依赖
notes这是一个 Java/Spring 框架,用于集成各类 AI 模型(如 OpenAI, Anthropic, Ollama 等)和向量数据库,本身不依赖 Python 环境。构建项目必须使用 JDK 21,但生成的制品兼容 Java 17 及以上版本。若克隆代码库,建议安装 Git LFS 或跳过大型模型文件下载。运行集成测试前需设置相关 AI 服务商的 API Key 环境变量。
python不需要
Java JDK 21 (构建要求)
Java 17+ (运行要求)
Spring Boot 3.5.x (对应 Spring AI 1.1.x)
Spring Boot 4.x (对应 Spring AI 2.x.x)
Maven
spring-ai hero image

快速开始

Spring AI 构建状态 构建状态 Maven Central

Spring Boot 版本兼容性

Spring AI 2.x.xmain 分支)- Spring Boot 4.x

Spring AI 1.1.x1.1.x 分支)- Spring Boot 3.5.x

Spring AI 项目提供了一个对 Spring 友好的 API 和抽象层,用于开发 AI 应用程序。

其目标是将 Spring 生态系统的设计原则,如可移植性和模块化设计,应用于 AI 领域,并在 AI 领域推广使用 POJO 作为应用程序的构建块。

spring-ai-integration-diagram-3

在核心层面,Spring AI 解决了 AI 集成的根本挑战:将企业的 数据APIAI 模型 连接起来。

该项目受到一些著名的 Python 项目启发,例如 LangChainLlamaIndex,但 Spring AI 并不是这些项目的直接移植。该项目的创立基于这样一种信念:下一代生成式 AI 应用程序不仅会面向 Python 开发人员,还将在多种编程语言中普及。

您可以在博客文章 Why Spring AI 中找到更多相关的动机。

以下是高层次的功能概述。 更多详细信息请参阅 参考文档

  • 支持所有主要的 AI 模型提供商,如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。支持的模型类型包括:
  • 跨 AI 提供商的可移植 API,支持同步和流式传输两种方式。还可以访问 模型特定功能
  • 结构化输出 - 将 AI 模型的输出映射到 POJO。
  • 支持所有主要的 向量数据库提供商,如 Apache Cassandra、Azure Vector Search、Chroma、Elasticsearch、Milvus、MongoDB Atlas、MariaDB、Neo4j、Oracle、PostgreSQL/PGVector、Pinecone、Qdrant、Redis 和 Weaviate
  • 跨向量存储提供商的可移植 API,包括一种新颖的类似 SQL 的 元数据过滤 API
  • 工具/函数调用 - 允许模型请求执行客户端工具和函数,从而根据需要访问必要的实时信息。
  • 可观测性 - 提供对 AI 相关操作的洞察。
  • 数据工程中的文档注入 ETL 框架
  • AI 模型评估 - 提供实用工具来评估生成的内容,并防止出现幻觉式响应。
  • ChatClient API - 用于与 AI 聊天模型通信的流畅 API,其语法风格类似于 WebClient 和 RestClient API。
  • 顾问 API - 封装了常见的生成式 AI 模式,转换发送给语言模型 (LLM) 和从语言模型返回的数据,并实现跨不同模型和用例的可移植性。
  • 支持 聊天对话记忆检索增强生成 (RAG)
  • Spring Boot 自动配置和启动器,适用于所有 AI 模型和向量存储 - 使用 start.spring.io 选择您所需的模型或向量存储。

入门指南

请参阅 入门指南 以了解如何添加依赖项。

项目资源

  • Awesome Spring AI - 一个精选的资源、工具、教程和项目列表,用于使用 Spring AI 构建生成式 AI 应用程序
  • Spring AI 示例 包含详细解释特定功能的示例项目。
  • Spring AI 社区 - 一个由社区驱动的组织,致力于构建基于 Spring 的 AI 模型、智能体、向量数据库等集成。

重大变更

  • 请参阅 升级说明 以了解如何升级到 1.0.0.M1 或更高版本。

克隆仓库

该仓库包含大型模型文件。 要克隆它,您需要:

  • 忽略大文件(不会影响 spring-ai 的行为):GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:spring-projects/spring-ai.git
  • 或者在克隆仓库之前安装 Git Large File Storage

构建

该项目的目标和构建产物兼容 Java 17 及以上版本,但需要使用 JDK 21 才能进行构建。这一点由 Maven Enforcer 插件强制执行。

要构建并运行单元测试:

./mvnw clean package

要构建并包含集成测试:

./mvnw clean verify -Pintegration-tests

请注意,在运行测试之前,您应设置 OpenAI 或其他模型提供商的 API 密钥环境变量。如果未为特定的模型提供商设置 API 密钥,则会跳过相应的集成测试。

要运行特定的集成测试,并允许最多两次重试以成功。这在托管服务不可靠或超时时非常有用:

./mvnw -pl vector-stores/spring-ai-pgvector-store -am -Pintegration-tests -Dfailsafe.failIfNoSpecifiedTests=false -Dfailsafe.rerunFailingTestsCount=2 -Dit.test=PgVectorStoreIT verify

集成测试

集成测试数量众多,因此通常不可能一次性全部运行。

可以通过 -Pci-fast-integration-tests 配置文件快速遍历最重要的路径,运行以下集成测试:

  • OpenAI 模型
  • OpenAI 自动配置
  • PGVector
  • Chroma

此配置文件用于本项目的主 CI 构建中。

完整的集成测试每天会在 Spring AI 集成测试仓库 中执行两次。

一种仅对部分代码运行集成测试的方法是先快速编译并安装项目:

./mvnw clean install -DskipTests -Dmaven.javadoc.skip=true

然后使用 -pl 选项为特定模块运行集成测试:

./mvnw verify -Pintegration-tests -pl spring-ai-spring-boot-testcontainers

文档

要构建文档:

./mvnw -pl spring-ai-docs antora

生成的文档位于 spring-ai-docs/target/antora/site/index.html 目录下。

源代码格式化

代码在构建过程中会使用 java-format 插件 进行格式化。正确的格式由 CI 强制执行。

更新许可证头

要使用 license-maven-plugin 更新许可证头中的年份:

./mvnw license:update-file-header -Plicense

Javadoc

要使用 javadoc:javadoc 检查 Javadoc:

./mvnw javadoc:javadoc

源代码风格

Spring AI 的源代码 Checkstyle 检查试图遵循 Spring 核心框架项目所使用的 Checkstyle 指南,但也有一些例外。维基页面 代码风格IntelliJ IDEA 编辑器设置 定义了我们使用的源文件编码标准以及我们自定义的一些 IDEA 编辑器设置。

手动运行 Checkstyle:

./mvnw process-sources -P checkstyle-check

贡献

您的贡献始终受到欢迎!请先阅读贡献指南

版本历史

v2.0.0-M42026/03/26
v1.1.42026/03/26
v1.0.52026/03/26
v2.0.0-M32026/03/17
v1.1.32026/03/17
v1.0.42026/03/17
v2.0.0-M22026/01/23
v2.0.0-M12025/12/11
v1.1.22025/12/09
v1.1.12025/12/05
v1.1.02025/11/12
v1.1.0-RC12025/11/08
v1.1.0-M42025/11/03
v1.1.0-M32025/10/15
v1.0.32025/10/01
v1.1.0-M22025/09/22
v1.0.22025/09/17
v1.1.0-M12025/09/09
v1.0.12025/08/08

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|5天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|5天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

150k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|昨天
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|4天前
插件开发框架