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 模型集成细节。

相关文章
|
2月前
|
人工智能 前端开发 机器人
10+热门 AI Agent 框架深度解析:谁更适合你的项目?
选型Agent框架不等于追热门!要选真正能跑得稳、适配团队能力与业务需求的框架。架构选错,轻则性能差,重则项目难推进。本文详解10大热门框架对比、5大新兴框架推荐及四步选型法,助你高效落地AI应用。
|
1月前
|
人工智能 IDE 开发工具
通义灵码 AI IDE使用体验(3)项目优化及bug修复
本文介绍了使用通义灵码 AI IDE进行项目重构与优化的全过程,涵盖页面调整、UI更新、功能修复等内容,并展示了多次优化后的成果与仍存在的问题。
173 0
|
人工智能 自然语言处理 IDE
通义灵码 AI IDE使用体验(1)项目初创
通义灵码 AI IDE上线,作为AI IDE的重度使用者怎能错过?本文详细体验了从安装到项目开发的全过程,界面友好,操作简便,支持智能问答、文件编辑、智能体三种模式。通过智能体方式快速开发项目,自动规划功能、管理环境,虽在复杂项目中仍有提升空间,但整体体验流畅,适合开发者尝试。
324 0
|
1月前
|
人工智能 IDE 开发工具
通义灵码 AI IDE使用体验(2)项目重构
本文介绍了如何使用灵码IDE将一个简单的CS架构项目重构为BS架构,涉及项目依赖修改、功能迁移、自动开发Web页面等内容,验证了灵码在复杂开发任务中的能力。尽管界面美观度不足,但核心功能已实现。
264 66
|
2月前
|
机器学习/深度学习 人工智能 数据可视化
基于YOLOv8的AI虫子种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8与PyQt5开发,实现虫子种类识别,支持图片、视频、摄像头等多种输入方式,具备完整训练与部署流程,开箱即用,附带数据集与源码,适合快速搭建高精度昆虫识别系统。
基于YOLOv8的AI虫子种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
1月前
|
人工智能 自然语言处理 负载均衡
排期延误预警:用AI预测项目风险的3层模型搭建教程
本文介绍了如何通过 AI 智能排期将项目排期误差减少 40% 以上。文章剖析了传统排期中常见的经验依赖、资源冲突、需求变更和进度滞后四大痛点,提出 AI 排期的三步落地方法:历史数据建模、动态适配需求、资源智能匹配,并推荐适配不同团队的 AI 排期工具。强调 AI 是辅助而非替代,核心在于用数据驱动提升排期准确性,帮助团队告别“拍脑袋估期”,实现高效、可控的项目管理。
排期延误预警:用AI预测项目风险的3层模型搭建教程
|
21天前
|
人工智能 自然语言处理 JavaScript
Github又一AI黑科技项目,打造全栈架构,只需一个统一框架?
Motia 是一款现代化后端框架,融合 API 接口、后台任务、事件系统与 AI Agent,支持 JavaScript、TypeScript、Python 多语言协同开发。它提供可视化 Workbench、自动观测追踪、零配置部署等功能,帮助开发者高效构建事件驱动的工作流,显著降低部署与运维成本,提升 AI 项目落地效率。
119 0
|
2月前
|
数据采集 人工智能 文字识别
企业级AI项目未达预期:非结构化数据处理背后有何玄机?
企业级AI项目常因数据质量不佳未能达到预期,其中非结构化数据的处理是关键瓶颈。三桥君指出,PDF等非结构化文档包含大量表格、图表和公式等复杂元素,传统OCR技术难以有效提取。为解决这一难题,现代文档解析工具应具备多模态解析能力,能精确提取复杂元素并保持原始结构。文档质量直接影响AI模型效果,高质量结构化数据可显著提升模型性能。
66 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
掌握这5大要素,开启AI项目落地的成功之门
在AI浪潮下,大模型成为企业转型的关键动力。本文三桥君探讨了AI项目落地的挑战与潜力,并提出五大成功要素:业务热情、认清AI能力、编程能力、小处着手与老板耐心。通过合理选择应用场景,企业可有效推动AI技术融入业务,实现效率提升与决策优化,助力持续发展。
101 3