首届AICon深圳正式启动|AI实践哪家强?来 AICon,解锁技术前沿,探寻产业新机! 了解详情
写点什么

Spring AI 1.0 发布,通过广泛的模型支持以简化 AI 应用的开发

  • 2025-05-31
    北京
  • 本文字数:2361 字

    阅读完需:约 8 分钟

大小:898.95K时长:05:06
Spring AI 1.0发布,通过广泛的模型支持以简化AI应用的开发

Spring 团队宣布 Spring AI 1.0正式发布,该框架旨在简化 Java 和 Spring 生态系统中 AI 驱动应用程序的开发。该版本经过两年多的开发和八个里程碑版本的迭代,提供了稳定的 API。它集成了聊天、图像生成和转录等多种 AI 模型。主要功能包括可移植的服务抽象、通过向量数据库支持检索增强生成(Retrieval Augmented Generation,RAG)以及函数调用的工具。Spring AI 1.0 通过与现有的 Spring 模式和更广泛的 Spring 生态系统保持一致,使开发人员能够构建可扩展的、生产就绪的 AI 应用程序。

 

Spring AI 为多个AI模型和提供商提供了开箱即用的支持。该框架通过统一的 API 层集成了主要的生成式 AI 提供商,包括 OpenAI、Anthropic、Microsoft Azure OpenAI、Amazon Bedrock 和 Google Vertex AI。它支持各种模式的模型类型,包括聊天完成嵌入图像生成音频转录文本到语音合成和内容管理。这样,开发人员就能将基于 GPT 的聊天机器人、图像创建或语音识别等功能集成到 Spring 应用程序中。

 

该框架提供了可移植的服务的抽象,将应用代码与特定的 AI 提供商分离开来。它的 API 能够方便地在模型提供商之间进行切换(例如从 OpenAI 到 Anthropic),只需最少的代码改动,同时还保留对特定模型功能的访问。Spring AI 支持结构化输出,将 AI 模型响应映射到普通的、老式的 Java 对象(POJO),以便进行类型安全的处理。

 

对于检索增强生成(RAG),Spring AI 通过一致的向量存储 API 实现了与各种向量数据库(包括 Cassandra、PostgreSQL/PGVector、MongoDB Atlas、Milvus、Pinecone 和 Redis)的集成,使应用程序能够在企业数据中实现 LLM 响应。该框架还包括对工具和函数调用API的支持,允许 AI 模型以标准化的方式调用函数或外部工具,以解决 “文档问答 ”或 “数据聊天”等使用场景。

 

Spring AI 1.0 包含了对模型上下文协议(Model Context Protocol,MCP)的支持,这是一个新兴的开放标准,用于 AI 模型(尤其是 LLM)与外部工具或资源之间的结构化、语言无关的交互。Spring 团队将其 MCP 实现贡献给了ModelContextProtocol.io,作为 MCP 服务的官方 Java SDK。这体现了 Spring AI 对开放标准和互操作性的关注。

 

为了优化 MCP 的集成,Spring AI 提供了专用的客户端和服务器 Spring Boot starter,使模型能够便利地与气象服务示例等工具实现交互:

import org.springframework.ai.tool.annotation.Tool;import org.springframework.stereotype.Component;

@Componentpublic class WeatherTool {

@Tool(name = "getWeather", description = "Returns weather for a given city") public String getWeather(String city) { return "The weather in " + city + " is 21°C and sunny."; }}
复制代码

 

这些 starter 分类如下:

  • 客户端 starter: spring-ai-starter-mcp-client(提供 STDIO 和基于 HTTP 的 SSE 的核心支持)和 spring-ai-starter-mcp-client-webflux(为反应式应用提供基于 WebFlux 的 SSE 传输)。

  • 服务器 starter:spring-ai-starter-mcp-server(提供核心 STDIO 传输支持)、spring-ai-starter-mcp-server-webmvc(在 servlet 应用程序中提供基于 Spring MVC 的 SSE 传输)和 spring-ai-starter-mcp-server-webflux(在反应式应用程序中提供基于 WebFlux 的 SSE 传输)。

 

开发人员可以使用Spring Initializr开始新的 Spring AI 1.0 项目,它能够预先配置必要的依赖关系。在类路径中包含所需的 Spring AI starter,可让 Spring Boot 自动配置所需的客户端或服务。

 

下面是一个简单聊天控制器的示例:

import org.springframework.ai.chat.client.ChatClient;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class ChatController {

private final ChatClient chatClient;

public ChatController(ChatClient.Builder chatClientBuilder) { this.chatClient = chatClientBuilder.build(); }

@GetMapping("/ask") public String ask(@RequestParam String question) { return chatClient.prompt() .user(question) .call() .content(); }}
复制代码

要运行上述示例,至少需要在application.properties中设置以下键值对:

spring.ai.openai.api-key=YOUR_API_KEYspring.ai.openai.chat.model=gpt-4
复制代码

 

