From 20addff45edc33ea44d2ca013c666cca80027603 Mon Sep 17 00:00:00 2001 From: cherishsince <cherishsince@aliyun.com> Date: Thu, 30 May 2024 14:21:13 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91Midjourney?= =?UTF-8?q?=20client=EF=BC=8C=E5=A2=9E=E5=8A=A0=20imagine=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/client/MidjourneyProxyClient.java | 40 +++++++++++++++++++ .../ai/client/vo/MidjourneyImagineReqVO.java | 32 +++++++++++++++ .../ai/client/vo/MidjourneySubmitRespVO.java | 27 +++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/MidjourneyProxyClient.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneyImagineReqVO.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneySubmitRespVO.java diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/MidjourneyProxyClient.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/MidjourneyProxyClient.java new file mode 100644 index 000000000..79db06e5c --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/MidjourneyProxyClient.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.ai.client; + +import cn.iocoder.yudao.module.ai.client.vo.MidjourneyImagineReqVO; +import cn.iocoder.yudao.module.ai.client.vo.MidjourneySubmitRespVO; +import jakarta.validation.constraints.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.client.RestTemplate; + +/** + * Midjourney Proxy 客户端 + * + * @author fansili + * @time 2024/5/30 13:58 + * @since 1.0 + */ +@Component +public class MidjourneyProxyClient { + + private static final String URI_IMAGINE = "/submit/imagine"; + + @Value("${ai.midjourney-proxy.url:http://127.0.0.1:8080/mj}") + private String url; + + @Autowired + private RestTemplate restTemplate; + + /** + * imagine - 根据提示词提交绘画任务 + * + * @param imagineReqVO + * @return + */ + public MidjourneySubmitRespVO imagine(@Validated @NotNull MidjourneyImagineReqVO imagineReqVO) { + return restTemplate.postForObject(url.concat(URI_IMAGINE), imagineReqVO, MidjourneySubmitRespVO.class); + } + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneyImagineReqVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneyImagineReqVO.java new file mode 100644 index 000000000..ce3b33c4a --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneyImagineReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.ai.client.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * Midjourney:Imagine 请求 + * + * @author fansili + * @time 2024/5/30 14:02 + * @since 1.0 + */ +@Data +public class MidjourneyImagineReqVO { + + @Schema(description = "垫图(参考图)base64数组", required = false) + private List<String> base64Array; + + @Schema(description = "通知地址", required = false) + @NotNull(message = "回调地址不能为空!") + private String notifyHook; + + @Schema(description = "提示词", required = true) + @NotNull(message = "提示词不能为空!") + private String prompt; + + @Schema(description = "自定义参数", required = false) + private String state; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneySubmitRespVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneySubmitRespVO.java new file mode 100644 index 000000000..c9a430d50 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/client/vo/MidjourneySubmitRespVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.ai.client.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * Midjourney:Imagine 请求 + * + * @author fansili + * @time 2024/5/30 14:02 + * @since 1.0 + */ +@Data +public class MidjourneySubmitRespVO { + + @Schema(description = "状态码: 1(提交成功), 21(已存在), 22(排队中), other(错误)") + private String code; + + @Schema(description = "描述") + private String description; + + @Schema(description = "扩展字段") + private String properties; + + @Schema(description = "任务ID") + private String result; +}