【代码优化】AI:MJ 配置类的简化

This commit is contained in:
YunaiV
2024-06-25 21:27:59 +08:00
parent 4c3add508b
commit b4eed07d61
7 changed files with 81 additions and 104 deletions

View File

@ -1,24 +0,0 @@
package cn.iocoder.yudao.module.ai.config;
import cn.iocoder.yudao.framework.ai.core.model.midjourney.MidjourneyConfig;
import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 配置
*
* @author fansili
* @time 2024/6/13 09:50
*/
@Configuration
public class YudaoMidjourneyConfiguration {
@Bean
@ConditionalOnProperty(value = "ai.midjourney-proxy.enable", havingValue = "true")
public MidjourneyApi midjourneyApi(YudaoMidjourneyProperties midjourneyProperties) {
return new MidjourneyApi(BeanUtils.toBean(midjourneyProperties, MidjourneyConfig.class));
}
}

View File

@ -1,22 +0,0 @@
package cn.iocoder.yudao.module.ai.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* Midjourney 属性
*
* @author fansili
* @time 2024/6/5 15:02
* @since 1.0
*/
@Configuration
@ConfigurationProperties(prefix = "ai.midjourney-proxy")
@Data
public class YudaoMidjourneyProperties {
private String enable;
private String key;
private String url;
}

View File

@ -29,7 +29,6 @@ import org.springframework.ai.image.ImagePrompt;
import org.springframework.ai.image.ImageResponse;
import org.springframework.ai.openai.OpenAiImageOptions;
import org.springframework.ai.stabilityai.api.StabilityAiImageOptions;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -63,9 +62,6 @@ public class AiImageServiceImpl implements AiImageService {
@Resource
private MidjourneyApi midjourneyApi;
@Value("${ai.midjourney-proxy.notifyUrl:http://127.0.0.1:48080/admin-api/ai/image/midjourney-notify}")
private String midjourneyNotifyUrl;
@Override
public PageResult<AiImageDO> getImagePageMy(Long userId, PageParam pageReqVO) {
return imageMapper.selectPage(userId, pageReqVO);
@ -159,7 +155,7 @@ public class AiImageServiceImpl implements AiImageService {
// 2. 调用 Midjourney Proxy 提交任务
MidjourneyApi.ImagineRequest imagineRequest = new MidjourneyApi.ImagineRequest(
null, midjourneyNotifyUrl, reqVO.getPrompt(),
null, reqVO.getPrompt(),null,
MidjourneyApi.ImagineRequest.buildState(reqVO.getWidth(), reqVO.getHeight(), reqVO.getVersion(), reqVO.getModel()));
MidjourneyApi.SubmitResponse imagineResponse = midjourneyApi.imagine(imagineRequest);
@ -258,7 +254,7 @@ public class AiImageServiceImpl implements AiImageService {
// 2. 调用 Midjourney Proxy 提交任务
MidjourneyApi.SubmitResponse actionResponse = midjourneyApi.action(
new MidjourneyApi.ActionRequest(button.customId(), image.getTaskId(), midjourneyNotifyUrl));
new MidjourneyApi.ActionRequest(button.customId(), image.getTaskId(), null));
if (!MidjourneyApi.SubmitCodeEnum.SUCCESS_CODES.contains(actionResponse.code())) {
String description = actionResponse.description().contains("quota_not_enough") ?
"账户余额不足" : actionResponse.description();