Commit 7268f002d830c09fb93b040374a826cc4d7a4acb
1 parent
9878abb0
【优化】dall保存
Showing
3 changed files
with
31 additions
and
41 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.ai.controller.admin.image.vo; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | +import com.baomidou.mybatisplus.annotation.FieldFill; | |
| 4 | 5 | import com.baomidou.mybatisplus.annotation.IdType; |
| 6 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | 7 | import com.baomidou.mybatisplus.annotation.TableId; |
| 6 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 7 | 9 | import lombok.Data; |
| 8 | 10 | import lombok.experimental.Accessors; |
| 9 | 11 | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | + | |
| 10 | 14 | /** |
| 11 | 15 | * midjourney req |
| 12 | 16 | * |
| ... | ... | @@ -50,6 +54,12 @@ public class AiImageListRespVO extends PageParam { |
| 50 | 54 | @Schema(description = "是否发布") |
| 51 | 55 | private String publicStatus; |
| 52 | 56 | |
| 57 | + @Schema(description = "创建时间") | |
| 58 | + private LocalDateTime createTime; | |
| 59 | + | |
| 60 | + @Schema(description = "更新时间") | |
| 61 | + private LocalDateTime updateTime; | |
| 62 | + | |
| 53 | 63 | // ============ mj 需要字段 |
| 54 | 64 | |
| 55 | 65 | @Schema(description = "用户操作的Nonce编号(MJ返回)") | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java
| ... | ... | @@ -62,4 +62,12 @@ public interface AiImageConvert { |
| 62 | 62 | * @return |
| 63 | 63 | */ |
| 64 | 64 | AiImageMidjourneyOperationsVO convertAiImageMidjourneyOperationsVO(MidjourneyMessage.Component component); |
| 65 | + | |
| 66 | + /** | |
| 67 | + * 转换 - AiImageDO | |
| 68 | + * | |
| 69 | + * @param req | |
| 70 | + * @return | |
| 71 | + */ | |
| 72 | + AiImageDO convertAiImageDO(AiImageDallReqVO req); | |
| 65 | 73 | } | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
| ... | ... | @@ -100,10 +100,12 @@ public class AiImageServiceImpl implements AiImageService { |
| 100 | 100 | |
| 101 | 101 | @Override |
| 102 | 102 | public AiImageDallRespVO dallDrawing(AiImageDallReqVO req) { |
| 103 | + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); | |
| 103 | 104 | // 保存数据库 |
| 104 | - AiImageDO aiImageDO = doSave(req.getPrompt(), req.getSize(), req.getModel(), | |
| 105 | - null, null, AiImageStatusEnum.IN_PROGRESS, null, | |
| 106 | - null, null, null); | |
| 105 | + AiImageDO aiImageDO = AiImageConvert.INSTANCE.convertAiImageDO(req); | |
| 106 | + aiImageDO.setStatus(AiImageStatusEnum.IN_PROGRESS.getStatus()); | |
| 107 | + aiImageDO.setUserId(loginUserId); | |
| 108 | + aiImageMapper.insert(aiImageDO); | |
| 107 | 109 | // 异步执行 |
| 108 | 110 | EXECUTOR.execute(() -> { |
| 109 | 111 | try { |
| ... | ... | @@ -149,9 +151,10 @@ public class AiImageServiceImpl implements AiImageService { |
| 149 | 151 | public void midjourney(AiImageMidjourneyReqVO req) { |
| 150 | 152 | // 保存数据库 |
| 151 | 153 | String messageId = String.valueOf(IdUtil.getSnowflakeNextId()); |
| 152 | - AiImageDO aiImageDO = doSave(req.getPrompt(), null, "midjoureny", | |
| 153 | - null, null, AiImageStatusEnum.SUBMIT, null, | |
| 154 | - messageId, null, null); | |
| 154 | + // todo | |
| 155 | +// AiImageDO aiImageDO = doSave(req.getPrompt(), null, "midjoureny", | |
| 156 | +// null, null, AiImageStatusEnum.SUBMIT, null, | |
| 157 | +// messageId, null, null); | |
| 155 | 158 | // 提交 midjourney 任务 |
| 156 | 159 | Boolean imagine = midjourneyInteractionsApi.imagine(messageId, req.getPrompt()); |
| 157 | 160 | if (!imagine) { |
| ... | ... | @@ -173,9 +176,10 @@ public class AiImageServiceImpl implements AiImageService { |
| 173 | 176 | // 获取 mjOperationName |
| 174 | 177 | String mjOperationName = midjourneyOperationsVO.getLabel(); |
| 175 | 178 | // 保存一个 image 任务记录 |
| 176 | - doSave(aiImageDO.getPrompt(), aiImageDO.getSize(), aiImageDO.getModel(), | |
| 177 | - null, null, AiImageStatusEnum.SUBMIT, null, | |
| 178 | - req.getMessageId(), req.getOperateId(), mjOperationName); | |
| 179 | + // todo | |
| 180 | +// doSave(aiImageDO.getPrompt(), aiImageDO.getSize(), aiImageDO.getModel(), | |
| 181 | +// null, null, AiImageStatusEnum.SUBMIT, null, | |
| 182 | +// req.getMessageId(), req.getOperateId(), mjOperationName); | |
| 179 | 183 | // 提交操作 |
| 180 | 184 | midjourneyInteractionsApi.reRoll( |
| 181 | 185 | new ReRollReq() |
| ... | ... | @@ -222,36 +226,4 @@ public class AiImageServiceImpl implements AiImageService { |
| 222 | 226 | } |
| 223 | 227 | return aiImageDO; |
| 224 | 228 | } |
| 225 | - | |
| 226 | - private AiImageDO doSave(String prompt, | |
| 227 | - String size, | |
| 228 | - String model, | |
| 229 | - String picUrl, | |
| 230 | - String originalPicUrl, | |
| 231 | - AiImageStatusEnum statusEnum, | |
| 232 | - String errorMessage, | |
| 233 | - String mjMessageId, | |
| 234 | - String mjOperationId, | |
| 235 | - String mjOperationName) { | |
| 236 | - // 保存数据库 | |
| 237 | - Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); | |
| 238 | - AiImageDO aiImageDO = new AiImageDO(); | |
| 239 | - aiImageDO.setId(null); | |
| 240 | - aiImageDO.setPrompt(prompt); | |
| 241 | - aiImageDO.setSize(size); | |
| 242 | - aiImageDO.setModel(model); | |
| 243 | - aiImageDO.setUserId(loginUserId); | |
| 244 | - // TODO @芋艿 如何上传到自己服务器 | |
| 245 | - aiImageDO.setPicUrl(null); | |
| 246 | - aiImageDO.setStatus(statusEnum.getStatus()); | |
| 247 | - aiImageDO.setPicUrl(picUrl); | |
| 248 | - aiImageDO.setOriginalPicUrl(originalPicUrl); | |
| 249 | - aiImageDO.setErrorMessage(errorMessage); | |
| 250 | - // | |
| 251 | - aiImageDO.setMjNonceId(mjMessageId); | |
| 252 | - aiImageDO.setMjOperationId(mjOperationId); | |
| 253 | - aiImageDO.setMjOperationName(mjOperationName); | |
| 254 | - aiImageMapper.insert(aiImageDO); | |
| 255 | - return aiImageDO; | |
| 256 | - } | |
| 257 | 229 | } | ... | ... |