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 | 15 | import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageClient; |
| 16 | 16 | import cn.iocoder.yudao.framework.ai.imageopenai.OpenAiImageOptions; |
| 17 | 17 | import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyConfig; |
| 18 | +import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyMessage; | |
| 18 | 19 | import cn.iocoder.yudao.framework.ai.midjourney.api.MidjourneyInteractionsApi; |
| 20 | +import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyMessageHandler; | |
| 19 | 21 | import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyWebSocketStarter; |
| 20 | 22 | import cn.iocoder.yudao.framework.ai.midjourney.webSocket.listener.MidjourneyMessageListener; |
| 23 | +import lombok.extern.slf4j.Slf4j; | |
| 21 | 24 | import org.jetbrains.annotations.NotNull; |
| 22 | 25 | import org.springframework.boot.autoconfigure.AutoConfiguration; |
| 26 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | |
| 23 | 27 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| 24 | 28 | import org.springframework.boot.context.properties.EnableConfigurationProperties; |
| 25 | 29 | import org.springframework.context.ApplicationContext; |
| ... | ... | @@ -37,6 +41,7 @@ import java.util.Map; |
| 37 | 41 | * @time 2024/4/12 16:29 |
| 38 | 42 | * @since 1.0 |
| 39 | 43 | */ |
| 44 | +@Slf4j | |
| 40 | 45 | @AutoConfiguration |
| 41 | 46 | @EnableConfigurationProperties(YudaoAiProperties.class) |
| 42 | 47 | public class YudaoAiAutoConfiguration { |
| ... | ... | @@ -117,14 +122,28 @@ public class YudaoAiAutoConfiguration { |
| 117 | 122 | } |
| 118 | 123 | |
| 119 | 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 | 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 | 141 | // 获取 midjourneyProperties |
| 123 | 142 | YudaoAiProperties.MidjourneyProperties midjourneyProperties = yudaoAiProperties.getMidjourney(); |
| 124 | 143 | // 获取 midjourneyConfig |
| 125 | 144 | MidjourneyConfig midjourneyConfig = getMidjourneyConfig(applicationContext, midjourneyProperties); |
| 126 | 145 | // 创建 socket messageListener |
| 127 | - MidjourneyMessageListener messageListener = new MidjourneyMessageListener(midjourneyConfig); | |
| 146 | + MidjourneyMessageListener messageListener = new MidjourneyMessageListener(midjourneyConfig, midjourneyMessageHandler); | |
| 128 | 147 | // 创建 MidjourneyWebSocketStarter |
| 129 | 148 | return new MidjourneyWebSocketStarter(midjourneyProperties.getWssUrl(), null, midjourneyConfig, messageListener); |
| 130 | 149 | } | ... | ... |