Spring Cloud Alibaba AI 入门与实践

一、概述
Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。
- 可参考文章《SpringAI:Java 开发的智能新利器》
Spring Cloud Alibaba AI 是一个将 Spring Cloud 微服务生态与阿里巴巴 AI 能力无缝集成的框架,帮助开发者快速构建具备 AI 功能的现代化应用。本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个 在线聊天 和 在线画图 的 AI 应用。
二、主要特性和功能
Spring Cloud Alibaba AI 目前基于 Spring AI 0.8.1 版本 API 完成通义系列大模型的接入。通义接入是基于阿里云 阿里云百炼 服务;而 阿里云百炼 建立在 模型即服务(MaaS) 的理念基础之上,围绕 AI 各领域模型,通过标准化的 API 提供包括模型推理、模型微调训练在内的多种模型服务。
主要提供以下核心功能:
2.1. 简单易用的集成
通过 Spring Boot 风格的自动配置机制,开发者只需少量代码配置,即可快速接入阿里云的 AI 服务。
2.2. 丰富的 AI 服务支持
支持以下核心能力:
- 自然语言处理(NLP):文本分析、智能问答、翻译。
- 计算机视觉(CV):图像生成、图像识别、目标检测。
- 语音处理:语音识别、语音合成。
- 数据分析与预测:数据建模、趋势分析。
2.3. 高度扩展性
通过配置中心和注册中心(如 Nacos)实现动态扩展,支持微服务架构的扩展需求。
提供接口定义,方便接入第三方 AI 平台。
三、构建 AI 应用
Spring Cloud Alibaba AI 对 Java 版本有要求,所以需要提前预装好 Java 17 环境。
3.1. 申请 API-KEY
登录阿里云,进入 阿里云百炼 的页面:
https://bailian.console.aliyun.com/?apiKey=1#/api-key
创建自己的 API-KEY

3.2. 添加依赖
在 Spring Boot 项目的 pom.xml 中添加 alibaba-ai 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-ai</artifactId>
</dependency>
<repositories>
<repository>
<id>alimaven</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
<repository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
3.3. 配置 API-KEY
在 application.yml 中配置 Kafka 的相关属性,包括服务器地址、认证信息等。
spring:
cloud:
ai:
tongyi:
connection:
api-key: sk-xxxxxx
api-key配置在阿里云百炼里申请的api-key
3.4. 创建模型调用服务
@Service
@Slf4j
public class TongYiSimpleService {
@Resource
private TongYiChatModel chatClient;
@Resource
private TongYiImagesModel imageClient;
public String chat(String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return chatClient.call(prompt).getResult().getOutput().getContent();
}
public String image(String message) {
ImagePrompt prompt = new ImagePrompt(message);
Image image = imageClient.call(prompt).getResult().getOutput();
return image.getB64Json();
}
}
聊天和图片的服务,分别通过注入
TongYiChatModel和TongYiImagesModel对象来实现,屏蔽底层通义大模型交互细节。
3.5. 创建controller
@RestController
@RequestMapping("/ai")
public class TongYiController {
@Resource
private TongYiSimpleService tongYiSimpleService;
@GetMapping("/chat")
public String chat(@RequestParam(value = "message") String message) {
return tongYiSimpleService.chat(message);
}
@GetMapping("/image")
public ResponseEntity<byte[]> image(@RequestParam(value = "message") String message) {
String b64Str = tongYiSimpleService.image(message);
byte[] imageBytes = Base64.getDecoder().decode(b64Str);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<>(imageBytes, headers, HttpStatus.OK);
}
}
3.6. 测试效果
3.6.1. 聊天接口
在浏览器输入:http://localhost:8009/ai/chat?message=你是谁

3.6.2. 图片接口
在浏览器输入:http://localhost:8009/ai/image?message=意大利面拌42号混凝土

3.6.3. 搭配聊天页面

