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 | package cn.iocoder.yudao.module.ai.controller.admin.image.vo; | 1 | package cn.iocoder.yudao.module.ai.controller.admin.image.vo; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | +import com.baomidou.mybatisplus.annotation.FieldFill; | ||
| 4 | import com.baomidou.mybatisplus.annotation.IdType; | 5 | import com.baomidou.mybatisplus.annotation.IdType; |
| 6 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 7 | import com.baomidou.mybatisplus.annotation.TableId; |
| 6 | import io.swagger.v3.oas.annotations.media.Schema; | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 7 | import lombok.Data; | 9 | import lombok.Data; |
| 8 | import lombok.experimental.Accessors; | 10 | import lombok.experimental.Accessors; |
| 9 | 11 | ||
| 12 | +import java.time.LocalDateTime; | ||
| 13 | + | ||
| 10 | /** | 14 | /** |
| 11 | * midjourney req | 15 | * midjourney req |
| 12 | * | 16 | * |
| @@ -50,6 +54,12 @@ public class AiImageListRespVO extends PageParam { | @@ -50,6 +54,12 @@ public class AiImageListRespVO extends PageParam { | ||
| 50 | @Schema(description = "是否发布") | 54 | @Schema(description = "是否发布") |
| 51 | private String publicStatus; | 55 | private String publicStatus; |
| 52 | 56 | ||
| 57 | + @Schema(description = "创建时间") | ||
| 58 | + private LocalDateTime createTime; | ||
| 59 | + | ||
| 60 | + @Schema(description = "更新时间") | ||
| 61 | + private LocalDateTime updateTime; | ||
| 62 | + | ||
| 53 | // ============ mj 需要字段 | 63 | // ============ mj 需要字段 |
| 54 | 64 | ||
| 55 | @Schema(description = "用户操作的Nonce编号(MJ返回)") | 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,4 +62,12 @@ public interface AiImageConvert { | ||
| 62 | * @return | 62 | * @return |
| 63 | */ | 63 | */ |
| 64 | AiImageMidjourneyOperationsVO convertAiImageMidjourneyOperationsVO(MidjourneyMessage.Component component); | 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,10 +100,12 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 100 | 100 | ||
| 101 | @Override | 101 | @Override |
| 102 | public AiImageDallRespVO dallDrawing(AiImageDallReqVO req) { | 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 | EXECUTOR.execute(() -> { | 110 | EXECUTOR.execute(() -> { |
| 109 | try { | 111 | try { |
| @@ -149,9 +151,10 @@ public class AiImageServiceImpl implements AiImageService { | @@ -149,9 +151,10 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 149 | public void midjourney(AiImageMidjourneyReqVO req) { | 151 | public void midjourney(AiImageMidjourneyReqVO req) { |
| 150 | // 保存数据库 | 152 | // 保存数据库 |
| 151 | String messageId = String.valueOf(IdUtil.getSnowflakeNextId()); | 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 | // 提交 midjourney 任务 | 158 | // 提交 midjourney 任务 |
| 156 | Boolean imagine = midjourneyInteractionsApi.imagine(messageId, req.getPrompt()); | 159 | Boolean imagine = midjourneyInteractionsApi.imagine(messageId, req.getPrompt()); |
| 157 | if (!imagine) { | 160 | if (!imagine) { |
| @@ -173,9 +176,10 @@ public class AiImageServiceImpl implements AiImageService { | @@ -173,9 +176,10 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 173 | // 获取 mjOperationName | 176 | // 获取 mjOperationName |
| 174 | String mjOperationName = midjourneyOperationsVO.getLabel(); | 177 | String mjOperationName = midjourneyOperationsVO.getLabel(); |
| 175 | // 保存一个 image 任务记录 | 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 | midjourneyInteractionsApi.reRoll( | 184 | midjourneyInteractionsApi.reRoll( |
| 181 | new ReRollReq() | 185 | new ReRollReq() |
| @@ -222,36 +226,4 @@ public class AiImageServiceImpl implements AiImageService { | @@ -222,36 +226,4 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 222 | } | 226 | } |
| 223 | return aiImageDO; | 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 | } |