Spring AI 集成阿里云百炼平台

创建API key

在阿里云百炼平台创建API key设置系统变量。阿里云百炼 api key 创建
在这里插入图片描述

API 参考

官方API地址:https://bailian.console.aliyun.com
(1)在阿里云百炼控制台,选择API参考菜单。
在这里插入图片描述
在这里插入图片描述
API文档从如何获取API key、配置环境变量、安装SDK、对话、通义千问、以及万象文生文、文生图及多模态都进行详细的说明和指导。
下面开始正式的代码部分,通过测试类简要说明对话、多模态应用的集成

1.引入依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId></exclusion></exclusions></dependency><!--阿里百炼--><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter-dashscope</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><version>2.21.1</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.ai/spring-ai-ollama --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama</artifactId><version>0.8.0</version></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId><version>0.8.0</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-bom</artifactId><version>1.0.0.2</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><repositories><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>true</enabled></snapshots></repository></repositories>

2.修改配置文件

spring:application:name: quick-startai:dashscope:api-key: ${DASHSCOPE_API_KEY}base-url: https://dashscope.aliyuncs.com/compatible-mode/v1chat:options:
#          model: wanx-v1  #wanx-v1
#          multi-model: true   #多模态模型model: qwen-turboimage:  #配置图像大模型base-url: https://dashscope.aliyun.com/api/v1/services/aigc/text2image/image-synthesisoptions:model: wanx2.1-t2i-turbo 

这里的ai.chat.model 可以在阿里云百炼平台,选择你想要的模型进行配置。如下图:

在这里插入图片描述
点击每个大模型下面的查看详情,可以查询当前token额度和计费标准。

在这里插入图片描述

3.文生文

@SpringBootTest
public class TestAlibaba {@Autowiredprivate DashScopeChatModel dashScopeChatModel;@Testpublic void testQianwen(){String call = dashScopeChatModel.call("你是谁?");System.out.println(call);}@Testpublic void testQianWenStream(){Flux<String> stream = dashScopeChatModel.stream("你好?");stream.toIterable().forEach(System.out::print);}}

