This is an automated email from the ASF dual-hosted git repository.

zhengqiwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/master by this push:
     new a2bd61947 [imporve] move ai package and improve ai code. (#2542)
a2bd61947 is described below

commit a2bd61947b618ca4d7b665bbc5f0e7744d893225
Author: b_mountain <[email protected]>
AuthorDate: Mon Aug 19 00:48:34 2024 +0800

    [imporve] move ai package and improve ai code. (#2542)
    
    Co-authored-by: 刘进山 <[email protected]>
    Co-authored-by: YuLuo <[email protected]>
    Co-authored-by: linDong <[email protected]>
    Co-authored-by: Calvin <[email protected]>
---
 .../hertzbeat/common/constants/AiTypeEnum.java     | 13 ++--
 .../hertzbeat/manager/controller/AiController.java |  6 +-
 .../manager/service/{ => ai}/AiService.java        |  2 +-
 .../service/{impl => ai}/AlibabaAiServiceImpl.java | 70 ++++++++++------------
 .../service/{impl => ai}/KimiAiServiceImpl.java    | 44 ++++++--------
 .../{impl => ai}/SparkDeskAiServiceImpl.java       | 41 ++++++-------
 .../service/{impl => ai}/ZhiPuServiceImpl.java     | 42 ++++++-------
 .../{impl => ai/factory}/AiServiceFactoryImpl.java |  4 +-
 .../manager/controller/AiControllerTest.java       |  4 +-
 .../manager/service/AiServiceFactoryTest.java      |  3 +-
 .../manager/service/AlibabaAiServiceTest.java      |  2 +-
 .../manager/service/KimiAiServiceTest.java         |  2 +-
 .../manager/service/SparkDeskAiServiceTest.java    |  2 +-
 .../manager/service/ZhiPuServiceTest.java          |  2 +-
 14 files changed, 103 insertions(+), 134 deletions(-)

diff --git 
a/common/src/main/java/org/apache/hertzbeat/common/constants/AiTypeEnum.java 
b/common/src/main/java/org/apache/hertzbeat/common/constants/AiTypeEnum.java
index 14e58decf..d1594033d 100644
--- a/common/src/main/java/org/apache/hertzbeat/common/constants/AiTypeEnum.java
+++ b/common/src/main/java/org/apache/hertzbeat/common/constants/AiTypeEnum.java
@@ -17,6 +17,8 @@
 
 package org.apache.hertzbeat.common.constants;
 
+import java.util.Arrays;
+
 /**
  * Ai type Enum
  */
@@ -48,13 +50,10 @@ public enum AiTypeEnum {
      * get type
      */
     public static AiTypeEnum getTypeByName(String type) {
-        for (AiTypeEnum aiTypeEnum : values()) {
-            if (aiTypeEnum.name().equals(type)) {
-                return aiTypeEnum;
-            }
-
-        }
-        return null;
+        return Arrays.stream(values())
+                .filter(ai -> ai.name().equals(type))
+                .findFirst()
+                .orElse(null);
     }
 
 }
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/AiController.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/AiController.java
index 6c7408826..718d9c094 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/AiController.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/AiController.java
@@ -22,8 +22,8 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.apache.hertzbeat.manager.config.AiProperties;
-import org.apache.hertzbeat.manager.service.AiService;
-import org.apache.hertzbeat.manager.service.impl.AiServiceFactoryImpl;
+import org.apache.hertzbeat.manager.service.ai.AiService;
+import org.apache.hertzbeat.manager.service.ai.factory.AiServiceFactoryImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.codec.ServerSentEvent;
 import org.springframework.util.Assert;
@@ -59,10 +59,8 @@ public class AiController {
     @Operation(summary = "Artificial intelligence questions and Answers",
             description = "Artificial intelligence questions and Answers")
     public Flux<ServerSentEvent<String>> requestAi(@Parameter(description = 
"Request text", example = "Who are you") @RequestParam("text") String text)  {
-
         Assert.notNull(aiServiceFactory, "please check that your type value is 
consistent with the documentation on the website");
         AiService aiServiceImplBean = 
aiServiceFactory.getAiServiceImplBean(aiProperties.getType());
-
         return aiServiceImplBean.requestAi(text);
     }
 }
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/AiService.java 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/AiService.java
similarity index 96%
rename from 
manager/src/main/java/org/apache/hertzbeat/manager/service/AiService.java
rename to 
manager/src/main/java/org/apache/hertzbeat/manager/service/ai/AiService.java
index 22ccd55d7..de8e683ed 100644
--- a/manager/src/main/java/org/apache/hertzbeat/manager/service/AiService.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/AiService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.hertzbeat.manager.service;
+package org.apache.hertzbeat.manager.service.ai;
 
 
 import org.apache.hertzbeat.common.constants.AiTypeEnum;
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AlibabaAiServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/AlibabaAiServiceImpl.java
similarity index 64%
rename from 
manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AlibabaAiServiceImpl.java
rename to 
manager/src/main/java/org/apache/hertzbeat/manager/service/ai/AlibabaAiServiceImpl.java
index 2cac8b4ef..0f0fc339b 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AlibabaAiServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/AlibabaAiServiceImpl.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.hertzbeat.manager.service.impl;
+package org.apache.hertzbeat.manager.service.ai;
 
 import java.util.List;
 import java.util.Objects;
@@ -27,7 +27,6 @@ import org.apache.hertzbeat.manager.config.AiProperties;
 import org.apache.hertzbeat.manager.pojo.dto.AiMessage;
 import org.apache.hertzbeat.manager.pojo.dto.AliAiRequestParamDTO;
 import org.apache.hertzbeat.manager.pojo.dto.AliAiResponse;
-import org.apache.hertzbeat.manager.service.AiService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.http.HttpHeaders;
@@ -77,46 +76,39 @@ public class AlibabaAiServiceImpl implements AiService {
     @Override
     public Flux<ServerSentEvent<String>> requestAi(String text) {
         checkParam(text, aiProperties.getModel(), aiProperties.getApiKey());
-        try {
-            AliAiRequestParamDTO aliAiRequestParamDTO = 
AliAiRequestParamDTO.builder()
-                    .model(aiProperties.getModel())
-                    .input(AliAiRequestParamDTO.Input.builder()
-                            .messages(List.of(new 
AiMessage(AiConstants.AliAiConstants.REQUEST_ROLE, text)))
-                            .build())
-                    .parameters(AliAiRequestParamDTO.Parameters.builder()
-                            .maxTokens(AiConstants.AliAiConstants.MAX_TOKENS)
-                            
.temperature(AiConstants.AliAiConstants.TEMPERATURE)
-                            .enableSearch(true)
-                            .resultFormat("message")
-                            .incrementalOutput(true)
-                            .build())
-                    .build();
+        AliAiRequestParamDTO aliAiRequestParamDTO = 
AliAiRequestParamDTO.builder()
+                .model(aiProperties.getModel())
+                .input(AliAiRequestParamDTO.Input.builder()
+                        .messages(List.of(new 
AiMessage(AiConstants.AliAiConstants.REQUEST_ROLE, text)))
+                        .build())
+                .parameters(AliAiRequestParamDTO.Parameters.builder()
+                        .maxTokens(AiConstants.AliAiConstants.MAX_TOKENS)
+                        .temperature(AiConstants.AliAiConstants.TEMPERATURE)
+                        .enableSearch(true)
+                        .resultFormat("message")
+                        .incrementalOutput(true)
+                        .build())
+                .build();
 
 
-            return webClient.post()
-                    .body(BodyInserters.fromValue(aliAiRequestParamDTO))
-                    .retrieve()
-                    .bodyToFlux(AliAiResponse.class)
-                    .map(aliAiResponse -> {
-                        if (Objects.nonNull(aliAiResponse)) {
-                            List<AliAiResponse.Choice> choices = 
aliAiResponse.getOutput().getChoices();
-                            if (CollectionUtils.isEmpty(choices)) {
-                                return 
ServerSentEvent.<String>builder().build();
-                            }
-                            String content = 
choices.get(0).getMessage().getContent();
-                            return ServerSentEvent.<String>builder()
-                                    .data(content)
-                                    .build();
+        return webClient.post()
+                .body(BodyInserters.fromValue(aliAiRequestParamDTO))
+                .retrieve()
+                .bodyToFlux(AliAiResponse.class)
+                .map(aliAiResponse -> {
+                    if (Objects.nonNull(aliAiResponse)) {
+                        List<AliAiResponse.Choice> choices = 
aliAiResponse.getOutput().getChoices();
+                        if (CollectionUtils.isEmpty(choices)) {
+                            return ServerSentEvent.<String>builder().build();
                         }
-                        return ServerSentEvent.<String>builder().build();
-                    })
-                    .doOnError(error -> log.info("AiResponse Exception:{}", 
error.toString()));
-
-        } catch (Exception e) {
-            log.info("KimiAiServiceImpl.requestAi exception:{}", e.toString());
-            throw e;
-        }
-
+                        String content = 
choices.get(0).getMessage().getContent();
+                        return ServerSentEvent.<String>builder()
+                                .data(content)
+                                .build();
+                    }
+                    return ServerSentEvent.<String>builder().build();
+                })
+                .doOnError(error -> log.info("AlibabaAiServiceImpl.requestAi 
exception:{}", error.getMessage()));
     }
 
 
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/KimiAiServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/KimiAiServiceImpl.java
similarity index 70%
rename from 
manager/src/main/java/org/apache/hertzbeat/manager/service/impl/KimiAiServiceImpl.java
rename to 
manager/src/main/java/org/apache/hertzbeat/manager/service/ai/KimiAiServiceImpl.java
index 29c46fa71..031a33271 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/KimiAiServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/KimiAiServiceImpl.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.hertzbeat.manager.service.impl;
+package org.apache.hertzbeat.manager.service.ai;
 
 import java.util.List;
 import javax.annotation.PostConstruct;
@@ -26,7 +26,6 @@ import org.apache.hertzbeat.manager.config.AiProperties;
 import org.apache.hertzbeat.manager.pojo.dto.AiMessage;
 import org.apache.hertzbeat.manager.pojo.dto.OpenAiRequestParamDTO;
 import org.apache.hertzbeat.manager.pojo.dto.OpenAiResponse;
-import org.apache.hertzbeat.manager.service.AiService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.http.HttpHeaders;
@@ -71,37 +70,28 @@ public class KimiAiServiceImpl implements AiService {
 
     @Override
     public Flux<ServerSentEvent<String>> requestAi(String text) {
-        try {
-            checkParam(text, aiProperties.getModel(), 
aiProperties.getApiKey());
-            OpenAiRequestParamDTO zhiPuRequestParamDTO = 
OpenAiRequestParamDTO.builder()
-                    .model(aiProperties.getModel())
-                    .stream(Boolean.TRUE)
-                    .maxTokens(AiConstants.KimiAiConstants.MAX_TOKENS)
-                    .temperature(AiConstants.KimiAiConstants.TEMPERATURE)
-                    .messages(List.of(new 
AiMessage(AiConstants.KimiAiConstants.REQUEST_ROLE, text)))
-                    .build();
-
-
-            return webClient.post()
-                    .body(BodyInserters.fromValue(zhiPuRequestParamDTO))
-                    .retrieve()
-                    .bodyToFlux(String.class)
-                    .filter(aiResponse -> !"[DONE]".equals(aiResponse))
-                    .map(OpenAiResponse::convertToResponse)
-                    .doOnError(error -> log.info("AiResponse Exception:{}", 
error.toString()));
-
-
-        } catch (Exception e) {
-            log.info("KimiAiServiceImpl.requestAi exception:{}", e.toString());
-            throw e;
-        }
+        checkParam(text, aiProperties.getModel(), aiProperties.getApiKey());
+        OpenAiRequestParamDTO zhiPuRequestParamDTO = 
OpenAiRequestParamDTO.builder()
+                .model(aiProperties.getModel())
+                .stream(Boolean.TRUE)
+                .maxTokens(AiConstants.KimiAiConstants.MAX_TOKENS)
+                .temperature(AiConstants.KimiAiConstants.TEMPERATURE)
+                .messages(List.of(new 
AiMessage(AiConstants.KimiAiConstants.REQUEST_ROLE, text)))
+                .build();
 
 
+        return webClient.post()
+                .body(BodyInserters.fromValue(zhiPuRequestParamDTO))
+                .retrieve()
+                .bodyToFlux(String.class)
+                .filter(aiResponse -> !"[DONE]".equals(aiResponse))
+                .map(OpenAiResponse::convertToResponse)
+                .doOnError(error -> log.info("KimiAiServiceImpl.requestAi 
exception:{}", error.getMessage()));
     }
 
     private void checkParam(String param, String model, String apiKey) {
         Assert.notNull(param, "text is null");
-        Assert.notNull(param, "model is null");
+        Assert.notNull(model, "model is null");
         Assert.notNull(apiKey, "ai.api-key is null");
     }
 }
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/SparkDeskAiServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/SparkDeskAiServiceImpl.java
similarity index 73%
rename from 
manager/src/main/java/org/apache/hertzbeat/manager/service/impl/SparkDeskAiServiceImpl.java
rename to 
manager/src/main/java/org/apache/hertzbeat/manager/service/ai/SparkDeskAiServiceImpl.java
index 3b1271d51..4c2520f63 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/SparkDeskAiServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/SparkDeskAiServiceImpl.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.hertzbeat.manager.service.impl;
+package org.apache.hertzbeat.manager.service.ai;
 
 import java.util.List;
 import javax.annotation.PostConstruct;
@@ -26,7 +26,6 @@ import org.apache.hertzbeat.manager.config.AiProperties;
 import org.apache.hertzbeat.manager.pojo.dto.AiMessage;
 import org.apache.hertzbeat.manager.pojo.dto.OpenAiRequestParamDTO;
 import org.apache.hertzbeat.manager.pojo.dto.OpenAiResponse;
-import org.apache.hertzbeat.manager.service.AiService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.http.HttpHeaders;
@@ -78,33 +77,29 @@ public class SparkDeskAiServiceImpl implements AiService {
 
     @Override
     public Flux<ServerSentEvent<String>> requestAi(String text) {
+        checkParam(text, aiProperties.getApiKey(), aiProperties.getModel());
+        OpenAiRequestParamDTO zhiPuRequestParamDTO = 
OpenAiRequestParamDTO.builder()
+                .model(aiProperties.getModel())
+                //sse
+                .stream(Boolean.TRUE)
+                .maxTokens(AiConstants.SparkDeskConstants.MAX_TOKENS)
+                .temperature(AiConstants.SparkDeskConstants.TEMPERATURE)
+                .messages(List.of(new 
AiMessage(AiConstants.SparkDeskConstants.REQUEST_ROLE, text)))
+                .build();
 
-        try {
-            checkParam(text, aiProperties.getApiKey(), 
aiProperties.getModel());
-            OpenAiRequestParamDTO zhiPuRequestParamDTO = 
OpenAiRequestParamDTO.builder()
-                    .model(aiProperties.getModel())
-                    //sse
-                    .stream(Boolean.TRUE)
-                    .maxTokens(AiConstants.SparkDeskConstants.MAX_TOKENS)
-                    .temperature(AiConstants.SparkDeskConstants.TEMPERATURE)
-                    .messages(List.of(new 
AiMessage(AiConstants.SparkDeskConstants.REQUEST_ROLE, text)))
-                    .build();
+        return webClient.post()
+                .body(BodyInserters.fromValue(zhiPuRequestParamDTO))
+                .retrieve()
+                .bodyToFlux(String.class)
+                .filter(aiResponse -> !"[DONE]".equals(aiResponse))
+                .map(OpenAiResponse::convertToResponse)
+                .doOnError(error -> log.info("SparkDeskAiServiceImpl.requestAi 
exception:{}", error.getMessage()));
 
-            return webClient.post()
-                    .body(BodyInserters.fromValue(zhiPuRequestParamDTO))
-                    .retrieve()
-                    .bodyToFlux(String.class)
-                    .filter(aiResponse -> !"[DONE]".equals(aiResponse))
-                    .map(OpenAiResponse::convertToResponse);
-        } catch (Exception e) {
-            log.info("SparkDeskAiServiceImpl.requestAi exception:{}", 
e.toString());
-            throw e;
-        }
     }
 
     private void checkParam(String param, String apiKey, String model) {
         Assert.notNull(param, "text is null");
-        Assert.notNull(param, "model is null");
+        Assert.notNull(model, "model is null");
         Assert.notNull(apiKey, "ai.api-key is null");
     }
 }
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/ZhiPuServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/ZhiPuServiceImpl.java
similarity index 71%
rename from 
manager/src/main/java/org/apache/hertzbeat/manager/service/impl/ZhiPuServiceImpl.java
rename to 
manager/src/main/java/org/apache/hertzbeat/manager/service/ai/ZhiPuServiceImpl.java
index b6111c247..75a55f1b8 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/ZhiPuServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/ZhiPuServiceImpl.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.hertzbeat.manager.service.impl;
+package org.apache.hertzbeat.manager.service.ai;
 
 
 import java.util.List;
@@ -27,7 +27,6 @@ import org.apache.hertzbeat.manager.config.AiProperties;
 import org.apache.hertzbeat.manager.pojo.dto.AiMessage;
 import org.apache.hertzbeat.manager.pojo.dto.OpenAiRequestParamDTO;
 import org.apache.hertzbeat.manager.pojo.dto.OpenAiResponse;
-import org.apache.hertzbeat.manager.service.AiService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.http.HttpHeaders;
@@ -73,33 +72,28 @@ public class ZhiPuServiceImpl implements AiService {
 
     @Override
     public Flux<ServerSentEvent<String>> requestAi(String text) {
-        try {
-            checkParam(text, aiProperties.getModel(), 
aiProperties.getApiKey());
-            OpenAiRequestParamDTO zhiPuRequestParamDTO = 
OpenAiRequestParamDTO.builder()
-                    .model(aiProperties.getModel())
-                    //sse
-                    .stream(Boolean.TRUE)
-                    .maxTokens(AiConstants.ZhiPuConstants.MAX_TOKENS)
-                    .temperature(AiConstants.ZhiPuConstants.TEMPERATURE)
-                    .messages(List.of(new 
AiMessage(AiConstants.ZhiPuConstants.REQUEST_ROLE, text)))
-                    .build();
-
-            return webClient.post()
-                    .body(BodyInserters.fromValue(zhiPuRequestParamDTO))
-                    .retrieve()
-                    .bodyToFlux(String.class)
-                    .filter(aiResponse -> !"[DONE]".equals(aiResponse))
-                    .map(OpenAiResponse::convertToResponse)
-                    .doOnError(error -> log.info("AiResponse Exception:{}", 
error.toString()));
+        checkParam(text, aiProperties.getModel(), aiProperties.getApiKey());
+        OpenAiRequestParamDTO zhiPuRequestParamDTO = 
OpenAiRequestParamDTO.builder()
+                .model(aiProperties.getModel())
+                //sse
+                .stream(Boolean.TRUE)
+                .maxTokens(AiConstants.ZhiPuConstants.MAX_TOKENS)
+                .temperature(AiConstants.ZhiPuConstants.TEMPERATURE)
+                .messages(List.of(new 
AiMessage(AiConstants.ZhiPuConstants.REQUEST_ROLE, text)))
+                .build();
 
-        } catch (Exception e) {
-            log.info("ZhiPuServiceImpl.requestAi exception:{}", e.toString());
-            throw e;
-        }
+        return webClient.post()
+                .body(BodyInserters.fromValue(zhiPuRequestParamDTO))
+                .retrieve()
+                .bodyToFlux(String.class)
+                .filter(aiResponse -> !"[DONE]".equals(aiResponse))
+                .map(OpenAiResponse::convertToResponse)
+                .doOnError(error -> log.info("ZhiPuServiceImpl.requestAi 
exception:{}", error.getMessage()));
     }
 
     private void checkParam(String param, String model, String apiKey) {
         Assert.notNull(param, "text is null");
+        Assert.notNull(model, "model is null");
         Assert.notNull(apiKey, "ai.api-key is null");
     }
 
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AiServiceFactoryImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/factory/AiServiceFactoryImpl.java
similarity index 95%
rename from 
manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AiServiceFactoryImpl.java
rename to 
manager/src/main/java/org/apache/hertzbeat/manager/service/ai/factory/AiServiceFactoryImpl.java
index 8a18e0ce1..8e0954c7a 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AiServiceFactoryImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/ai/factory/AiServiceFactoryImpl.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.hertzbeat.manager.service.impl;
+package org.apache.hertzbeat.manager.service.ai.factory;
 
 import java.util.HashMap;
 import java.util.List;
@@ -24,7 +24,7 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
 import org.apache.hertzbeat.common.constants.AiTypeEnum;
-import org.apache.hertzbeat.manager.service.AiService;
+import org.apache.hertzbeat.manager.service.ai.AiService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.stereotype.Component;
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/controller/AiControllerTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/controller/AiControllerTest.java
index 7c1bfa5f2..70f3e150e 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/controller/AiControllerTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/controller/AiControllerTest.java
@@ -18,8 +18,8 @@
 package org.apache.hertzbeat.manager.controller;
 
 import org.apache.hertzbeat.manager.config.AiProperties;
-import org.apache.hertzbeat.manager.service.AiService;
-import org.apache.hertzbeat.manager.service.impl.AiServiceFactoryImpl;
+import org.apache.hertzbeat.manager.service.ai.AiService;
+import org.apache.hertzbeat.manager.service.ai.factory.AiServiceFactoryImpl;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/AiServiceFactoryTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/AiServiceFactoryTest.java
index 067585ce1..b0ac20893 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/AiServiceFactoryTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/AiServiceFactoryTest.java
@@ -24,7 +24,8 @@ import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import org.apache.hertzbeat.common.constants.AiTypeEnum;
-import org.apache.hertzbeat.manager.service.impl.AiServiceFactoryImpl;
+import org.apache.hertzbeat.manager.service.ai.AiService;
+import org.apache.hertzbeat.manager.service.ai.factory.AiServiceFactoryImpl;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/AlibabaAiServiceTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/AlibabaAiServiceTest.java
index ac6b7bbcc..ff0a5b0f3 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/AlibabaAiServiceTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/AlibabaAiServiceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.hertzbeat.manager.service;
 
-import org.apache.hertzbeat.manager.service.impl.AlibabaAiServiceImpl;
+import org.apache.hertzbeat.manager.service.ai.AlibabaAiServiceImpl;
 
 /**
  * test case for {@link AlibabaAiServiceImpl}
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/KimiAiServiceTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/KimiAiServiceTest.java
index 30f0eb790..a747c6f2a 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/KimiAiServiceTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/KimiAiServiceTest.java
@@ -18,7 +18,7 @@
 package org.apache.hertzbeat.manager.service;
 
 
-import org.apache.hertzbeat.manager.service.impl.KimiAiServiceImpl;
+import org.apache.hertzbeat.manager.service.ai.KimiAiServiceImpl;
 
 /**
  * test case for {@link KimiAiServiceImpl}
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/SparkDeskAiServiceTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/SparkDeskAiServiceTest.java
index f8dd26a99..47d281bd7 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/SparkDeskAiServiceTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/SparkDeskAiServiceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.hertzbeat.manager.service;
 
-import org.apache.hertzbeat.manager.service.impl.SparkDeskAiServiceImpl;
+import org.apache.hertzbeat.manager.service.ai.SparkDeskAiServiceImpl;
 
 /**
  * test case for {@link SparkDeskAiServiceImpl}
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/ZhiPuServiceTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/ZhiPuServiceTest.java
index 68329d472..12fb3fd10 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/ZhiPuServiceTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/ZhiPuServiceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.hertzbeat.manager.service;
 
-import org.apache.hertzbeat.manager.service.impl.ZhiPuServiceImpl;
+import org.apache.hertzbeat.manager.service.ai.ZhiPuServiceImpl;
 
 /**
  * test case for {@link ZhiPuServiceImpl}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to