Spring AI 项目介绍

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: Spring AI 是为 Java 开发者量身打造的 AI 应用开发框架,提供统一的 API 抽象层,支持多种 AI 模型和向量数据库,具备企业级特性和完整的 Spring 生态集成。

Spring AI 是一个为开发 AI 应用程序提供 Spring 友好的 API 和抽象层的项目。它将 Spring 生态系统的设计原则(如可移植性和模块化设计)应用到 AI 领域,并促进使用 POJO 作为 AI 应用程序的构建块。

核心理念 💡

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

技术架构层次 🏛️

图1:Spring AI 技术架构层次图

快速开始(以Ollma为例) 🚀

1. 添加依赖

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-ollama</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

2. 使用 OllamaChatModel

package cn.jishuba;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.ai.ollama.api.OllamaApi;
import org.springframework.ai.ollama.api.OllamaOptions;
public class App
{
    public static void main( String[] args )
    {
        // 指定Ollama API的地址
        OllamaApi ollamaApi = OllamaApi.builder()
                .baseUrl("http://localhost:11434")
                .build();
        // 创建Ollama聊天模型
        ChatModel model = OllamaChatModel.builder()
                .defaultOptions(OllamaOptions.builder()
                        .model("qwen2.5:latest")
                        .build())
                .ollamaApi(ollamaApi)
                .build();
        // 创建聊天客户端
        ChatClient chatClient = ChatClient.builder(model)
                .build();
        String response = chatClient.prompt()
                            .user("你好,讲个关于Java的笑话")
                            .call()
                            .content();
        System.out.println(response);
    }
}

整体架构 🏗️

图2:Spring AI 核心架构与生态系统

主要功能模块 🎯

1. AI 模型支持 🤖

支持的模型类型

  • 聊天完成 (Chat Completion) 💬
  • 嵌入 (Embedding) 🔗
  • 文本转图像 (Text to Image) 🎨
  • 音频转录 (Audio Transcription) 🎵
  • 文本转语音 (Text to Speech) 🔊
  • 内容审核 (Moderation) 🛡️

支持的提供商

提供商 模块名称 支持功能
OpenAI spring-ai-openai 聊天、嵌入、图像、音频
Anthropic spring-ai-anthropic 聊天、嵌入
Azure OpenAI spring-ai-azure-openai 聊天、嵌入、图像
AWS Bedrock spring-ai-bedrock 聊天、嵌入
Google Gemini spring-ai-vertex-ai-gemini 聊天、嵌入
Ollama spring-ai-ollama 本地部署聊天模型
DeepSeek spring-ai-deepseek 聊天、嵌入
Minimax spring-ai-minimax 聊天
智谱AI spring-ai-zhipuai 聊天、嵌入

2. 向量数据库支持 🗄️

支持的向量数据库

数据库 模块名称 特性
PostgreSQL/PGVector spring-ai-pgvector-store 🐘 开源、SQL兼容
Chroma spring-ai-chroma-store 🎨 轻量级、易用
Pinecone spring-ai-pinecone-store 🌲 云原生、高性能
Redis spring-ai-redis-store 🔴 内存存储、高速
Elasticsearch spring-ai-elasticsearch-store 🔍 全文搜索
MongoDB Atlas spring-ai-mongodb-atlas-store 🍃 文档数据库
Neo4j spring-ai-neo4j-store 🔗 图数据库
Apache Cassandra spring-ai-cassandra-store 🔧 分布式
Weaviate spring-ai-weaviate-store 🕸️ 向量搜索

3. 核心功能组件 ⚙️

ChatClient API 💬

  • 流式 API,类似于 WebClient 和 RestClient
  • 支持同步和异步调用
  • 内置对话记忆管理
  • 支持 RAG (检索增强生成)

Advisors API 🎯

  • 封装常见的生成式 AI 模式
  • 转换发送到/从语言模型的数据
  • 提供跨不同模型的可移植性

工具/函数调用 🛠️

  • 允许模型请求执行客户端工具和函数
  • 访问实时信息
  • 扩展 AI 应用的功能边界

观测性 📊

  • 提供 AI 相关操作的洞察
  • 监控模型性能和使用情况
  • 集成 Spring Boot Actuator

4. 数据处理 📈

ETL 框架

  • 文档注入 ETL 框架
  • 数据工程支持
  • 文档读取器:
  • jsoup-reader - HTML 解析
  • markdown-reader - Markdown 文档
  • pdf-reader - PDF 文档
  • tika-reader - 多格式文档

结构化输出

  • AI 模型输出到 POJO 的映射
  • 类型安全的响应处理

模块关系图 🔄

图3:Spring AI 模块关系与依赖图

主要特性 ✨

🔧 可移植性

  • 统一的 API 抽象,轻松切换不同的 AI 提供商
  • 标准化的配置方式

🎯 Spring 集成

  • 完整的 Spring Boot 自动配置
  • 依赖注入支持
  • Spring 生态系统兼容

📈 可扩展性

  • 模块化设计,按需选择组件
  • 插件式架构,易于扩展

🛡️ 企业级

  • 完整的观测性支持
  • 错误处理和重试机制
  • 生产就绪的特性

🌐 多语言支持

  • 不仅限于 Python 开发者
  • Java 生态系统的完整支持

总结 🎉

Spring AI 为 Java 开发者提供了一个强大、灵活、易于使用的 AI 应用开发框架。通过其模块化设计和 Spring 生态系统的深度集成,开发者可以快速构建生产级的 AI 应用程序,同时保持代码的可维护性和可扩展性。

无论您是要构建聊天机器人、知识问答系统、还是复杂的 AI 工作流,Spring AI 都为您提供了必要的工具和抽象层,让您专注于业务逻辑的实现,而不是底层的 AI 模型集成细节。

相关文章
|
9天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
614 42
|
1月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
793 133
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
1月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
486 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
1月前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
928 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
2月前
|
JSON 人工智能 Java
基于Spring AI构建智能Text-to-SQL转换器:一个完整的MCP
Spring AI 更新结构化输出转换器,弃用旧版 Parser 类,引入与 Spring 框架对齐的 Converter 体系,提升命名规范与功能兼容性。新版本支持 JSON、XML 及 Java 对象转换,确保 LLM 输出结构化,便于下游应用处理。
|
1月前
|
人工智能 Java 数据库
Spring AI
Spring AI 为 Java 生态注入智能,提供统一抽象接口,简化大模型集成,助力开发者高效构建 AI 应用,推动企业智能化转型。
437 147
|
10天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
931 29
|
1月前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
1月前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
920 58