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
应用开发场景的建设。
扫码关注有惊喜!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
从「1024Foundation + OpenPie拓数派“AI 向善”」到「OpenAI 重组」
不少读者都提到过 1024 数字产业基金会与 OpenPie拓数派 二者的关系。拓数派开创了数据计算系统(PieDataCS),并且敏锐察觉到,随着该系统对智能体 AI 的深入发展,AI 安全以及 AI 引发的财富分配不均问题不容小觑。因此,在创立拓数派商业公司前,便率先设立了 1024 数字产业基金会,在第一天便注入了 ESG 理念(即 Environmental /环境、Social /社会和 Governance /治理),此后这两个姊妹机构携手共进、协同发展。 企业在消除 AI 带来的社会不平等应有义不容辞的责任。1024 数字产业基金会联手拓数派发起“AI for All Initiative (AI4AI) 普及公益”,获得了 CMU 上海校友会、中国电子、中船海舟、浙江平数、复旦大学、哈尔滨工业大学、上海大学、文绮汇点美高中学等合作伙伴的大力支持,参与的志愿者从中学生、教育工作者到企业高管,大家的共同目标是“AI 向善”,让技术红利普及到所有人。此外,1024 数字产业基金会也联合 CMU 大学等世界 AI 领先机构,以公益方式讨论未来模型的构建。 AI4AI AI向...
- 下一篇
开源协议专题二:GPL协议的法律解析(上)
一、引言 严格开源协议具体可以分为强传染性和弱传染性两类,前者包括GPL(GNU通用公共许可证)等,后者则包括MPL(Mozilla公共许可证)等。二者的区别在于:强传染性协议(GPL)要求任何基于该协议发布的软件及其衍生作品都必须以相同的许可条款发布,确保整个项目的源代码开放;而弱传染性协议(MPL)则允许部分代码在特定条件下保持闭源,但仍然要求某些核心部分或修改的部分保持开源。 GPL协议共有三个版本,本文将以《GNU通用公共许可证第三版》(GNU General Public License version 3,以下简称GPL v3)为例,分为上下两篇详细探讨其主要内容和法律性质。上篇将重点介绍GPL v3的主要条款,旨在提供一个全面的理解框架。鉴于传染性条款的重要性及其对开源社区的影响,下篇将专门探讨这一关键条款,深入分析其法律含义和应用。 二、概述 GPL v3是自由软件基金会(Free Software Foundation, FSF)于2007年发布的开源软件许可协议,旨在确保软件的自由使用、修改和分发。它与前两版的内容对比如下: 对比项目 GPL v1(1989年发布)...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群