generate 接口参数变更

This commit is contained in:
2024-04-25 12:41:07 +08:00
parent c44fc14796
commit 6d9efc1509
8 changed files with 37 additions and 14 deletions

View File

@@ -88,6 +88,9 @@ public class GenerateConsumer {
channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false); channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
// 将消息从redis排队队列中删除,需保证被消费的消息存储到db之后再从redis删除 // 将消息从redis排队队列中删除,需保证被消费的消息存储到db之后再从redis删除
redisUtil.removeFromZSet(consumptionOrderKey, uniqueId); redisUtil.removeFromZSet(consumptionOrderKey, uniqueId);
String key = generateResultKey + ":" + uniqueId;
GenerateResultVO generateResultVO = new GenerateResultVO(generateThroughImageTextDTO.getUniqueId(), null, null, "Fail");
redisUtil.addToString(key, new Gson().toJson(generateResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
} catch (IOException exception) { } catch (IOException exception) {
log.error("手动确认,取消返回队列,不再重新消费"); log.error("手动确认,取消返回队列,不再重新消费");
} }
@@ -115,9 +118,10 @@ public class GenerateConsumer {
try { try {
log.info("tasks_id : {} start ", generateResult.get("tasks_id")); log.info("tasks_id : {} start ", generateResult.get("tasks_id"));
if (generateResult.get("status").equals("SUCCESS")) { if (generateResult.get("status").equals("SUCCESS")) {
String url = generateResult.get("data"); String url = generateResult.get("image_url");
String taskId = generateResult.get("tasks_id"); String taskId = generateResult.get("tasks_id");
generateService.processGenerateResult(taskId, url); String category = generateResult.get("category");
generateService.processGenerateResult(taskId, url, category);
} else { } else {
// 修改redis中的数据状态为exception // 修改redis中的数据状态为exception
String key = generateResultKey + ":" + generateResult.get("tasks_id"); String key = generateResultKey + ":" + generateResult.get("tasks_id");

View File

@@ -1,8 +1,9 @@
package com.ai.da.common.constant; package com.ai.da.common.constant;
public class CommonConstant { public class CommonConstant {
// 单位 秒 一天过期 // 单位 秒 10分钟过期
public static final Long TASK_EXPIRE_TIME = 24 * 60 * 60L; // public static final Long TASK_EXPIRE_TIME = 24 * 60 * 60L;
public static final Long TASK_EXPIRE_TIME = 10 * 60L;
// 单位 秒 两天过期 // 单位 秒 两天过期
public static final Long CREDITS_EXPIRE_TIME = 2 * 24 * 60 * 60L; public static final Long CREDITS_EXPIRE_TIME = 2 * 24 * 60 * 60L;
// 单位 分钟 // 单位 分钟

View File

@@ -24,7 +24,6 @@ public class GenerateThroughImageTextDTO {
@ApiModelProperty("text image text-image") @ApiModelProperty("text image text-image")
String generateType; String generateType;
/** 暂时没有用上 */
@ApiModelProperty("图片是update还是从library中选择") @ApiModelProperty("图片是update还是从library中选择")
String designType; String designType;

View File

@@ -22,15 +22,16 @@ public class GenerateToPythonDTO {
// 去除 // 去除
// private String version; // private String version;
// 去掉 // 去掉
// private String gender; private String gender;
// taskId的最后拼接用户id // taskId的最后拼接用户id
private String tasks_id; private String tasks_id;
public GenerateToPythonDTO(String tasks_id, String prompt, String image_url, String mode, String category) { public GenerateToPythonDTO(String tasks_id, String prompt, String image_url, String mode, String category, String gender) {
this.image_url = image_url; this.image_url = image_url;
this.category = category; this.category = category;
this.prompt = prompt; this.prompt = prompt;
this.mode = mode; this.mode = mode;
this.tasks_id = tasks_id; this.tasks_id = tasks_id;
this.gender = gender;
} }
} }

View File

@@ -19,6 +19,15 @@ public class GenerateResultVO {
private String status; private String status;
private String category;
public GenerateResultVO(String taskId, Long id, String url, String status) {
this.taskId = taskId;
this.id = id;
this.url = url;
this.status = status;
}
public GenerateResultVO(Long id, String url, String status) { public GenerateResultVO(Long id, String url, String status) {
this.id = id; this.id = id;
this.url = url; this.url = url;

View File

@@ -15,7 +15,7 @@ public interface GenerateService extends IService<Generate> {
void generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO); void generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO);
void processGenerateResult(String taskId, String url); void processGenerateResult(String taskId, String url, String category);
GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO); GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO);

View File

@@ -836,6 +836,7 @@ public class CollectionElementServiceImpl extends ServiceImpl<CollectionElementM
break; break;
} }
} else { } else {
log.error("designType cannot be empty");
throw new BusinessException("element source type cannot be empty!"); throw new BusinessException("element source type cannot be empty!");
} }
}else { }else {

View File

@@ -141,7 +141,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
// List<String> generatedSketchUrl = asyncCallerUtil.generate(new GenerateToPythonDTO(accountId, Objects.isNull(collectionElement) ? "" : collectionElement.getUrl(), // List<String> generatedSketchUrl = asyncCallerUtil.generate(new GenerateToPythonDTO(accountId, Objects.isNull(collectionElement) ? "" : collectionElement.getUrl(),
// category, text, mode, "1", generateThroughImageTextDTO.getGender(), generateThroughImageTextDTO.getUniqueId())); // category, text, mode, "1", generateThroughImageTextDTO.getGender(), generateThroughImageTextDTO.getUniqueId()));
Boolean requestResult = pythonService.generateSketchOrPrint(new GenerateToPythonDTO(generateThroughImageTextDTO.getUniqueId(), text,Objects.isNull(collectionElement) ? "" : collectionElement.getUrl(), Boolean requestResult = pythonService.generateSketchOrPrint(new GenerateToPythonDTO(generateThroughImageTextDTO.getUniqueId(), text,Objects.isNull(collectionElement) ? "" : collectionElement.getUrl(),
mode, category)); mode, category, generateThroughImageTextDTO.getGender()));
// log.info("generate 响应 " + generatedSketchUrl); // log.info("generate 响应 " + generatedSketchUrl);
// if (CollectionUtils.isEmpty(generatedSketchUrl)) { // if (CollectionUtils.isEmpty(generatedSketchUrl)) {
// return null; // return null;
@@ -193,7 +193,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void processGenerateResult(String taskId, String url){ public void processGenerateResult(String taskId, String url, String category){
// 5、处理模型返回的数据 // 5、处理模型返回的数据
// 5.1 将相应的url保存到数据库 // 5.1 将相应的url保存到数据库
GenerateDetail generateDetail = new GenerateDetail(); GenerateDetail generateDetail = new GenerateDetail();
@@ -226,7 +226,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
generateDetailMapper.insert(generateDetail); generateDetailMapper.insert(generateDetail);
String key = generateResultKey + ":" + taskId; String key = generateResultKey + ":" + taskId;
GenerateResultVO generateResultVO = new GenerateResultVO(taskId, generateDetail.getId(), url, "Success"); String imageName = url.substring(url.lastIndexOf("/") + 1);
String status = imageName.equals("white_image.jpg") ? "Invalid" : "Success";
GenerateResultVO generateResultVO = new GenerateResultVO(taskId, generateDetail.getId(), url, status, category);
redisUtil.addToString(key, new Gson().toJson(generateResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); redisUtil.addToString(key, new Gson().toJson(generateResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
} }
@@ -266,7 +268,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
generate.setText(text); generate.setText(text);
break; break;
case "Sketchboard": case "Sketchboard":
text = "a single item , " + userInput + ", clean background, hand-drawing sketch style, high quality"; text = "transparent line drawing, transparent sketch, front of single clothing vector image, clean background, best quality, ultra high res 8k," + userInput;
generate.setText(text); generate.setText(text);
default: default:
} }
@@ -525,15 +527,21 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
String key = generateResultKey + ":" + taskId; String key = generateResultKey + ":" + taskId;
GenerateResultVO generateResultVO = new Gson().fromJson(redisUtil.getFromString(key), GenerateResultVO.class); GenerateResultVO generateResultVO = new Gson().fromJson(redisUtil.getFromString(key), GenerateResultVO.class);
if (!Objects.isNull(generateResultVO) && !StringUtil.isNullOrEmpty(generateResultVO.getUrl())) { if (!Objects.isNull(generateResultVO) && !StringUtil.isNullOrEmpty(generateResultVO.getUrl())) {
generateResultVO.setUrl(minioUtil.getPresignedUrl(generateResultVO.getUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); String url = generateResultVO.getUrl();
if (!StringUtil.isNullOrEmpty(generateResultVO.getStatus())) collect.add(generateResultVO.getStatus()); if (url.substring(url.lastIndexOf("/") + 1).equals("white_image.jpg")){
generateResultVO.setStatus("Invalid");
}else {
generateResultVO.setUrl(minioUtil.getPresignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME));
}
}else if (Objects.isNull(generateResultVO)){ }else if (Objects.isNull(generateResultVO)){
generateResultVO = new GenerateResultVO(); generateResultVO = new GenerateResultVO();
} }
if (!StringUtil.isNullOrEmpty(generateResultVO.getStatus())) collect.add(generateResultVO.getStatus());
results.add(generateResultVO); results.add(generateResultVO);
}); });
// todo // todo
if (taskIdList.size() == 4 && collect.size() == 1 && collect.contains("Fail")){ if (taskIdList.size() == 4 && collect.size() == 1 && collect.contains("Fail")){
log.info("当前4个生成结果均为失败");
throw new BusinessException("generate.interface.error"); throw new BusinessException("generate.interface.error");
} }
return results; return results;