4.文生图

    @Testpublic void testImages(){String prompt = "生成一只橘猫,一只奶牛猫,玩闹的图片";ImageSynthesisParam param =ImageSynthesisParam.builder().apiKey(System.getenv("DASHSCOPE_API_KEY")).model(ImageSynthesis.Models.WANX_V1)  //设置大模型为wanx_v1.prompt(prompt).style("<watercolor>").n(1) //设置生成图片的数量.size("1024*1024")   //设置图片的尺寸.build();ImageSynthesis imageSynthesis = new ImageSynthesis();ImageSynthesisResult result = null;try {System.out.println("---sync call, please wait a moment----");result = imageSynthesis.call(param);} catch (ApiException | NoApiKeyException e){throw new RuntimeException(e.getMessage());}System.out.println(JsonUtils.toJson(result));System.out.println(result.getOutput().getResults().get(0).get("url"));}

返回数据:

{"request_id":"44f028f5-b43c-9ce7-b105-fa052c854dbf","output":{"task_id":"3bbe5e22-fa38-4ef5-ae45-ddc6cc11378f","task_status":"SUCCEEDED","results":[{"url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1d/b0/20250817/f52ecab8/52bd6da2-b099-4c1a-b6f8-f92579b1fb65-1.png?Expires=1755509978&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=fP7de7tkr%2BkG0ouFe7mL7wUijvU%3D"}],"task_metrics":{"TOTAL":1,"SUCCEEDED":1,"FAILED":0}},"usage":{"image_count":1}}

results里面的url是生成图片的地址。
生成图片:

在这里插入图片描述

5.文生语音

文生语音在百炼平台中选择语音合成,目前只有一个cosyvoice-v2大模型
在这里插入图片描述
音频格式支持pmc、wav、MP3、ogg_opus
在这里插入图片描述
常用参数:
voice:可设置音色列表的音色,使用voice参数值
音色列表:
在这里插入图片描述
只是截取部分音色列表,更多请参考官网。

volume:设置音量,取值范围0~100
speechRate:设置语速。范围0.5到2,表示倍速,1为正常语速。

    @Testpublic void testTextToAudio(@Autowired  DashScopeSpeechSynthesisModel speechSynthesisModel){DashScopeSpeechSynthesisOptions build = DashScopeSpeechSynthesisOptions.builder().model("cosyvoice-v2")  //设置大模型.voice("longyingbing")  //设置音色.build();SpeechSynthesisResponse response = speechSynthesisModel.call(new SpeechSynthesisPrompt("大家好我是旺仔小乔", build));File file = new File("F:\\aiTest\\tts" + "\\123.mp3");try(FileOutputStream fileOutputStream = new FileOutputStream(file)){ByteBuffer audio = response.getResult().getOutput().getAudio();fileOutputStream.write(audio.array());}catch (Exception e){e.printStackTrace();}}

测试结果:
在指定位置生成音频文件,指定文本和音色转换为音频。
在这里插入图片描述

6.文生视频

在这里插入图片描述
在这里插入图片描述
常用参数设置:
size:用于设置分辨率,可选参数如下:
在这里插入图片描述
duration:生成视频的时长,单位秒
watermark :是否显示水印,参数true|false。设置true表示生成的视频显示AI生成的水印

   @Testpublic void text2Video() throws ApiException, NoApiKeyException, InputRequiredException{VideoSynthesis videoSynthesis = new VideoSynthesis();VideoSynthesisParam param =VideoSynthesisParam.builder().model("wan2.2-t2v-plus").prompt("海边夕阳西下,海浪翻涌").size("1920*1080").apiKey(System.getenv("DASHSCOPE_API_KEY")).build();System.out.println("please wait...");VideoSynthesisResult result = videoSynthesis.call(param);System.out.println(JsonUtils.toJson(result));System.out.println(result.getOutput().getVideoUrl());}

生成视频格式MP4如下:

ai生成视频

7.图像理解

在这里插入图片描述
此处选用通义千问VL-Max,代码如下:
需要设置图片地址,设置媒体类型为IMAGE_JPEG

   @Testpublic void testMutimode(){try {UrlResource urlResource = new UrlResource("file:////F:/aiTest/test.jpg");Media media = new Media(MimeTypeUtils.IMAGE_JPEG, urlResource);DashScopeChatOptions options = DashScopeChatOptions.builder().withMultiModel(true) //是否是多模态.withModel("qwen-vl-max-latest").build();Prompt prompt = Prompt.builder().chatOptions(options).messages(UserMessage.builder().media(media).text("识别图片").build()).build();ChatResponse response = dashScopeChatModel.call(prompt);System.out.println(response.getResult().getOutput().getText());} catch (MalformedURLException e) {throw new RuntimeException(e);}

test.jpg
在这里插入图片描述
输出内容:
这是一张时尚品牌 ba&sh 的宣传图,画面中的人物是一位女性模特。以下是详细的识别与描述:


人物性别

  • 女性:从面部特征、发型、服装风格及整体气质判断,该人物为女性。

地域特征(推测)

  • 亚洲裔或具有东亚混血特征
    • 面部轮廓柔和,五官立体但不过于突出,肤色偏白皙。
    • 黑色长发自然披肩,发质顺滑,具有典型的东亚人种特征。
    • 眼睛形状偏杏仁形,鼻梁适中,嘴唇较薄,符合许多亚洲女性的外貌特征。
    • 虽然无法明确其具体国籍,但从外貌上看,她可能具有中国、韩国或东南亚等东亚地区的血统,也可能是混血背景。

服装特点

连衣裙
  • 款式:短款碎花连衣裙,长度在大腿中部,属于夏季轻盈款式。
  • 图案:浅米色底色上点缀着小碎花图案,花朵以红色、粉色和绿色为主,呈现出田园风格。
  • 设计细节
    • 领口为立领设计,带有红色镶边,增添复古感。
    • 长袖设计,袖口略微收紧,有轻微的泡泡袖效果,增加柔美感。
    • 腰部系有一条棕色皮质腰带,强调腰线,提升比例。
    • 下摆为双层荷叶边设计,层次丰富,增强飘逸感。
配饰
  • 手包:左手持有一个深棕色丝绒质感的手拿包,表面有褶皱设计,类似“抽绳”式造型,富有文艺气息。
  • 鞋子:脚穿一双浅金色罗马凉鞋,采用细带缠绕脚踝的设计,简约而优雅,适合春夏季节。
  • 首饰:右手腕佩戴一条金色手镯,较为纤细,不抢眼但提升精致度。

整体风格总结

  • 风格定位:法式浪漫、田园复古、轻熟女性风。
  • 色彩搭配:以柔和的米色、粉色、棕色为主调,温暖而不失优雅。
  • 适用场景:适合春夏季的日常出行、约会、郊游或轻松聚会等场合。

品牌标识

  • 图片上方印有品牌名称 “ba&sh”,字体简洁现代,表明这是该品牌的官方宣传照。

总结

这位女性模特具有典型的东亚或亚裔混血外貌特征,身着一件充满法式风情的碎花连衣裙,搭配简约精致的配饰,展现出温柔、知性且略带复古的时尚气质。整体造型体现了 ba&sh 品牌所倡导的“轻松优雅”的生活美学。

以上就是本文的所有内容,阿里云百炼平台还有很多有趣的大模型等待你的发现,比如涂鸦作画、虚拟模特、创意海报生成、ai试衣、图生舞蹈视频、图生表情表视频等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93362.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93362.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/93362.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 859 (Div. 4) A - D + F - G2 题解

Codeforces Round 859 (Div. 4) A - D F - G2 题解A. Plus or Minus&#xff08;800 分难度&#xff09; 思路&#xff1a; 直接 if - else 判断。 参考代码&#xff1a; #include<bits/stdc.h> using namespace std; void solve(){int a, b, c;cin >> a >&g…

【Java web】Servlet 详解

一、什么是 Servlet&#xff1f;—— 你不知道的 "网页服务员"想象你走进一家网红书店&#xff08;比如 "在线 Java 书店"&#xff09;&#xff0c;想买一本《Java 编程思想》。你告诉前台服务员你的需求&#xff0c;服务员去仓库找书、包装、收款&#xf…

数据库Microsoft Access、SQL Server和SQLite三者对比及数据库的选型建议

SQLite本质是代码库&#xff0c;Access是单文件桌面DB&#xff0c;SQL Server是正经的C/S架构数据库。这就像比较自行车、家用轿车和卡车&#xff0c;完全不同的设计目标。 核心区别对比表特性Microsoft AccessSQL ServerSQLite类型桌面DBMS (文件型)客户端/服务器 RDBMS嵌入式…

【C++】默认构造函数,参数化构造函数,拷贝构造函数,拷贝赋值运算符, 移动构造函数 ,移动赋值运算符

1. 默认构造函数 (Default Constructor) 作用&#xff1a; 无参创建对象 签名&#xff1a; ClassName() 特点&#xff1a; ①无参数或所有参数都有默认值 ②若未声明任何构造函数&#xff0c;编译器自动生成&#xff08;空实现&#xff09; ③用于容器默认初始化&#xff08;如…

办公效率提升指南:完成重复任务自动化

手动操作容易出错&#xff0c;尤其是在处理大量数据或复杂文档时。它将PDF转换、Word处理、Excel操作、OCR识别等高频功能融为一体&#xff0c;界面清爽无冗余&#xff0c;零广告打扰&#xff0c;专注提升工作效率。它内置七大核心模块&#xff1a;自动任务、系统工具、文件处理…

数字炼金术:当API工作流遇见AI客服—点石成金的智能革命!

目录 引言 一、蓝耘元生代MaaS平台概述 1.1 蓝耘平台的API服务 1.2 蓝耘平台的优势 二、初识蓝耘元生代MaaS平台—带你深度体验 2.1 从零开始——平台注册与环境搭建 2.2 蓝耘平台的优势在哪里&#xff1f; 三、API工作流调用技巧与实践 3.1 API工作流设计与调用流程 …

HackMyVM-Uvalde

目录信息搜集漏洞利用权限提升信息搜集 主机发现 ┌──(kali㉿kali)-[~] └─$ nmap -sn 192.168.21.0/24 Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-16 01:10 EDT Nmap scan report for dev.medusa.hmv (192.168.21.6) Host is up (0.00015s latency). MAC Addr…

「Java EE开发指南」如何使用MyEclipse中的Web Fragment项目?

开发者可以通过使用Web Fragment项目模块化应用程序部署描述符&#xff0c;本文提供如何使用它们的必要信息。 该特性在MyEclipse中可用。 MyEclipse v2025.1离线版下载 通过使用Web Fragment项目&#xff0c;您的Web应用程序部署描述符可以模块化&#xff0c;就像能够模块化…

redis的key过期删除策略和内存淘汰机制

一、key的过期删除策略 原由&#xff1a;一般情况下&#xff0c;在使用redis作缓存&#xff0c;对k设置过期时间&#xff0c;当过期时间到后&#xff0c;k还是占用内存的&#xff0c;并没有从内存中移除。 1.定时删除 在设置key的过期时间的同时&#xff0c;为该key创建一个定…

NVIDIA Nsight Deep Learning Designer使用

一、关于产品 1.1 产品介绍 NVIDIA Nsight Deep Learning Designer 是一款面向 AI 推理开发者的可视化建模与优化工具。它支持基于 ONNX 格式的神经网络模型编辑、结构可视化、性能分析与 TensorRT 引擎导出&#xff0c;帮助用户更高效地设计、调优和部署高性能推理模型。该工…

Android 常见100道面试题(完整版)

一、基础组件与核心原理Activity 相关Q1&#xff1a;请描述 Activity 的完整生命周期&#xff0c;从创建到销毁经历哪些关键方法&#xff1f;A&#xff1a;Activity 完整生命周期包括&#xff1a;onCreate&#xff08;初始化&#xff09;→ onStart&#xff08;可见&#xff09…

Navicat 为 SQLite 数据库设置密码指南

Navicat 为 SQLite 数据库设置密码指南 在 SQLite 中设置密码实际上是通过加密实现的&#xff0c;Navicat 使用 SQLCipher 扩展来提供数据库加密功能。以下是详细的操作方法和注意事项&#xff1a; 在 Navicat 中设置密码&#xff08;加密数据库&#xff09; 步骤 1&#xff1a…

Spring Framework:Java 开发的基石与 Spring 生态的起点

在 Java 技术领域&#xff0c;Spring Framework 无疑是一座里程碑式的存在。它不仅彻底改变了 Java 企业级应用的开发模式&#xff0c;更以其为核心衍生出了庞大的 Spring 生态系统&#xff0c;成为无数开发者构建应用的首选技术栈。本文将以 Spring Framework 为核心&#xff…

Unity中 terriaria草,在摄像机拉远的时候就看不见了,该怎么解决

在 Unity 中&#xff0c;当摄像机拉远时草就看不见&#xff0c;可能是由于地形细节距离设置、摄像机裁剪平面设置或 LOD&#xff08;Level of Detail&#xff09;设置不当导致的。以下是具体的解决方法&#xff1a;调整地形细节距离&#xff1a;选中场景中的地形对象&#xff0…

驱动开发系列63 - 编译 NVIDIA 的 open-gpu-kernel-modules 开源内核驱动及搭建调试环境

目录 一:通过apt方式安装nvidia 驱动 二:通过 .run 方式安装nvidia驱动 三:编译安装nvidia开源内核驱动 四:验证和调试 五:卸载驱动 1. 以apt方式安装nvidia 驱动的卸载方法 2. 以.run方式安装nvidia驱动的卸载方法 六:安装CUDA环境 一:通过apt方式安装nvidia 驱动…

Rocky Linux 9.2:从 /home 分区释放 10G 空间扩容到 / 根分区

在日常运维中&#xff0c;常见的问题之一就是安装的软件过多&#xff0c;导致根分区&#xff08;/&#xff09;空间不足&#xff0c;而其他分区&#xff08;例如 /home&#xff09;却有大量闲置空间。本文将演示如何在 Rocky Linux 9.2 上&#xff0c;通过 LVM&#xff08;Logi…

iis/iis express无需手动配置handlers,仅将 DLL 放入bin目录即可处理 HTTP 请求的功能

以下是使用VB.NET实现的方案&#xff0c;分别针对传统ASP.NET&#xff08;System.Web&#xff09;和ASP.NET Core 两种环境&#xff0c;实现无需手动配置handlers&#xff0c;仅将 DLL 放入bin目录即可处理 HTTP 请求的功能。 一、传统ASP.NET&#xff08;System.Web&#xff…

【DP】单词的划分

题目描述 有一个很长的由小写字母组成字符串。为了便于对这个字符串进行分析&#xff0c;需要将它划分成若干个部分&#xff0c;每个部分称为一个单词。出于减少分析量的目的&#xff0c;我们希望划分出的单词数越少越好。你就是来完成这一划分工作的。 输入 第一行&#xff0c…

UniApp 中使用 tui-xecharts插件(或类似图表库如 uCharts)

要在 UniApp 中使用 tui-xecharts插件&#xff08;或类似图表库如 uCharts&#xff09;&#xff0c;需遵循以下步骤。以下流程以 ​​uCharts​​&#xff08;官方推荐的高性能跨平台图表库&#xff09;为例&#xff0c;因其在 UniApp 生态中更成熟且文档完善。若需使用 tui-xe…

顺序表 —— OJ题

在上一篇文章中简单介绍了顺序表&#xff0c;这一篇文章讲解下一个比较经典的题&#xff1a;杨辉三角先看一下什么是杨辉三角下面解释&#xff1a;大概就是这个规律。而 ta 其实就是二维数组 即&#xff1a;0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1然后看一下这个题的要求…