【代码评审】AI:AI 绘图的逻辑

This commit is contained in:
YunaiV 2024-05-29 08:34:40 +08:00
parent 4932ce60d2
commit c7ee3dc2cd
2 changed files with 12 additions and 7 deletions

View File

@ -8,16 +8,17 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
// TODO @fan@time@sine 注解可以不加哈
/**
* ai 绘画
* AI 绘画 DO
*
* @author fansili
* @time 2024/4/25 15:53
* @since 1.0
*/
@Data
@Accessors(chain = true)
@TableName("ai_image")
@Accessors(chain = true) // TODO @fan这个不用添加哈全局的 lombok.config 搞啦
@TableName("ai_image") // TODO @fan建议放在 @Data 前面因为它是关键注解@Data 本质可悲替代
public class AiImageDO extends BaseDO {
@TableId(type = IdType.AUTO)
@ -31,12 +32,14 @@ public class AiImageDO extends BaseDO {
// TODO @fan要加一个平台字段platform因为一个平台会有多种 model 模型
@Schema(description = "模型 dall2/dall3、MJ、NIJI")
@Schema(description = "模型")
private String model;
@Schema(description = "生成图像的尺寸大小。对于dall-e-2模型尺寸可为256x256, 512x512, 或 1024x1024。对于dall-e-3模型尺寸可为1024x1024, 1792x1024, 或 1024x1792。")
// TODO @fan这个记录到 db要不改成 widthheight更明确的尺寸
@Schema(description = "尺寸大小")
private String size;
// TODO @fanstyle 是所有模型都有么如果不是是不是靠 drawRequest 记录下就好了
@Schema(description = "风格")
private String style;
@ -55,6 +58,9 @@ public class AiImageDO extends BaseDO {
@Schema(description = "是否发布")
private String publicStatus;
// TODO @fan增加一个 Map<String, Object> 字段drawRequest用于记录请求模型的字段对应的就是 ImageOptions
// TODO @fan增加一个 Map<String, Object> 字段记录 ImageResponseMetadata这样 mjNonceIdmjOperationIdmjOperationNamemjOperations 这些字段貌似可以收掉
// ============ mj 需要字段
@Schema(description = "用户操作的Nonce编号(MJ返回)")

View File

@ -141,8 +141,7 @@ public class AiImageServiceImpl implements AiImageService {
String filePath = fileApi.createFile(HttpUtil.downloadBytes(imageGeneration.getOutput().getUrl()));
// 更新数据库
aiImageMapper.updateById(new AiImageDO().setId(aiImageDO.getId()).setStatus(AiImageStatusEnum.COMPLETE.getStatus())
.setPicUrl(filePath).setOriginalPicUrl(imageGeneration.getOutput().getUrl())
);
.setPicUrl(filePath).setOriginalPicUrl(imageGeneration.getOutput().getUrl()));
} catch (AiException aiException) {
// TODO @fan错误日志也打印下哈因为 aiException.getMessage() 比较精简
aiImageMapper.updateById(new AiImageDO().setId(aiImageDO.getId()).setStatus(AiImageStatusEnum.FAIL.getStatus())