Commit ab0a49a1a7aec7b35b49166a076eb4288e66bb1f
1 parent
80787d1d
【优化】Midjourney 自动配置,增加 messageHanlder
Showing
1 changed file
with
21 additions
and
2 deletions
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiAutoConfiguration.java
| @@ -15,11 +15,15 @@ import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageApi; | @@ -15,11 +15,15 @@ import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageApi; | ||
| 15 | import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageClient; | 15 | import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageClient; |
| 16 | import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageOptions; | 16 | import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageOptions; |
| 17 | import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyConfig; | 17 | import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyConfig; |
| 18 | +import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyMessage; | ||
| 18 | import cn.iocoder.yudao.framework.ai.midjourney.api.MidjourneyInteractionsApi; | 19 | import cn.iocoder.yudao.framework.ai.midjourney.api.MidjourneyInteractionsApi; |
| 20 | +import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyMessageHandler; | ||
| 19 | import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyWebSocketStarter; | 21 | import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyWebSocketStarter; |
| 20 | import cn.iocoder.yudao.framework.ai.midjourney.webSocket.listener.MidjourneyMessageListener; | 22 | import cn.iocoder.yudao.framework.ai.midjourney.webSocket.listener.MidjourneyMessageListener; |
| 23 | +import lombok.extern.slf4j.Slf4j; | ||
| 21 | import org.jetbrains.annotations.NotNull; | 24 | import org.jetbrains.annotations.NotNull; |
| 22 | import org.springframework.boot.autoconfigure.AutoConfiguration; | 25 | import org.springframework.boot.autoconfigure.AutoConfiguration; |
| 26 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | ||
| 23 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | 27 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| 24 | import org.springframework.boot.context.properties.EnableConfigurationProperties; | 28 | import org.springframework.boot.context.properties.EnableConfigurationProperties; |
| 25 | import org.springframework.context.ApplicationContext; | 29 | import org.springframework.context.ApplicationContext; |
| @@ -37,6 +41,7 @@ import java.util.Map; | @@ -37,6 +41,7 @@ import java.util.Map; | ||
| 37 | * @time 2024/4/12 16:29 | 41 | * @time 2024/4/12 16:29 |
| 38 | * @since 1.0 | 42 | * @since 1.0 |
| 39 | */ | 43 | */ |
| 44 | +@Slf4j | ||
| 40 | @AutoConfiguration | 45 | @AutoConfiguration |
| 41 | @EnableConfigurationProperties(YudaoAiProperties.class) | 46 | @EnableConfigurationProperties(YudaoAiProperties.class) |
| 42 | public class YudaoAiAutoConfiguration { | 47 | public class YudaoAiAutoConfiguration { |
| @@ -117,14 +122,28 @@ public class YudaoAiAutoConfiguration { | @@ -117,14 +122,28 @@ public class YudaoAiAutoConfiguration { | ||
| 117 | } | 122 | } |
| 118 | 123 | ||
| 119 | @Bean | 124 | @Bean |
| 125 | + @ConditionalOnMissingBean(value = MidjourneyMessageHandler.class) | ||
| 126 | + public MidjourneyMessageHandler defaultMidjourneyMessageHandler() { | ||
| 127 | + // 如果没有实现 MidjourneyMessageHandler 默认注入一个 | ||
| 128 | + return new MidjourneyMessageHandler() { | ||
| 129 | + @Override | ||
| 130 | + public void messageHandler(MidjourneyMessage midjourneyMessage) { | ||
| 131 | + log.info("default midjourney message: {}", midjourneyMessage); | ||
| 132 | + } | ||
| 133 | + }; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + @Bean | ||
| 120 | @ConditionalOnProperty(value = "yudao.ai.midjourney.enable", havingValue = "true") | 137 | @ConditionalOnProperty(value = "yudao.ai.midjourney.enable", havingValue = "true") |
| 121 | - public MidjourneyWebSocketStarter midjourneyWebSocketStarter(ApplicationContext applicationContext, YudaoAiProperties yudaoAiProperties) { | 138 | + public MidjourneyWebSocketStarter midjourneyWebSocketStarter(ApplicationContext applicationContext, |
| 139 | + MidjourneyMessageHandler midjourneyMessageHandler, | ||
| 140 | + YudaoAiProperties yudaoAiProperties) { | ||
| 122 | // 获取 midjourneyProperties | 141 | // 获取 midjourneyProperties |
| 123 | YudaoAiProperties.MidjourneyProperties midjourneyProperties = yudaoAiProperties.getMidjourney(); | 142 | YudaoAiProperties.MidjourneyProperties midjourneyProperties = yudaoAiProperties.getMidjourney(); |
| 124 | // 获取 midjourneyConfig | 143 | // 获取 midjourneyConfig |
| 125 | MidjourneyConfig midjourneyConfig = getMidjourneyConfig(applicationContext, midjourneyProperties); | 144 | MidjourneyConfig midjourneyConfig = getMidjourneyConfig(applicationContext, midjourneyProperties); |
| 126 | // 创建 socket messageListener | 145 | // 创建 socket messageListener |
| 127 | - MidjourneyMessageListener messageListener = new MidjourneyMessageListener(midjourneyConfig); | 146 | + MidjourneyMessageListener messageListener = new MidjourneyMessageListener(midjourneyConfig, midjourneyMessageHandler); |
| 128 | // 创建 MidjourneyWebSocketStarter | 147 | // 创建 MidjourneyWebSocketStarter |
| 129 | return new MidjourneyWebSocketStarter(midjourneyProperties.getWssUrl(), null, midjourneyConfig, messageListener); | 148 | return new MidjourneyWebSocketStarter(midjourneyProperties.getWssUrl(), null, midjourneyConfig, messageListener); |
| 130 | } | 149 | } |