@@ -0,0 +1,67 @@
package com.rj.image ;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation ;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam ;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult ;
import com.alibaba.dashscope.common.MultiModalMessage ;
import com.alibaba.dashscope.common.Role ;
import com.alibaba.dashscope.exception.ApiException ;
import com.alibaba.dashscope.exception.NoApiKeyException ;
import com.alibaba.dashscope.exception.UploadFileException ;
import com.alibaba.dashscope.utils.Constants ;
import com.alibaba.dashscope.utils.JsonUtils ;
import java.io.IOException ;
import java.util.Arrays ;
import java.util.Collections ;
import java.util.HashMap ;
import java.util.Map ;
public class QwenImage {
static {
// 以下为北京地域url, 若使用新加坡地域的模型, 需将url替换为: https://dashscope-intl.aliyuncs.com/api/v1
Constants . baseHttpApiUrl = " https://dashscope.aliyuncs.com/api/v1 " ;
}
// 若没有配置环境变量, 请用百炼API Key将下行替换为: apiKey="sk-xxx"
// 新加坡和北京地域的API Key不同。获取API Key: https://help.aliyun.com/zh/model-studio/get-api-key
static String apiKey = System . getenv ( " DASHSCOPE_API_KEY " ) ;
public static void call ( ) throws ApiException , NoApiKeyException , UploadFileException , IOException {
MultiModalConversation conv = new MultiModalConversation ( ) ;
String content1 = " 一张在海滩上拍摄的照片。照片中是一位穿着浅色比基尼的女性,她站在海边,背景是海浪、沙滩和远处的山丘。天空晴朗,阳光明媚,整体环境显得非常自然和放松。微笑着,一只手抚摸头发,很妩媚,似乎在享受海边的时光。 " ;
String content = " 一张在海滩上拍摄的照片。照片中是一位穿着浅色比基尼的女性,她站在海边,背景是海浪、沙滩和远处的山丘。天空晴朗,阳光明媚,整体环境显得非常自然和放松。这位女性面带微笑,双臂微微张开,似乎在享受海边的时光。 " ;
MultiModalMessage userMessage = MultiModalMessage . builder ( ) . role ( Role . USER . getValue ( ) )
. content ( Arrays . asList (
// Collections.singletonMap("text", "一副典雅庄重的对联悬挂于厅堂之中,房间是个安静古典的中式布置,桌子上放着一些青花瓷,对联上左书“义本生知人机同道善思新”,右书“通云赋智乾坤启数高志远”, 横批“智启通义”,字体飘逸,中间挂在一着一副中国风的画作,内容是岳阳楼。")
Collections . singletonMap ( " text " , content )
) ) . build ( ) ;
Map < String , Object > parameters = new HashMap < > ( ) ;
parameters . put ( " watermark " , true ) ;
parameters . put ( " prompt_extend " , true ) ;
parameters . put ( " negative_prompt " , " " ) ;
parameters . put ( " size " , " 1328*1328 " ) ;
MultiModalConversationParam param = MultiModalConversationParam . builder ( )
. apiKey ( apiKey )
. model ( " qwen-image-plus " )
. messages ( Collections . singletonList ( userMessage ) )
. parameters ( parameters )
. build ( ) ;
System . out . println ( " 开始调用阿里云多模态对话API, 参数 : " + param ) ;
MultiModalConversationResult result = conv . call ( param ) ;
System . out . println ( JsonUtils . toJson ( result ) ) ;
}
public static void main ( String [ ] args ) {
try {
call ( ) ;
} catch ( ApiException | NoApiKeyException | UploadFileException | IOException e ) {
System . out . println ( e . getMessage ( ) ) ;
}
System . exit ( 0 ) ;
}
}