四、总结
当前版本的 Spring Cloud Alibaba AI 主要完成了几种常见生成式模型的适配,涵盖对话、文生图、文生语音等。在未来的版本中将继续推进 VectorStore、Embedding、ETL Pipeline、RAG 等更多 AI 应用开发场景的建设。
Spring Cloud Alibaba AI 入门与实践的更多相关文章
- Spring Cloud Alibaba(1)---入门篇
Spring Cloud Alibaba入门篇 有关微服务的一些概念的东西我这里就不再阐述了,因为之前在写Spring Cloud系列的时候都有详细写过. 具体地址: Spring Cloud系列博客 ...
- Spring Cloud Alibaba 从入门到精通(2023)
Alibaba Cloud 简介 Spring Cloud Alibaba 即 Alibaba Cloud ,基于 Spring Cloud 构建,同时封装了阿里巴巴的 Nacos.Sentinel ...
- Spring Cloud Alibaba Nacos 入门
概览 阿里巴巴在2018年7月份发布Nacos, Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台.并表示在6-8个月完成到生产可用的0.8版本,目前版本是0.9版本. Na ...
- Spring Cloud Alibaba 实战(十二) - Nacos配置管理
本章主要内容是:使用Nacos管理配置以及实现配置管理的原因,配置如何管理以及动态刷新和最佳实现总结,最后是Nacos配置刷新原理解读 该技术类似于Spring Cloud Config 1 配置管理 ...
- Spring Cloud Alibaba 实战(十三) - Sleuth调用链监控
本文概要:大白话剖析调用链监控原理,然后学习Sleuth,Zipkin,然后将Sleuth整合Zipkin,最后学习Zipkin数据持久化(Elasticsearch)以及Zipkin依赖关系图 实战 ...
- Spring Cloud Alibaba 实战(十一) - Spring Cloud认证授权
欢迎关注全是干货的技术公众号:JavaEdge 本文主要内容: 如何实现用户认证与授权? 实现的三种方案,全部是通过画图的方式讲解.以及三种方案的对比 最后根据方案改造Gateway和扩展Feign ...
- Spring Cloud Alibaba(4)---Nacos(注册中心)
Nacos(注册中心) 有关Spring Cloud Alibaba之前写过三篇文章. Spring Cloud Alibaba(1)---入门篇 Spring Cloud Alibaba(2)--- ...
- Spring Cloud Alibaba(5)---Nacos(配置中心)
Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...
- Spring Cloud Alibaba(8)---Feign服务调用
Feign服务调用 有关Spring Cloud Alibaba之前写过五篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring Clo ...
- Spring Cloud Alibaba入门实战之nacos(一)
Spring Cloud Alibaba入门实战之nacos(一) 前情介绍 Spring Cloud Alibaba 是阿里巴巴提供的新一代的微服务解决方案,相信会有越来越多采用微服务架构的公司 ...
随机推荐
- DC-1内网靶机入门
DC-1 1.安装dc-1 靶机 2.内网扫描 查看主机IP ip a ifconfig nmap扫描全网段 nmap -A -p- -v 192.168.27.0/24 -A 选项会执行操作系统探测 ...
- ansible批量部署apache
ansible批量部署apache 目录 ansible批量部署apache 安装ansible 基于ansible进行基础准备 配置受控端本地软件仓库 安装受控端Apache(httpd)的最新版本 ...
- 一文彻底熟练掌握并使用Java的NIO操作
一.基本概念 Java NIO 是 Java 1.4 引入的,用于处理高速.高并发的 I/O 操作.与传统的阻塞 I/O 不同,NIO 支持非阻塞 I/O 和选择器,可以更高效地管理多个通道. 二.核 ...
- Abp源码分析之Abp本地化
aspnetcore mvc 实现本地化 新建mvc项目 修改Program.cs using Microsoft.AspNetCore.Localization; using Microsoft.A ...
- 基于YOLO实现滑块验证码破解
申明:本案例中的思路和技术仅用于学习交流.请勿用于非法行为. 一.训练模型 详细训练步骤和导出模型参考 滑块验证码识别模型训练 二.模型试用 通过YoloDotNet运行模型,计算出滑块缺口位置后用R ...
- sql注入-数据库表基本操作
一.数据库 linux下登录: mysql -u root -p 查看数据库: show databases; 可以在phpmyadmin面板点击SQL进行操作 1. 增加/创建 创建xxx数据库,并 ...
- Echarts 提示组件
1.开启指示器 默认情况下,指示器是关闭状态,如果需要开启,直接配置tooltip字段即可 var option = { tooltip:{}, } 2.指示器的触发类型 触发类型的字段为trigge ...
- 全球气象数据ERA5的下载方法
本文介绍在ERA5气象数据的官方网站中,手动下载.Python代码自动批量下载逐小时.逐日与逐月的ERA5气象数据各类产品的快捷方法. ERA5(fifth generation ECMWF ...
- 前端17号学习(html完结)
一.路径 1.目录文件夹和跟目录 实际工作中需要创建一个文件夹来管理他们. 目录文件夹,就是普通文件夹,里面存放页面相关素材,如html文件.图片等. 根目录,打开目录文件夹的第一层就是根目录. 2. ...
- RabbitMQ 快速入门
RabbitMQ 快速入门 官网:https://www.rabbitmq.com/ 入门教程:https://www.rabbitmq.com/tutorials 最新版本:4.0.2 版本参考:J ...