Commit c7ee3dc2cd623148c0e56c5db5a9e76dbe138d00
1 parent
4932ce60
【代码评审】AI:AI 绘图的逻辑
Showing
2 changed files
with
12 additions
and
7 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java
| ... | ... | @@ -8,16 +8,17 @@ import io.swagger.v3.oas.annotations.media.Schema; |
| 8 | 8 | import lombok.Data; |
| 9 | 9 | import lombok.experimental.Accessors; |
| 10 | 10 | |
| 11 | +// TODO @fan:@time、@sine 注解可以不加哈 | |
| 11 | 12 | /** |
| 12 | - * ai 绘画 | |
| 13 | + * AI 绘画 DO | |
| 13 | 14 | * |
| 14 | 15 | * @author fansili |
| 15 | 16 | * @time 2024/4/25 15:53 |
| 16 | 17 | * @since 1.0 |
| 17 | 18 | */ |
| 18 | 19 | @Data |
| 19 | -@Accessors(chain = true) | |
| 20 | -@TableName("ai_image") | |
| 20 | +@Accessors(chain = true) // TODO @fan:这个不用添加哈,全局的 lombok.config 搞啦 | |
| 21 | +@TableName("ai_image") // TODO @fan:建议放在 @Data 前面,因为它是关键注解,@Data 本质可悲替代 | |
| 21 | 22 | public class AiImageDO extends BaseDO { |
| 22 | 23 | |
| 23 | 24 | @TableId(type = IdType.AUTO) |
| ... | ... | @@ -31,12 +32,14 @@ public class AiImageDO extends BaseDO { |
| 31 | 32 | |
| 32 | 33 | // TODO @fan:要加一个平台字段;platform;因为一个平台,会有多种 model 模型; |
| 33 | 34 | |
| 34 | - @Schema(description = "模型 dall2/dall3、MJ、NIJI") | |
| 35 | + @Schema(description = "模型") | |
| 35 | 36 | private String model; |
| 36 | 37 | |
| 37 | - @Schema(description = "生成图像的尺寸大小。对于dall-e-2模型,尺寸可为256x256, 512x512, 或 1024x1024。对于dall-e-3模型,尺寸可为1024x1024, 1792x1024, 或 1024x1792。") | |
| 38 | + // TODO @fan:这个记录到 db,要不改成 width、height?更明确的尺寸 | |
| 39 | + @Schema(description = "尺寸大小") | |
| 38 | 40 | private String size; |
| 39 | 41 | |
| 42 | + // TODO @fan:style 是所有模型都有么?如果不是,是不是靠 drawRequest 记录下就好了; | |
| 40 | 43 | @Schema(description = "风格") |
| 41 | 44 | private String style; |
| 42 | 45 | |
| ... | ... | @@ -55,6 +58,9 @@ public class AiImageDO extends BaseDO { |
| 55 | 58 | @Schema(description = "是否发布") |
| 56 | 59 | private String publicStatus; |
| 57 | 60 | |
| 61 | + // TODO @fan:增加一个 Map<String, Object> 字段,drawRequest;用于记录请求模型的字段;对应的就是 ImageOptions | |
| 62 | + // TODO @fan:增加一个 Map<String, Object> 字段,记录 ImageResponseMetadata?这样 mjNonceId、mjOperationId、mjOperationName、mjOperations 这些字段,貌似可以收掉 | |
| 63 | + | |
| 58 | 64 | // ============ mj 需要字段 |
| 59 | 65 | |
| 60 | 66 | @Schema(description = "用户操作的Nonce编号(MJ返回)") | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
| ... | ... | @@ -141,8 +141,7 @@ public class AiImageServiceImpl implements AiImageService { |
| 141 | 141 | String filePath = fileApi.createFile(HttpUtil.downloadBytes(imageGeneration.getOutput().getUrl())); |
| 142 | 142 | // 更新数据库 |
| 143 | 143 | aiImageMapper.updateById(new AiImageDO().setId(aiImageDO.getId()).setStatus(AiImageStatusEnum.COMPLETE.getStatus()) |
| 144 | - .setPicUrl(filePath).setOriginalPicUrl(imageGeneration.getOutput().getUrl()) | |
| 145 | - ); | |
| 144 | + .setPicUrl(filePath).setOriginalPicUrl(imageGeneration.getOutput().getUrl())); | |
| 146 | 145 | } catch (AiException aiException) { |
| 147 | 146 | // TODO @fan:错误日志,也打印下哈;因为 aiException.getMessage() 比较精简; |
| 148 | 147 | aiImageMapper.updateById(new AiImageDO().setId(aiImageDO.getId()).setStatus(AiImageStatusEnum.FAIL.getStatus()) | ... | ... |