首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring AI 项目介绍

Spring AI 项目介绍

原创
作者头像
martinzh7
发布2025-07-07 11:27:59
发布2025-07-07 11:27:59
31700
代码可运行
举报
运行总次数:0
代码可运行

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

核心理念 💡

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

技术架构层次 🏛️

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

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

快速开始(以Ollma为例) 🚀

1. 添加依赖

代码语言:javascript
代码运行次数:0
运行
复制
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-ollama</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

2. 使用 OllamaChatModel

代码语言:javascript
代码运行次数:0
运行
复制
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 核心架构与生态系统
图2:Spring AI 核心架构与生态系统

图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 模块关系与依赖图
图3:Spring AI 模块关系与依赖图

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

主要特性 ✨

🔧 可移植性

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

🎯 Spring 集成

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

📈 可扩展性

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

🛡️ 企业级

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

🌐 多语言支持

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

总结 🎉

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心理念 💡
  • 技术架构层次 🏛️
  • 快速开始(以Ollma为例) 🚀
    • 1. 添加依赖
    • 2. 使用 OllamaChatModel
  • 整体架构 🏗️
  • 主要功能模块 🎯
    • 1. AI 模型支持 🤖
      • 支持的模型类型
      • 支持的提供商
    • 2. 向量数据库支持 🗄️
      • 支持的向量数据库
    • 3. 核心功能组件 ⚙️
      • ChatClient API 💬
      • Advisors API 🎯
      • 工具/函数调用 🛠️
      • 观测性 📊
    • 4. 数据处理 📈
      • ETL 框架
      • 结构化输出
  • 模块关系图 🔄
  • 主要特性 ✨
    • 🔧 可移植性
    • 🎯 Spring 集成
    • 📈 可扩展性
    • 🛡️ 企业级
    • 🌐 多语言支持
  • 总结 🎉
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档