From 000bcf11433943762cb59f2e113c1db518e7d117 Mon Sep 17 00:00:00 2001 From: cherishsince Date: Wed, 5 Jun 2024 15:21:27 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91MidjourneyP?= =?UTF-8?q?roxyClient=20=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F=E6=8B=89?= =?UTF-8?q?=E5=8E=BB=E4=BB=BB=E5=8A=A1=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/client/MidjourneyProxyClient.java | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) 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 index 6230aa5b7e..7acb8299f8 100644 --- 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 @@ -3,15 +3,20 @@ package cn.iocoder.yudao.module.ai.client; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.module.ai.client.vo.MidjourneyActionReqVO; import cn.iocoder.yudao.module.ai.client.vo.MidjourneyImagineReqVO; +import cn.iocoder.yudao.module.ai.client.vo.MidjourneyNotifyReqVO; import cn.iocoder.yudao.module.ai.client.vo.MidjourneySubmitRespVO; +import cn.iocoder.yudao.module.ai.config.MidjourneyProperties; +import com.google.common.collect.ImmutableMap; import jakarta.validation.constraints.NotNull; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated; import org.springframework.web.client.RestTemplate; +import java.util.Collection; +import java.util.List; + // TODO @fan:这个写到 starter-ai 里哈。搞个 MidjourneyApi,参考 https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java 的风格写哈 /** * Midjourney Proxy 客户端 @@ -25,12 +30,10 @@ public class MidjourneyProxyClient { private static final String URI_IMAGINE = "/submit/imagine"; private static final String URI_ACTON = "/submit/action"; + private static final String URI_LIST_BY_CONDITION = "/task/list-by-condition"; - @Value("${ai.midjourney-proxy.url:http://127.0.0.1:8080/mj}") - private String url; - @Value("${ai.midjourney-proxy.key}") - private String key; - + @Autowired + private MidjourneyProperties midjourneyProperties; @Autowired private RestTemplate restTemplate; @@ -59,14 +62,28 @@ public class MidjourneyProxyClient { return JsonUtils.parseObject(response.getBody(), MidjourneySubmitRespVO.class); } + /** + * 批量查询 task 任务 + * + * @param taskIds + * @return + */ + public List listByCondition(Collection taskIds) { + // 1、发送 post 请求 + ResponseEntity res = post(URI_LIST_BY_CONDITION, ImmutableMap.of("ids", taskIds)); + // 2、转换 对象 + return JsonUtils.parseArray(res.getBody(), MidjourneyNotifyReqVO.class); + } + private ResponseEntity post(String uri, Object body) { // 1、创建 HttpHeaders 对象 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); - headers.set("Authorization", "Bearer ".concat(key)); + headers.set("Authorization", "Bearer ".concat(midjourneyProperties.getKey())); // 2、创建 HttpEntity 对象,将 HttpHeaders 和请求体传递给它 HttpEntity requestEntity = new HttpEntity<>(JsonUtils.toJsonString(body), headers); // 3、发送 post 请求 - return restTemplate.exchange(url.concat(uri), HttpMethod.POST, requestEntity, String.class); + return restTemplate.exchange(midjourneyProperties.getUrl().concat(uri), HttpMethod.POST, requestEntity, String.class); } + }