在当今这个由人工智能(AI)驱动的时代,AI 技术正在以前所未有的速度改变着我们的工作和生活方式。对于 Java 开发者来说,将 AI 能力集成到他们的应用程序中,已经成为了一个迫切的需求。阿里云开源的 Spring AI Alibaba 框架,正是为了满足这一需求而生。本文将详细介绍 Spring AI Alibaba 的起源、核心特性,并通过一个示例展示其在 AI 应用开发中的便利性。
一、Spring AI Alibaba 的起源
Spring AI Alibaba 是由阿里云开源的一个 AI 应用开发框架,旨在帮助 Java 开发者快速构建 AI 应用。这个框架的诞生背景是生成式 AI 与大模型在过去一年的快速发展。阿里巴巴和 Spring 官方一直保持着非常成功的合作,从微服务时代的 Spring Cloud Alibaba 到如今的 Spring AI Alibaba,两者的合作不断深化,共同推动 Java 生态的发展。
二、核心特性
Spring AI Alibaba 提供了一系列核心特性,以加速和简化 Java 智能体应用的开发:
-
低门槛的智能体开发框架:使用 Spring AI Alibaba 开发应用就像开发一个普通的 Spring Boot 应用,极大地降低了理解成本。
-
通用开发范式的抽象:框架对 AI 智能体应用的通用开发范式做了很好的抽象,从原子能力层次到高层次抽象,如智能体编排、对话记忆等。
-
与通义系列模型的深度适配:框架默认与阿里云通义系列模型做了深度适配,并提供了从部署到运维的最佳实践。
-
标准化接口:Spring AI Alibaba 提供了一套兼容市面上主流生成式 AI 任务(包括文本生成、图像生成及语音合成等)的标准接口,开发者能够轻松接入并切换不同的 AI 后端服务,只需调整少量配置即可完成模型间的转换,极大简化了 AI 功能集成过程。
三、示例:基于 Spring AI Alibaba 开发智能聊天应用
接下来,我们通过一个简单的示例来展示 Spring AI Alibaba 的便利性。这个示例是一个基于通义模型服务的智能聊天应用。
1. 设置开发环境
确保你的 JDK 版本在 17(含)以上,Spring Boot 版本在 3.3.x 以上。
2. 获取并配置 API Key
访问阿里云百炼页面,登录你的账号。选择开通“百炼大模型推理”服务,并等待短信确认。成功开通后,在控制台创建一个新的 API Key,并记录下来以备后续使用。
将获得的 API Key 配置到 application.yaml
文件中:
spring:
ai:
dashscope:
api-key: ${AI_DASHSCOPE_API_KEY}
或者在 application.properties
文件中:
spring.ai.dashscope.api-key=${AI_DASHSCOPE_API_KEY}
3. 添加依赖
由于 Spring AI Alibaba 尚未正式发布到 Maven 中央仓库,你需要先添加特定仓库:
<repositories>
<repository>
<id>sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
然后在项目的 pom.xml
文件中添加以下依赖项:
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter</artifactId>
<version>1.0.0-M2.1</version>
</dependency>
<!-- 其他必要的依赖 -->
</dependencies>
4. 创建 Controller 类
创建一个 ChatController
类来处理聊天请求:
@RestController
@RequestMapping("/ai")
public class ChatController {
private final ChatClient chatClient;
public ChatController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/chat")
public String chat(String input) {
return this.chatClient.prompt().user(input).call().content();
}
}
5. 运行项目
启动示例应用,然后访问 http://localhost:8080/ai/chat?input=给我讲一个笑话吧
,向通义模型提问并得到回答。
四、总结
Spring AI Alibaba 为 Java 开发者提供了一个强大的工具,使得 AI 应用开发变得更加简单和高效。它降低了理解成本,简化了 AI 功能集成过程,并提供了丰富的配置选项和最佳实践。随着 AI 技术的不断进步,Spring AI Alibaba 将继续扩展其功能,帮助开发者构建更加智能和强大的应用程序。
如果你对 Spring AI Alibaba 感兴趣,可以访问其官方网站和 GitHub 仓库了解更多信息。希望本文能够帮助你更好地理解和使用 Spring AI Alibaba,提升你的 AI 应用开发能力。