Spring AI 为常见的 AI 应用模式引入了更高层级的 API。流畅ChatClient API 为聊天模型交互提供了类型安全的构建器。此外,Advisors API 封装了经常出现的生成式 AI 模式,如检索增强、会话记忆和问题解答工作流。例如,可以通过将ChatClientQuestionAnswerAdvisor结合来实现 RAG 流程:

 

ChatResponse response = ChatClient.builder(chatModel)        .build()        .prompt()        .advisors(new QuestionAnswerAdvisor(vectorStore))        .user(userText)        .call()        .chatResponse();
复制代码

 

在该样例中,QuestionAnswerAdvisorVectorStore中执行相似性搜索,将相关上下文添加到用户提示中,并将充实后的输入转发给模型。带有类似 SQL 过滤器的可选SearchRequest可以限制对文档的搜索。

 

该版本集成了可观测性Micrometer,允许开发人员监控 AI 驱动的应用程序。这些集成有助于将 AI 功能嵌入到基于 Spring 的项目中,用于各种应用,包括实时聊天、图像处理和转录服务。

 

如需了解更多信息,开发人员可浏览Spring AI项目的页面,或从start.spring.io开始构建 Spring AI 应用。该版本为 Java 开发人员提供了集成 AI 功能的解决方案,具有可扩展性并与惯用的 Spring 开发模式相匹配。

 

原文链接:

Spring AI 1.0 Released, Streamlines AI Application Development with Broad Model Supp

2025-05-31 08:007164

评论

发布
暂无评论

Kubernetes生态系统与演进路线

博文视点Broadview

西部首个国家级车联网先导区获批,EMQ 联手中国移动打造 5G 交通生态链

EMQ映云科技

自动驾驶 车联网 5G 移动 emq

月薪10K码农,跳槽到40K架构师,技术学习路线图汇总

小傅哥

Java 学习 运维 大前端 后端

缓存和数据库一致性问题,看这篇就够了

Kaito

数据库 redis 缓存 后端 一致性

飞桨中国行走进成都 与当地企业共话制造智能化升级

百度大脑

人工智能 飞桨

一年数十万次实验背后的架构与数据科学

百度Geek说

人工智能 架构 数据科学

企业为什么要建设自有即时通讯软件系统

BeeWorks

阅读

架构训练营模块七作业

喻高咏        

架构训练营 模块七

【LeetCode】检查平衡性Java题解

Albert

算法 LeetCode 9月日更

2021 Atlassian 大中华区用户大会来袭!

Atlassian

DevOps 敏捷 Atlassian Jira 敏捷精益

华为云GuassDB(for Redis)发布全新版本,两大核心特性正式亮相

华为云开发者联盟

数据库 华为云 GuassDB(for Redis) Lua脚本 SSL连接加密

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之模块管理(十四)

crudapi

Vue API crud crudapi qusar

【OpenIM原创】C/C++调用golang函数,golang回调C/C++函数

OpenIM

新来的前端小姐姐问:Vue路由history模式刷新页面出现404问题

华为云开发者联盟

node.js Vue hash 404 history 模式

手撸二叉树之二叉树的直径

HelloWorld杰少

九月

1ms的时延,10Gbps速率…5G通信技术解读

华为云开发者联盟

5G 物联网 通信 网络架构 网络切片

web技术分享| webRTC 媒体流录制

anyRTC开发者

音视频 WebRTC 流媒体 web技术 流媒体录制

如何借助腾讯云简单、高效移动开发

腾讯云数据库

数据库 tdsql

TDSQL Inside:从腾讯的分布式数据库能力到行业的能力

腾讯云数据库

数据库 tdsql

TDSQL-A,全力应对海量数据实时分析需求

腾讯云数据库

数据库 tdsql

springboot vue二手交易市场毕设源码

清风

毕业设计

华云大咖说 | 华云数据企业开发测试平台解决方案

华云数据

资深Linux系统管理员常用的15个很好用的Cron工作示例

华为云开发者联盟

Linux Linux Cron 工作示例 应用程序 工作调度

【架构训练营】模块七作业

zclau

《联想发布绿色智城解决方案,加速城市绿色低碳转型发展》

科技大数据

【Flutter 专题】52 图解可折叠状态栏

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

腾讯私有云MySQL解决方案—TDSQL

腾讯云数据库

数据库 tdsql

架构实战营 - 模块 7 - 王者荣耀商城异地多活架构设计

雪中亮

架构实战营 #架构实战营

王者荣耀商城异地多活分析-模块7

小牧ah

架构实战营

C#多线程开发-任务并行库04

Andy阿辉

C# asp.net 多线程 多线程并发

干货 | TDSQL-A核心架构揭秘

腾讯云数据库

数据库 tdsql

Spring AI 1.0发布,通过广泛的模型支持以简化AI应用的开发_后端_A N M Bazlur Rahman_InfoQ精选文章