summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/MaaSPlatform.java2
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/BiShengCreateDatasetResponse.java9
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ProcessFileResponse.java12
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ResponseStatus.java12
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateCollectionParam.java (renamed from llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateCollectionParam.java)2
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateDataSetParam.java (renamed from llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateDataSetParam.java)2
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateDataSetResponse.java (renamed from llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateDataSetResponse.java)2
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/config/WebClientConfig.java4
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/BiShengConstant.java21
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/CommonConstant.java5
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/FastGptConstant.java22
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/ServerConstant.java28
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/ApplicationController.java24
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/DatasetController.java25
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/MaaSController.java10
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/ApplicationMapper.java (renamed from llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/FastGptApplicationMapper.java)4
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/DatasetMapper.java (renamed from llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/FastGptDatasetMapper.java)4
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/MaaSPlatformMapper.java4
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/ApplicationService.java21
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengApplicationService.java17
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengDatasetService.java15
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/DatasetService.java19
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptApplicationService.java4
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptDatasetService.java5
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/MaaSService.java5
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/ApplicationServiceImpl.java138
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengApplicationServiceImpl.java178
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengDatasetServiceImpl.java191
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/DatasetServiceImpl.java111
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptApplicationServiceImpl.java103
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptDatasetServiceImpl.java101
-rw-r--r--llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/MaaSServiceImpl.java28
-rw-r--r--llm-adaptation/src/main/resources/application.yaml12
-rw-r--r--llm-adaptation/src/main/resources/llm-adaptation-init.sql3
-rw-r--r--llm-adaptation/src/main/resources/mapper/ApplicationMapper.xml (renamed from llm-adaptation/src/main/resources/mapper/FastGptApplicationMapper.xml)11
-rw-r--r--llm-adaptation/src/main/resources/mapper/DatasetMapper.xml (renamed from llm-adaptation/src/main/resources/mapper/FastGptDatasetMapper.xml)11
-rw-r--r--llm-adaptation/src/main/resources/mapper/MaaSPlatformMapper.xml26
37 files changed, 1023 insertions, 168 deletions
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/MaaSPlatform.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/MaaSPlatform.java
index 20443e9..156aa76 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/MaaSPlatform.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/MaaSPlatform.java
@@ -16,6 +16,8 @@ public class MaaSPlatform {
private String operatorName;
+ private String maaSType;
+
private List<ModelInformation> modelList;
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/BiShengCreateDatasetResponse.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/BiShengCreateDatasetResponse.java
new file mode 100644
index 0000000..3047376
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/BiShengCreateDatasetResponse.java
@@ -0,0 +1,9 @@
+package org.onap.usecaseui.llmadaptation.bean.bisheng;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.Data;
+
+@Data
+public class BiShengCreateDatasetResponse extends ResponseStatus {
+ private JSONObject data;
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ProcessFileResponse.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ProcessFileResponse.java
new file mode 100644
index 0000000..829f8cd
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ProcessFileResponse.java
@@ -0,0 +1,12 @@
+package org.onap.usecaseui.llmadaptation.bean.bisheng;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class ProcessFileResponse extends ResponseStatus{
+ private List<JSONObject> data;
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ResponseStatus.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ResponseStatus.java
new file mode 100644
index 0000000..90c64b6
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/bisheng/ResponseStatus.java
@@ -0,0 +1,12 @@
+package org.onap.usecaseui.llmadaptation.bean.bisheng;
+
+import lombok.Data;
+
+@Data
+public class ResponseStatus {
+ private int status_code;
+
+ private String status_message;
+
+ private String detail;
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateCollectionParam.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateCollectionParam.java
index 33b40b2..12b5277 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateCollectionParam.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateCollectionParam.java
@@ -1,4 +1,4 @@
-package org.onap.usecaseui.llmadaptation.bean.fastgpt;
+package org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset;
import lombok.Data;
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateDataSetParam.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateDataSetParam.java
index 481773c..b22b90a 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateDataSetParam.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateDataSetParam.java
@@ -1,4 +1,4 @@
-package org.onap.usecaseui.llmadaptation.bean.fastgpt;
+package org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset;
import lombok.Data;
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateDataSetResponse.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateDataSetResponse.java
index 444c81a..eaff56f 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/CreateDataSetResponse.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/bean/fastgpt/dataset/CreateDataSetResponse.java
@@ -1,4 +1,4 @@
-package org.onap.usecaseui.llmadaptation.bean.fastgpt;
+package org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset;
import lombok.Data;
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/config/WebClientConfig.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/config/WebClientConfig.java
index d0a6926..8434b6b 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/config/WebClientConfig.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/config/WebClientConfig.java
@@ -31,8 +31,8 @@ public class WebClientConfig {
public WebClient getWebClient() {
HttpClient httpClient = HttpClient.create()
.tcpConfiguration(tcpClient -> tcpClient
- .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000))
- .responseTimeout(Duration.ofSeconds(10));
+ .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 50000))
+ .responseTimeout(Duration.ofSeconds(50));
return WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient)).build();
}
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/BiShengConstant.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/BiShengConstant.java
new file mode 100644
index 0000000..3a9a3bc
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/BiShengConstant.java
@@ -0,0 +1,21 @@
+package org.onap.usecaseui.llmadaptation.constant;
+
+public class BiShengConstant {
+ public static final String COOKIE_VALUE = "access_token_cookie=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJ1c2VyX25hbWVcIjogXCJyb290XCIsIFwidXNlcl9pZFwiOiAxLCBcInJvbGVcIjogXCJhZG1pblwifSIsImlhdCI6MTczMzEyMjYwMSwibmJmIjoxNzMzMTIyNjAxLCJqdGkiOiI3YzAwNTMyYy1hOGI2LTQwM2YtYmVjMi1mZjAyODU1NjNhMGUiLCJleHAiOjIwNDg0ODI2MDEsInR5cGUiOiJhY2Nlc3MiLCJmcmVzaCI6ZmFsc2V9.K7H2Yoc8h5qv55ciOtfiQZhInWkt7VH5Uq7OGdsxhek";
+
+ public static final String CREATE_DATASET_URL = "/api/v1/knowledge/create";
+
+ public static final String UPLOAD_FILE_URL = "/api/v1/knowledge/upload";
+
+ public static final String PROCESS_FILE_URL = "/api/v1/knowledge/process";
+
+ public static final String DATASET_V2_URL = "/api/v2/filelib/";
+
+ public static final String APPLICATION_URL = "/api/v1/assistant";
+
+ public static final String APPLICATION_CHAT_URL = "/api/v2/assistant/chat/completions";
+
+ public static final String DELETE_APPLICATION = "/api/v1/assistant/delete?assistant_id=";
+
+ public static final String GET_APPLICATION_URL = "/api/v1/assistant/info/";
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/CommonConstant.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/CommonConstant.java
new file mode 100644
index 0000000..a61484a
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/CommonConstant.java
@@ -0,0 +1,5 @@
+package org.onap.usecaseui.llmadaptation.constant;
+
+public class CommonConstant {
+ public static final String COOKIE = "Cookie";
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/FastGptConstant.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/FastGptConstant.java
index 7aefa8f..a4fb335 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/FastGptConstant.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/FastGptConstant.java
@@ -1,29 +1,29 @@
package org.onap.usecaseui.llmadaptation.constant;
public class FastGptConstant {
- public static final String COOKIE = "Cookie";
+ public static final String COOKIE_VALUE = "fastgpt_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NzFmNTQ2MGM4Zjc3YTFjMGYzZTUyYmEiLCJ0ZWFtSWQiOiI2NzFmNTQ2MGM4Zjc3YTFjMGYzZTUyYzAiLCJ0bWJJZCI6IjY3MWY1NDYwYzhmNzdhMWMwZjNlNTJjMiIsImlzUm9vdCI6dHJ1ZSwiZXhwIjoxNzM1NTIzMzY0LCJpYXQiOjE3MzQ5MTg1NjR9.GPomC4qSnz3ADnEIo4sgl8jROaCsomEh9J6kfVAZuBQ";
- public static final String COOKIE_VALUE = "fastgpt_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NzFmNTQ2MGM4Zjc3YTFjMGYzZTUyYmEiLCJ0ZWFtSWQiOiI2NzFmNTQ2MGM4Zjc3YTFjMGYzZTUyYzAiLCJ0bWJJZCI6IjY3MWY1NDYwYzhmNzdhMWMwZjNlNTJjMiIsImlzUm9vdCI6dHJ1ZSwiZXhwIjoxNzMzMjc0Mzc2LCJpYXQiOjE3MzI2Njk1NzZ9.NdJ_ShISQOa1f5AvGsfq8Zrh4g4e2JwtX1TZ2iCLN6I";
+ public static final String CREATE_DATASET_URL = "/api/core/dataset/create";
- public static final String CREATE_DATASET_URL = "http://172.22.16.126:3000/api/core/dataset/create";
+ public static final String UPLOAD_FILE_URL = "/api/common/file/upload";
- public static final String UPLOAD_FILE_URL = "http://172.22.16.126:3000/api/common/file/upload";
+ public static final String CRATE_COLLECTION_URL = "/api/core/dataset/collection/create/fileId";
- public static final String CRATE_COLLECTION_URL = "http://172.22.16.126:3000/api/core/dataset/collection/create/fileId";
+ public static final String UPDATE_DATASET_URL = "/api/core/dataset/update";
- public static final String DELETE_DATASET_URL = "http://172.22.16.126:3000/api/core/dataset/delete?id=";
+ public static final String DELETE_DATASET_URL = "/api/core/dataset/delete?id=";
- public static final String CREATE_APPLICATION = "http://172.22.16.126:3000/api/core/app/create";
+ public static final String CREATE_APPLICATION = "/api/core/app/create";
- public static final String UPDATE_APPLICATION = "http://172.22.16.126:3000/api/core/app/update?appId=";
+ public static final String UPDATE_APPLICATION = "/api/core/app/update?appId=";
- public static final String PUBLISH_APPLICATION = "http://172.22.16.126:3000/api/core/app/version/publish?appId=";
+ public static final String PUBLISH_APPLICATION = "/api/core/app/version/publish?appId=";
public static final String CREATE_APP_PARAM_FILE_URL = "classpath:Param/createApplication.json";
public static final String PUBLISH_APP_PARAM_FILE_URL = "classpath:Param/publishApplication.json";
- public static final String APPLICATION_CHAT_URL = "http://172.22.16.126:3000/api/v1/chat/completions";
+ public static final String APPLICATION_CHAT_URL = "/api/v1/chat/completions";
- public static final String DELETE_APPLICATION = "http://172.22.16.126:3000/api/core/app/del?appId=";
+ public static final String DELETE_APPLICATION = "/api/core/app/del?appId=";
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/ServerConstant.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/ServerConstant.java
new file mode 100644
index 0000000..efc6012
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/constant/ServerConstant.java
@@ -0,0 +1,28 @@
+package org.onap.usecaseui.llmadaptation.constant;
+
+import lombok.Getter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+@Getter
+public class ServerConstant {
+
+ @Value("${fastGpt.server}")
+ private String fastGptServer;
+
+ @Value("${biSheng.server}")
+ private String biShengServer;
+
+ @Value("${fastGpt.model}")
+ private String fastGptModel;
+
+ @Value("${biSheng.model}")
+ private int biShengModel;
+
+ @Value("${fastGpt.maaSType}")
+ private String fastGptType;
+
+ @Value("${biSheng.maaSType}")
+ private String biShengType;
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/ApplicationController.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/ApplicationController.java
index f10495e..a6493de 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/ApplicationController.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/ApplicationController.java
@@ -2,9 +2,8 @@ package org.onap.usecaseui.llmadaptation.controller;
import com.alibaba.fastjson2.JSONObject;
import lombok.extern.slf4j.Slf4j;
-import org.onap.usecaseui.llmadaptation.bean.Application;
-import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
-import org.onap.usecaseui.llmadaptation.service.FastGptApplicationService;
+import org.onap.usecaseui.llmadaptation.bean.*;
+import org.onap.usecaseui.llmadaptation.service.ApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@@ -15,32 +14,37 @@ import reactor.core.publisher.Mono;
@RestController
@RequestMapping("/api/usecaseui-llm-adaptation/v1/application")
public class ApplicationController {
-
@Autowired
- private FastGptApplicationService fastGptApplicationService;
+ private ApplicationService applicationService;
@PostMapping(value = "/create", produces = MediaType.APPLICATION_JSON_VALUE)
public Mono<ServiceResult> createApplication(@RequestBody Application application) {
- return fastGptApplicationService.createApplication(application);
+ return applicationService.createApplication(application);
+
}
@DeleteMapping(value = "/delete/{applicationId}", produces = MediaType.APPLICATION_JSON_VALUE)
public Mono<ServiceResult> removeKnowledgeBase(@PathVariable("applicationId") String applicationId) {
- return fastGptApplicationService.removeApplication(applicationId);
+ return applicationService.removeApplication(applicationId);
}
@PostMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamData(@RequestBody JSONObject question) {
- return fastGptApplicationService.chat(question);
+ return applicationService.chat(question);
}
@GetMapping(value = {"/query"}, produces = MediaType.APPLICATION_JSON_VALUE)
public ServiceResult getApplications() {
- return fastGptApplicationService.getApplications();
+ return applicationService.getApplications();
}
@GetMapping(value = {"/queryById/{applicationId}"}, produces = MediaType.APPLICATION_JSON_VALUE)
public ServiceResult getApplications(@PathVariable("applicationId") String applicationId) {
- return fastGptApplicationService.getApplicationById(applicationId);
+ return applicationService.getApplicationById(applicationId);
+ }
+
+ @PostMapping(value = "/edit", produces = MediaType.APPLICATION_JSON_VALUE)
+ public Mono<ServiceResult> editDataset(@RequestBody Application application) {
+ return applicationService.editApplication(application);
}
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/DatasetController.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/DatasetController.java
index 5425cd6..af2a672 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/DatasetController.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/DatasetController.java
@@ -4,8 +4,8 @@ import lombok.extern.slf4j.Slf4j;
import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
import org.onap.usecaseui.llmadaptation.bean.ResultHeader;
import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
-import org.onap.usecaseui.llmadaptation.mapper.FastGptDatasetMapper;
-import org.onap.usecaseui.llmadaptation.service.FastGptDatasetService;
+import org.onap.usecaseui.llmadaptation.mapper.DatasetMapper;
+import org.onap.usecaseui.llmadaptation.service.DatasetService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.codec.multipart.FilePart;
@@ -19,36 +19,43 @@ import java.util.List;
@RestController
@RequestMapping("/api/usecaseui-llm-adaptation/v1/knowledgeBase")
public class DatasetController {
+
@Autowired
- private FastGptDatasetService fastGptDatasetService;
+ private DatasetMapper datasetMapper;
@Autowired
- private FastGptDatasetMapper fastGptDatasetMapper;
+ private DatasetService datasetService;
+
@PostMapping(value = "/create", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Mono<ServiceResult> handleFileUpload(@RequestPart("files") Flux<FilePart> fileParts,
@RequestPart("metaData") String metaData) {
- return fastGptDatasetService.createDataset(fileParts, metaData);
+ return datasetService.createDataset(fileParts, metaData);
}
@DeleteMapping(value = "/delete/{knowledgeBaseId}", produces = MediaType.APPLICATION_JSON_VALUE)
public Mono<ServiceResult> removeKnowledgeBase(@PathVariable("knowledgeBaseId") String knowledgeBaseId) {
- return fastGptDatasetService.removeDataset(knowledgeBaseId);
+ return datasetService.removeDataset(knowledgeBaseId);
}
@GetMapping(value = {"/query"}, produces = MediaType.APPLICATION_JSON_VALUE)
public ServiceResult getKnowledgeBaseRecord() {
- return fastGptDatasetService.getDataSetRecord();
+ return datasetService.getDataSetRecord();
}
@GetMapping(value = {"/queryById/{knowledgeBaseId}"}, produces = MediaType.APPLICATION_JSON_VALUE)
public ServiceResult getKnowledgeBaseRecordById(@PathVariable("knowledgeBaseId") String knowledgeBaseId) {
- return fastGptDatasetService.geDatasetById(knowledgeBaseId);
+ return datasetService.geDatasetById(knowledgeBaseId);
}
@GetMapping(value = {"/queryByMaaSId/{maaSPlatformId}"}, produces = MediaType.APPLICATION_JSON_VALUE)
public ServiceResult getKnowledgeBaseRecordByMaaSId(@PathVariable("maaSPlatformId") String maaSPlatformId) {
- List<KnowledgeBase> knowledgeBaseByMaaSId = fastGptDatasetMapper.getKnowledgeBaseByMaaSId(maaSPlatformId);
+ List<KnowledgeBase> knowledgeBaseByMaaSId = datasetMapper.getKnowledgeBaseByMaaSId(maaSPlatformId);
return new ServiceResult(new ResultHeader(200, "success"), knowledgeBaseByMaaSId);
}
+
+ @PostMapping(value = "/edit", produces = MediaType.APPLICATION_JSON_VALUE)
+ public Mono<ServiceResult> editDataset(@RequestBody KnowledgeBase knowledgeBase) {
+ return datasetService.editDataset(knowledgeBase);
+ }
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/MaaSController.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/MaaSController.java
index 4418287..2884f7b 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/MaaSController.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/controller/MaaSController.java
@@ -2,12 +2,10 @@ package org.onap.usecaseui.llmadaptation.controller;
import lombok.extern.slf4j.Slf4j;
import org.onap.usecaseui.llmadaptation.bean.*;
-import org.onap.usecaseui.llmadaptation.mapper.MaaSPlatformMapper;
import org.onap.usecaseui.llmadaptation.service.MaaSService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
-import reactor.core.publisher.Mono;
import java.util.List;
@@ -17,9 +15,6 @@ import java.util.List;
public class MaaSController {
@Autowired
- private MaaSPlatformMapper maaSPlatformMapper;
-
- @Autowired
private MaaSService maaSService;
@GetMapping(value = {"/operator/maas/getAll"}, produces = MediaType.APPLICATION_JSON_VALUE)
@@ -30,9 +25,6 @@ public class MaaSController {
@PostMapping(value = "/maas/register", produces = MediaType.APPLICATION_JSON_VALUE)
public ServiceResult registerMaaSPlatform(@RequestBody MaaSPlatform maaSPlatform) {
- maaSPlatformMapper.insertMaaSPlatform(maaSPlatform);
- maaSPlatformMapper.insertModel(maaSPlatform.getMaaSPlatformId(), maaSPlatform.getModelList());
- return new ServiceResult(new ResultHeader(200, "success"));
+ return maaSService.registerMaaSPlatform(maaSPlatform);
}
-
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/FastGptApplicationMapper.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/ApplicationMapper.java
index f3b6506..0937eed 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/FastGptApplicationMapper.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/ApplicationMapper.java
@@ -7,7 +7,7 @@ import org.onap.usecaseui.llmadaptation.bean.Application;
import java.util.List;
@Mapper
-public interface FastGptApplicationMapper {
+public interface ApplicationMapper {
List<Application> getAllApplication();
int insertApplication(@Param(value = "application") Application application);
@@ -15,4 +15,6 @@ public interface FastGptApplicationMapper {
int deleteApplicationById(@Param(value = "applicationId") String applicationId);
Application getApplicationById(@Param(value = "applicationId") String applicationId);
+
+ int updateApplication(@Param(value = "application") Application application);
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/FastGptDatasetMapper.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/DatasetMapper.java
index 4114f1a..5882061 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/FastGptDatasetMapper.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/DatasetMapper.java
@@ -7,7 +7,7 @@ import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
import java.util.List;
@Mapper
-public interface FastGptDatasetMapper {
+public interface DatasetMapper {
int insertKnowledgeBaseRecord(@Param(value = "knowledgeBase") KnowledgeBase knowledgeBase);
int insertFileName(@Param(value = "fileId") String fileId,@Param(value = "fileName") String fileName,@Param(value = "knowledgeBaseId") String knowledgeBaseId);
@@ -23,4 +23,6 @@ public interface FastGptDatasetMapper {
List<KnowledgeBase> getKnowledgeBaseByMaaSId(@Param(value = "maaSPlatformId") String maaSPlatformId);
int deleteFileById(@Param(value = "knowledgeBaseId") String knowledgeBaseId);
+
+ int updateKnowledgeBase(@Param(value = "knowledgeBase") KnowledgeBase knowledgeBase);
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/MaaSPlatformMapper.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/MaaSPlatformMapper.java
index bfe4089..d4eb21b 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/MaaSPlatformMapper.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/mapper/MaaSPlatformMapper.java
@@ -18,4 +18,8 @@ public interface MaaSPlatformMapper {
List<MaaSPlatform> getMaaSPlatforms();
List<ModelInformation> getModelList(@Param(value = "maaSPlatformId") String maaSPlatformId);
+
+ MaaSPlatform getMaaSPlatformById(@Param(value = "maaSPlatformId") String maaSPlatformId);
+
+ ModelInformation getModelById(@Param(value = "modelId") String modelId);
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/ApplicationService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/ApplicationService.java
new file mode 100644
index 0000000..636832e
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/ApplicationService.java
@@ -0,0 +1,21 @@
+package org.onap.usecaseui.llmadaptation.service;
+
+import com.alibaba.fastjson2.JSONObject;
+import org.onap.usecaseui.llmadaptation.bean.Application;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public interface ApplicationService {
+ Mono<ServiceResult> createApplication(Application application);
+
+ Flux<String> chat(JSONObject question);
+
+ Mono<ServiceResult> removeApplication(String applicationId);
+
+ ServiceResult getApplications();
+
+ ServiceResult getApplicationById(String applicationId);
+
+ Mono<ServiceResult> editApplication(Application application);
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengApplicationService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengApplicationService.java
new file mode 100644
index 0000000..8f600c4
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengApplicationService.java
@@ -0,0 +1,17 @@
+package org.onap.usecaseui.llmadaptation.service;
+
+import com.alibaba.fastjson2.JSONObject;
+import org.onap.usecaseui.llmadaptation.bean.Application;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public interface BiShengApplicationService {
+ Mono<ServiceResult> createApplication(Application application);
+
+ Flux<String> chat(JSONObject question);
+
+ Mono<ServiceResult> removeApplication(String applicationId);
+
+ Mono<ServiceResult> editApplication(Application application);
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengDatasetService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengDatasetService.java
new file mode 100644
index 0000000..27716d7
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/BiShengDatasetService.java
@@ -0,0 +1,15 @@
+package org.onap.usecaseui.llmadaptation.service;
+
+import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import org.springframework.http.codec.multipart.FilePart;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public interface BiShengDatasetService {
+ Mono<ServiceResult> createDataset(Flux<FilePart> fileParts, String metaData);
+
+ Mono<ServiceResult> removeDataset(String knowledgeBaseId);
+
+ Mono<ServiceResult> editDataset(KnowledgeBase knowledgeBase);
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/DatasetService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/DatasetService.java
new file mode 100644
index 0000000..f213362
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/DatasetService.java
@@ -0,0 +1,19 @@
+package org.onap.usecaseui.llmadaptation.service;
+
+import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import org.springframework.http.codec.multipart.FilePart;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public interface DatasetService {
+ Mono<ServiceResult> createDataset(Flux<FilePart> fileParts, String metaData);
+
+ Mono<ServiceResult> removeDataset(String knowledgeBaseId);
+
+ ServiceResult getDataSetRecord();
+
+ ServiceResult geDatasetById(String knowledgeBaseId);
+
+ Mono<ServiceResult> editDataset(KnowledgeBase knowledgeBase);
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptApplicationService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptApplicationService.java
index 19e6c11..6d09e6f 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptApplicationService.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptApplicationService.java
@@ -13,7 +13,5 @@ public interface FastGptApplicationService {
Mono<ServiceResult> removeApplication(String applicationId);
- ServiceResult getApplications();
-
- ServiceResult getApplicationById(String applicationId);
+ Mono<ServiceResult> editApplication(Application application);
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptDatasetService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptDatasetService.java
index 901b1e0..47356b8 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptDatasetService.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/FastGptDatasetService.java
@@ -1,5 +1,6 @@
package org.onap.usecaseui.llmadaptation.service;
+import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
import org.springframework.http.codec.multipart.FilePart;
import reactor.core.publisher.Flux;
@@ -10,7 +11,5 @@ public interface FastGptDatasetService {
Mono<ServiceResult> removeDataset(String knowledgeBaseId);
- ServiceResult getDataSetRecord();
-
- ServiceResult geDatasetById(String knowledgeBaseId);
+ Mono<ServiceResult> editDataset(KnowledgeBase knowledgeBase);
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/MaaSService.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/MaaSService.java
index 0517887..026666a 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/MaaSService.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/MaaSService.java
@@ -1,10 +1,13 @@
package org.onap.usecaseui.llmadaptation.service;
+import org.onap.usecaseui.llmadaptation.bean.MaaSPlatform;
import org.onap.usecaseui.llmadaptation.bean.Operator;
-import reactor.core.publisher.Mono;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
import java.util.List;
public interface MaaSService {
List<Operator> getAllMaaSPlatform();
+
+ ServiceResult registerMaaSPlatform(MaaSPlatform maaSPlatform);
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/ApplicationServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/ApplicationServiceImpl.java
new file mode 100644
index 0000000..ae9a515
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/ApplicationServiceImpl.java
@@ -0,0 +1,138 @@
+package org.onap.usecaseui.llmadaptation.service.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.usecaseui.llmadaptation.bean.*;
+import org.onap.usecaseui.llmadaptation.constant.ServerConstant;
+import org.onap.usecaseui.llmadaptation.mapper.ApplicationMapper;
+import org.onap.usecaseui.llmadaptation.mapper.DatasetMapper;
+import org.onap.usecaseui.llmadaptation.mapper.MaaSPlatformMapper;
+import org.onap.usecaseui.llmadaptation.service.ApplicationService;
+import org.onap.usecaseui.llmadaptation.service.BiShengApplicationService;
+import org.onap.usecaseui.llmadaptation.service.FastGptApplicationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+
+@Slf4j
+@Service
+public class ApplicationServiceImpl implements ApplicationService {
+ @Autowired
+ private ApplicationMapper applicationMapper;
+
+ @Autowired
+ private DatasetMapper datasetMapper;
+
+ @Autowired
+ private FastGptApplicationService fastGptApplicationService;
+
+ @Autowired
+ private BiShengApplicationService biShengApplicationService;
+
+ @Autowired
+ private MaaSPlatformMapper maaSPlatformMapper;
+
+ @Autowired
+ private ServerConstant serverConstant;
+
+ @Override
+ public Mono<ServiceResult> createApplication(Application application) {
+ List<Application> applications = applicationMapper.getAllApplication();
+ if (!CollectionUtils.isEmpty(applications)) {
+ List<Application> collect = applications.stream().filter(app -> app.getApplicationName().equals(application.getApplicationName())).toList();
+ if (!collect.isEmpty()) {
+ return Mono.just(new ServiceResult(new ResultHeader(500, "name exists"), applications));
+ }
+ }
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(application.getMaaSPlatformId());
+ if (maaSPlatformById == null) {
+ return Mono.just(new ServiceResult(new ResultHeader(500, "maas is not exist")));
+ }
+ String maaSType = maaSPlatformById.getMaaSType();
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptApplicationService.createApplication(application);
+ }
+ return biShengApplicationService.createApplication(application);
+ }
+
+ @Override
+ public Mono<ServiceResult> removeApplication(String applicationId) {
+ String maaSType = getMaaSType(applicationId);
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptApplicationService.removeApplication(applicationId);
+ }
+ return biShengApplicationService.removeApplication(applicationId);
+ }
+
+ @Override
+ public Flux<String> chat(JSONObject question) {
+ String applicationId = question.getString("applicationId");
+ String maaSType = getMaaSType(applicationId);
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptApplicationService.chat(question);
+ }
+ return biShengApplicationService.chat(question);
+ }
+
+ @Override
+ public ServiceResult getApplications() {
+ List<Application> allApplication = applicationMapper.getAllApplication();
+ if (CollectionUtils.isEmpty(allApplication)) {
+ return new ServiceResult(new ResultHeader(500, "no application"), allApplication);
+ }
+ allApplication.forEach(application -> {
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(application.getKnowledgeBaseId());
+ if (knowledgeBaseRecordById != null) {
+ application.setOperatorId(knowledgeBaseRecordById.getOperatorId());
+ application.setOperatorName(knowledgeBaseRecordById.getOperatorName());
+ application.setMaaSPlatformId(knowledgeBaseRecordById.getMaaSPlatformId());
+ application.setMaaSPlatformName(knowledgeBaseRecordById.getMaaSPlatformName());
+ application.setKnowledgeBaseName(knowledgeBaseRecordById.getKnowledgeBaseName());
+ }
+ });
+ return new ServiceResult(new ResultHeader(200, "success"), allApplication);
+ }
+
+ @Override
+ public ServiceResult getApplicationById(String applicationId) {
+ Application application = applicationMapper.getApplicationById(applicationId);
+ if (application == null) {
+ return new ServiceResult(new ResultHeader(500, "no application"), application);
+ }
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(application.getKnowledgeBaseId());
+ application.setOperatorId(knowledgeBaseRecordById.getOperatorId());
+ application.setOperatorName(knowledgeBaseRecordById.getOperatorName());
+ application.setMaaSPlatformId(knowledgeBaseRecordById.getMaaSPlatformId());
+ application.setMaaSPlatformName(knowledgeBaseRecordById.getMaaSPlatformName());
+ application.setKnowledgeBaseName(knowledgeBaseRecordById.getKnowledgeBaseName());
+ return new ServiceResult(new ResultHeader(200, "success"), application);
+ }
+
+ @Override
+ public Mono<ServiceResult> editApplication(Application application) {
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(application.getMaaSPlatformId());
+ if (maaSPlatformById == null) {
+ return Mono.just(new ServiceResult(new ResultHeader(500, "maas is not exist")));
+ }
+ String maaSType = maaSPlatformById.getMaaSType();
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptApplicationService.editApplication(application);
+ }
+ return biShengApplicationService.editApplication(application);
+ }
+
+ private String getMaaSType(String applicationId) {
+ Application applicationById = applicationMapper.getApplicationById(applicationId);
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(applicationById.getKnowledgeBaseId());
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(knowledgeBaseRecordById.getMaaSPlatformId());
+ return maaSPlatformById.getMaaSType();
+ }
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengApplicationServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengApplicationServiceImpl.java
new file mode 100644
index 0000000..737fc66
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengApplicationServiceImpl.java
@@ -0,0 +1,178 @@
+package org.onap.usecaseui.llmadaptation.service.impl;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.usecaseui.llmadaptation.bean.Application;
+import org.onap.usecaseui.llmadaptation.bean.ResultHeader;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import org.onap.usecaseui.llmadaptation.bean.bisheng.BiShengCreateDatasetResponse;
+import org.onap.usecaseui.llmadaptation.constant.BiShengConstant;
+import org.onap.usecaseui.llmadaptation.constant.CommonConstant;
+import org.onap.usecaseui.llmadaptation.constant.ServerConstant;
+import org.onap.usecaseui.llmadaptation.mapper.ApplicationMapper;
+import org.onap.usecaseui.llmadaptation.service.BiShengApplicationService;
+import org.onap.usecaseui.llmadaptation.util.TimeUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.reactive.function.client.WebClient;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.springframework.http.MediaType.APPLICATION_JSON;
+
+@Slf4j
+@Service
+public class BiShengApplicationServiceImpl implements BiShengApplicationService {
+ @Autowired
+ private ApplicationMapper applicationMapper;
+
+ @Autowired
+ private WebClient webClient;
+
+ @Autowired
+ private ServerConstant serverConstant;
+
+ @Override
+ public Mono<ServiceResult> createApplication(Application application) {
+ JSONObject createParam = new JSONObject();
+ createParam.put("logo", "");
+ createParam.put("name", application.getApplicationName());
+ createParam.put("prompt", application.getPrompt());
+ return webClient.post()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.APPLICATION_URL)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .bodyValue(createParam)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(createResponse -> {
+ JSONObject data = createResponse.getData();
+ if (data == null) {
+ return Mono.just(new ServiceResult(new ResultHeader(createResponse.getStatus_code(), createResponse.getStatus_message())));
+ }
+ String applicationId = data.getString("id");
+ data.put("model_name", application.getLargeModelId());
+ data.put("temperature", application.getTemperature() / 10);
+ List<Integer> list = new ArrayList<>();
+ list.add(Integer.valueOf(application.getKnowledgeBaseId()));
+ data.put("knowledge_list", list);
+ data.put("guide_word", application.getOpeningRemarks());
+ data.put("update_time", TimeUtil.getNowTime());
+ return webClient.put()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.APPLICATION_URL)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .bodyValue(data)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(updateResponse -> {
+ application.setApplicationId(applicationId);
+ applicationMapper.insertApplication(application);
+ return Mono.just(new ServiceResult(new ResultHeader(200, "Application created successfully")));
+ });
+ }).onErrorResume(e -> {
+ log.error("Error occurred while creating application: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "Application creation failed")));
+ });
+ }
+
+ @Override
+ public Flux<String> chat(JSONObject question) {
+ JSONObject param = new JSONObject();
+ param.put("model", question.getString("applicationId"));
+ param.put("temperature", 0);
+ param.put("stream", true);
+ JSONObject message = new JSONObject();
+ message.put("role", "user");
+ message.put("content", question.getString("question"));
+ JSONArray jsonArray = new JSONArray();
+ jsonArray.add(message);
+ param.put("messages", jsonArray);
+ return webClient.post()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.APPLICATION_CHAT_URL)
+ .bodyValue(param)
+ .retrieve()
+ .bodyToFlux(String.class)
+ .flatMap(response -> {
+ if("[DONE]".equals(response)){
+ return Flux.just(response);
+ }
+ JSONArray choices = JSONObject.parseObject(response).getJSONArray("choices");
+ String jsonString = JSONObject.toJSONString(choices.get(0));
+ JSONObject jsonObject = JSONObject.parseObject(jsonString);
+ String string = jsonObject.getJSONObject("delta").getString("content");
+ return Flux.just(string);
+ })
+ .onErrorResume(e -> {
+ log.error("An error occurred {}", e.getMessage());
+ return Flux.just("Network Error");
+ });
+ }
+
+ @Override
+ public Mono<ServiceResult> removeApplication(String applicationId) {
+ String url = serverConstant.getBiShengServer() + BiShengConstant.DELETE_APPLICATION + applicationId;
+ return webClient.post()
+ .uri(url)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(response -> {
+ if (response.getStatus_code() == 200) {
+ return Mono.fromRunnable(() -> {
+ try {
+ applicationMapper.deleteApplicationById(applicationId);
+ } catch (Exception dbException) {
+ throw new RuntimeException("Database operation failed", dbException);
+ }
+ }).then(Mono.just(new ServiceResult(new ResultHeader(200, "delete success"))));
+ } else {
+ return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatus_message())));
+ }
+ })
+ .onErrorResume(e -> {
+ log.error("Error occurred while delete dataset: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "delete failed")));
+ });
+ }
+
+ @Override
+ public Mono<ServiceResult> editApplication(Application application) {
+ String url = serverConstant.getBiShengServer() + BiShengConstant.GET_APPLICATION_URL + application.getApplicationId();
+ return webClient.get()
+ .uri(url)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(createResponse -> {
+ JSONObject data = createResponse.getData();
+ if (data == null) {
+ return Mono.just(new ServiceResult(new ResultHeader(createResponse.getStatus_code(), createResponse.getStatus_message())));
+ }
+ data.put("desc", application.getApplicationDescription());
+ data.put("name", application.getApplicationName());
+ data.put("update_time", TimeUtil.getNowTime());
+ List<Integer> list = new ArrayList<>();
+ list.add(Integer.valueOf(application.getKnowledgeBaseId()));
+ data.put("knowledge_list", list);
+ return webClient.put()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.APPLICATION_URL)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .bodyValue(data)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(updateResponse -> {
+ applicationMapper.updateApplication(application);
+ return Mono.just(new ServiceResult(new ResultHeader(200, "Application update successfully")));
+ });
+ }).onErrorResume(e -> {
+ log.error("Error occurred while update application: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "Application update failed")));
+ });
+ }
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengDatasetServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengDatasetServiceImpl.java
new file mode 100644
index 0000000..bc1cec0
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/BiShengDatasetServiceImpl.java
@@ -0,0 +1,191 @@
+package org.onap.usecaseui.llmadaptation.service.impl;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
+import org.onap.usecaseui.llmadaptation.bean.ResultHeader;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import org.onap.usecaseui.llmadaptation.bean.bisheng.BiShengCreateDatasetResponse;
+import org.onap.usecaseui.llmadaptation.bean.bisheng.ProcessFileResponse;
+import org.onap.usecaseui.llmadaptation.constant.BiShengConstant;
+import org.onap.usecaseui.llmadaptation.constant.CommonConstant;
+import org.onap.usecaseui.llmadaptation.constant.ServerConstant;
+import org.onap.usecaseui.llmadaptation.mapper.DatasetMapper;
+import org.onap.usecaseui.llmadaptation.service.BiShengDatasetService;
+import org.onap.usecaseui.llmadaptation.util.TimeUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.http.ContentDisposition;
+import org.springframework.http.MediaType;
+import org.springframework.http.client.MultipartBodyBuilder;
+import org.springframework.http.codec.multipart.FilePart;
+import org.springframework.stereotype.Service;
+import org.springframework.web.reactive.function.BodyInserters;
+import org.springframework.web.reactive.function.client.WebClient;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.util.UUID;
+
+import static org.springframework.http.MediaType.APPLICATION_JSON;
+
+@Slf4j
+@Service
+public class BiShengDatasetServiceImpl implements BiShengDatasetService {
+
+ @Autowired
+ private WebClient webClient;
+
+ @Autowired
+ private DatasetMapper datasetMapper;
+
+ @Autowired
+ private ServerConstant serverConstant;
+
+ @Override
+ public Mono<ServiceResult> createDataset(Flux<FilePart> fileParts, String metaData) {
+ KnowledgeBase knowledgeBase = JSONObject.parseObject(metaData, KnowledgeBase.class);
+ knowledgeBase.setUpdateTime(TimeUtil.getNowTime());
+ JSONObject createParam = new JSONObject();
+ createParam.put("description", knowledgeBase.getKnowledgeBaseDescription());
+ createParam.put("model", serverConstant.getBiShengModel());
+ createParam.put("name", knowledgeBase.getKnowledgeBaseName());
+ return webClient.post()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.CREATE_DATASET_URL)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .bodyValue(createParam)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(response -> {
+ if (response.getStatus_code() != 200) {
+ return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatus_message())));
+ }
+ int knowledgeBaseId = response.getData().getIntValue("id");
+ return fileParts.flatMap(filePart -> processFile(filePart, knowledgeBaseId))
+ .then(Mono.defer(() -> {
+ knowledgeBase.setKnowledgeBaseId(String.valueOf(knowledgeBaseId));
+ datasetMapper.insertKnowledgeBaseRecord(knowledgeBase);
+ return Mono.just(new ServiceResult(new ResultHeader(200, "create success")));
+ })).onErrorResume(e -> {
+ log.error("Error occurred during file upload: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "file upload failed")));
+ });
+ }).onErrorResume(e -> {
+ log.error("Error occurred while creating dataset: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "create failed")));
+ });
+ }
+
+ private Mono<Void> processFile(FilePart filePart, int knowledgeBaseId) {
+ String filename = filePart.filename();
+ Flux<DataBuffer> content = filePart.content();
+ MultipartBodyBuilder builder = new MultipartBodyBuilder();
+ builder.asyncPart("file", content, DataBuffer.class)
+ .headers(headers -> {
+ ContentDisposition contentDisposition = ContentDisposition
+ .builder("form-data")
+ .name("file")
+ .filename(filename)
+ .build();
+ headers.setContentDisposition(contentDisposition);
+ headers.setContentType(MediaType.TEXT_PLAIN);
+ });
+ return webClient.post()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.UPLOAD_FILE_URL)
+ .contentType(MediaType.MULTIPART_FORM_DATA)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .body(BodyInserters.fromMultipartData(builder.build()))
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(response -> {
+ if (response.getStatus_code() != 200) {
+ log.error("response is {}", response);
+ return Mono.empty();
+ }
+ String filePath = response.getData().getString("file_path");
+ JSONObject processParam = new JSONObject();
+ processParam.put("knowledge_id", knowledgeBaseId);
+ JSONArray jsonArray = new JSONArray();
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("file_path", filePath);
+ jsonArray.add(jsonObject);
+ processParam.put("file_list", jsonArray);
+ return webClient.post()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.PROCESS_FILE_URL)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .bodyValue(processParam)
+ .retrieve()
+ .bodyToMono(ProcessFileResponse.class).flatMap(lastResponse -> {
+ if (lastResponse.getStatus_code() == 200) {
+ String fileId = UUID.randomUUID().toString();
+ datasetMapper.insertFileName(fileId, filename, String.valueOf(knowledgeBaseId));
+ }
+ return Mono.empty();
+ });
+ });
+ }
+
+ @Override
+ public Mono<ServiceResult> removeDataset(String knowledgeBaseId) {
+ return webClient.delete()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.DATASET_V2_URL + knowledgeBaseId)
+ .header(CommonConstant.COOKIE, BiShengConstant.COOKIE_VALUE)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(response -> {
+ if (response.getStatus_code() == 200) {
+ return Mono.fromRunnable(() -> {
+ try {
+ datasetMapper.deleteKnowledgeBaseByUuid(knowledgeBaseId);
+ datasetMapper.deleteFileById(knowledgeBaseId);
+ } catch (Exception dbException) {
+ throw new RuntimeException("Database operation failed", dbException);
+ }
+ }).then(Mono.just(new ServiceResult(new ResultHeader(200, "delete success"))));
+ } else {
+ return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatus_message())));
+ }
+ })
+ .onErrorResume(e -> {
+ log.error("Error occurred while delete dataset: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "delete failed")));
+ });
+ }
+
+ @Override
+ public Mono<ServiceResult> editDataset(KnowledgeBase knowledgeBase) {
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(knowledgeBase.getKnowledgeBaseId());
+ if (knowledgeBaseRecordById == null) {
+ return Mono.just(new ServiceResult(new ResultHeader(500, "dataset is not exist")));
+ }
+ JSONObject updateParam = new JSONObject();
+ updateParam.put("knowledge_id", knowledgeBase.getKnowledgeBaseId());
+ updateParam.put("name", knowledgeBase.getKnowledgeBaseName());
+ updateParam.put("description", knowledgeBase.getKnowledgeBaseDescription());
+ updateParam.put("model", serverConstant.getBiShengModel());
+
+ return webClient.put()
+ .uri(serverConstant.getBiShengServer() + BiShengConstant.DATASET_V2_URL)
+ .contentType(APPLICATION_JSON)
+ .bodyValue(updateParam)
+ .retrieve()
+ .bodyToMono(BiShengCreateDatasetResponse.class)
+ .flatMap(response -> {
+ if (response.getStatus_code() == 200) {
+ return Mono.fromRunnable(() -> {
+ knowledgeBase.setUpdateTime(TimeUtil.getNowTime());
+ datasetMapper.updateKnowledgeBase(knowledgeBase);
+ }).then(Mono.just(new ServiceResult(new ResultHeader(200, "update success"))));
+ } else {
+ return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatus_message())));
+ }
+ })
+ .onErrorResume(e -> {
+ log.error("Error occurred while delete dataset: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "update failed")));
+ });
+ }
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/DatasetServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/DatasetServiceImpl.java
new file mode 100644
index 0000000..0a6feb5
--- /dev/null
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/DatasetServiceImpl.java
@@ -0,0 +1,111 @@
+package org.onap.usecaseui.llmadaptation.service.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
+import org.onap.usecaseui.llmadaptation.bean.MaaSPlatform;
+import org.onap.usecaseui.llmadaptation.bean.ResultHeader;
+import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
+import org.onap.usecaseui.llmadaptation.constant.ServerConstant;
+import org.onap.usecaseui.llmadaptation.mapper.DatasetMapper;
+import org.onap.usecaseui.llmadaptation.mapper.MaaSPlatformMapper;
+import org.onap.usecaseui.llmadaptation.service.BiShengDatasetService;
+import org.onap.usecaseui.llmadaptation.service.DatasetService;
+import org.onap.usecaseui.llmadaptation.service.FastGptDatasetService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.codec.multipart.FilePart;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+
+@Slf4j
+@Service
+public class DatasetServiceImpl implements DatasetService {
+
+ @Autowired
+ private DatasetMapper datasetMapper;
+
+ @Autowired
+ private FastGptDatasetService fastGptDatasetService;
+
+ @Autowired
+ private BiShengDatasetService biShengDatasetService;
+
+ @Autowired
+ private MaaSPlatformMapper maaSPlatformMapper;
+
+ @Autowired
+ private ServerConstant serverConstant;
+
+ @Override
+ public Mono<ServiceResult> createDataset(Flux<FilePart> fileParts, String metaData) {
+ KnowledgeBase knowledgeBase = JSONObject.parseObject(metaData, KnowledgeBase.class);
+ List<KnowledgeBase> knowledgeBaseRecords = datasetMapper.getKnowledgeBaseRecords();
+ if (!CollectionUtils.isEmpty(knowledgeBaseRecords)) {
+ List<KnowledgeBase> collect = knowledgeBaseRecords.stream().filter(base -> base.getKnowledgeBaseName().equals(knowledgeBase.getKnowledgeBaseName())).toList();
+ if (!collect.isEmpty()) {
+ return Mono.just(new ServiceResult(new ResultHeader(200, "name exists"), knowledgeBaseRecords));
+ }
+ }
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(knowledgeBase.getMaaSPlatformId());
+ String maaSType = maaSPlatformById.getMaaSType();
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptDatasetService.createDataset(fileParts, metaData);
+ }
+ return biShengDatasetService.createDataset(fileParts, metaData);
+ }
+
+ @Override
+ public Mono<ServiceResult> removeDataset(String knowledgeBaseId) {
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(knowledgeBaseId);
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(knowledgeBaseRecordById.getMaaSPlatformId());
+ String maaSType = maaSPlatformById.getMaaSType();
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptDatasetService.removeDataset(knowledgeBaseId);
+ }
+ return biShengDatasetService.removeDataset(knowledgeBaseId);
+ }
+
+ @Override
+ public ServiceResult getDataSetRecord() {
+ List<KnowledgeBase> knowledgeBaseRecords = datasetMapper.getKnowledgeBaseRecords();
+ if (CollectionUtils.isEmpty(knowledgeBaseRecords)) {
+ return new ServiceResult(new ResultHeader(500, "get datasets failed"), knowledgeBaseRecords);
+ }
+
+ knowledgeBaseRecords.forEach(knowledgeBase -> {
+ List<String> fileNamesByKnowledgeBaseId = datasetMapper.getFileNamesByKnowledgeBaseId(knowledgeBase.getKnowledgeBaseId());
+ knowledgeBase.setFilesName(fileNamesByKnowledgeBaseId);
+ });
+ return new ServiceResult(new ResultHeader(200, "success"), knowledgeBaseRecords);
+ }
+
+ @Override
+ public ServiceResult geDatasetById(String knowledgeBaseId) {
+ KnowledgeBase knowledgeBase = datasetMapper.getKnowledgeBaseRecordById(knowledgeBaseId);
+ if (knowledgeBase == null) {
+ return new ServiceResult(new ResultHeader(500, "get dataset failed"));
+ }
+ List<String> fileNamesByKnowledgeBaseId = datasetMapper.getFileNamesByKnowledgeBaseId(knowledgeBase.getKnowledgeBaseId());
+ knowledgeBase.setFilesName(fileNamesByKnowledgeBaseId);
+
+ return new ServiceResult(new ResultHeader(200, "success"), knowledgeBase);
+ }
+
+ @Override
+ public Mono<ServiceResult> editDataset(KnowledgeBase knowledgeBase) {
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(knowledgeBase.getKnowledgeBaseId());
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(knowledgeBaseRecordById.getMaaSPlatformId());
+ String maaSType = maaSPlatformById.getMaaSType();
+ String fastGptType = serverConstant.getFastGptType();
+ if (fastGptType.equals(maaSType)) {
+ return fastGptDatasetService.editDataset(knowledgeBase);
+ }
+ return biShengDatasetService.editDataset(knowledgeBase);
+ }
+}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptApplicationServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptApplicationServiceImpl.java
index d8f68ad..14f30ad 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptApplicationServiceImpl.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptApplicationServiceImpl.java
@@ -5,20 +5,19 @@ import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.onap.usecaseui.llmadaptation.bean.Application;
-import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
import org.onap.usecaseui.llmadaptation.bean.ResultHeader;
import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
-import org.onap.usecaseui.llmadaptation.bean.fastgpt.CreateDataSetResponse;
+import org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset.CreateDataSetResponse;
import org.onap.usecaseui.llmadaptation.bean.fastgpt.application.*;
+import org.onap.usecaseui.llmadaptation.constant.CommonConstant;
import org.onap.usecaseui.llmadaptation.constant.FastGptConstant;
-import org.onap.usecaseui.llmadaptation.mapper.FastGptApplicationMapper;
-import org.onap.usecaseui.llmadaptation.mapper.FastGptDatasetMapper;
+import org.onap.usecaseui.llmadaptation.constant.ServerConstant;
+import org.onap.usecaseui.llmadaptation.mapper.ApplicationMapper;
import org.onap.usecaseui.llmadaptation.service.FastGptApplicationService;
import org.onap.usecaseui.llmadaptation.util.TimeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -39,16 +38,17 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
private ResourceLoader resourceLoader;
@Autowired
- private FastGptApplicationMapper fastGptApplicationMapper;
+ private ApplicationMapper applicationMapper;
@Autowired
private WebClient webClient;
@Autowired
- private FastGptDatasetMapper fastGptDatasetMapper;
+ private ServerConstant serverConstant;
private final ObjectMapper objectMapper = new ObjectMapper();
+ @Override
public Mono<ServiceResult> createApplication(Application application) {
try (InputStream inputStream = resourceLoader.getResource(FastGptConstant.CREATE_APP_PARAM_FILE_URL).getInputStream()) {
CreateApplicationParam createApplicationParam = objectMapper.readValue(inputStream, CreateApplicationParam.class);
@@ -68,9 +68,9 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
private Mono<ServiceResult> createApplication(CreateApplicationParam createApplicationParam, Application application) {
return webClient.post()
- .uri(FastGptConstant.CREATE_APPLICATION)
+ .uri(serverConstant.getFastGptServer() + FastGptConstant.CREATE_APPLICATION)
.contentType(APPLICATION_JSON)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.bodyValue(createApplicationParam)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
@@ -85,7 +85,7 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
private Mono<ServiceResult> handleApplicationResponse(CreateDataSetResponse createDataSetResponse, Application application) {
String data = String.valueOf(createDataSetResponse.getData());
application.setApplicationId(data);
- String url = FastGptConstant.UPDATE_APPLICATION + data;
+ String url = serverConstant.getFastGptServer() + FastGptConstant.UPDATE_APPLICATION + data;
UpdateApplicationParam updateApplicationParam = new UpdateApplicationParam();
updateApplicationParam.setAvatar("/imgs/app/avatar/simple.svg");
updateApplicationParam.setDefaultPermission(0);
@@ -95,7 +95,7 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
return webClient.put()
.uri(url)
.contentType(APPLICATION_JSON)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.bodyValue(updateApplicationParam)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
@@ -113,18 +113,18 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
publishApplicationParam.setVersionName(TimeUtil.getNowTime());
publishApplicationParam.getChatConfig().setWelcomeText(application.getOpeningRemarks());
setApplicationParameters(application, publishApplicationParam);
- String publishUrl = FastGptConstant.PUBLISH_APPLICATION + data;
+ String publishUrl = serverConstant.getFastGptServer() + FastGptConstant.PUBLISH_APPLICATION + data;
return webClient.post()
.uri(publishUrl)
.contentType(APPLICATION_JSON)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.bodyValue(publishApplicationParam)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
.flatMap(response -> {
if (response.getCode() == 200) {
- fastGptApplicationMapper.insertApplication(application);
+ applicationMapper.insertApplication(application);
return Mono.just(new ServiceResult(new ResultHeader(200, "Application created successfully")));
}
return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatusText())));
@@ -166,8 +166,8 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
});
}
+ @Override
public Flux<String> chat(JSONObject question) {
- log.info(JSONObject.toJSONString(question));
ChatParam chatParam = new ChatParam();
chatParam.setAppId(question.getString("applicationId"));
chatParam.setStream(true);
@@ -186,9 +186,9 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
chatParam.setMessages(messages);
AtomicBoolean isDone = new AtomicBoolean(false);
return webClient.post()
- .uri(FastGptConstant.APPLICATION_CHAT_URL)
+ .uri(serverConstant.getFastGptServer() + FastGptConstant.APPLICATION_CHAT_URL)
.contentType(APPLICATION_JSON)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.bodyValue(chatParam)
.retrieve()
.bodyToFlux(String.class).flatMap(response -> parseAndTransform(response, isDone))
@@ -210,7 +210,7 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
JSONObject choice = choices.getJSONObject(0);
if ("stop".equals(choice.getString("finish_reason"))) {
isDone.set(true);
- return Flux.empty();
+ return Flux.just("[DONE]");
}
String string = choice.getJSONObject("delta").getString("content");
isDone.set(false);
@@ -218,21 +218,21 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
return Flux.just(string);
}
+ @Override
public Mono<ServiceResult> removeApplication(String applicationId) {
- String url = FastGptConstant.DELETE_APPLICATION + applicationId;
-
+ String url = serverConstant.getFastGptServer() + FastGptConstant.DELETE_APPLICATION + applicationId;
return webClient.delete()
.uri(url)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
.flatMap(response -> {
if (response.getCode() == 200) {
return Mono.fromRunnable(() -> {
try {
- fastGptApplicationMapper.deleteApplicationById(applicationId);
+ applicationMapper.deleteApplicationById(applicationId);
} catch (Exception dbException) {
- throw new RuntimeException("Database operation failed", dbException); // 抛出新异常
+ throw new RuntimeException("Database operation failed", dbException);
}
}).then(Mono.just(new ServiceResult(new ResultHeader(200, "delete success"))));
} else {
@@ -245,35 +245,34 @@ public class FastGptApplicationServiceImpl implements FastGptApplicationService
});
}
- public ServiceResult getApplications() {
- List<Application> allApplication = fastGptApplicationMapper.getAllApplication();
- if (CollectionUtils.isEmpty(allApplication)) {
- return new ServiceResult(new ResultHeader(200, "no application"), allApplication);
- }
- allApplication.forEach(application -> {
- KnowledgeBase knowledgeBaseRecordById = fastGptDatasetMapper.getKnowledgeBaseRecordById(application.getKnowledgeBaseId());
- if (knowledgeBaseRecordById != null) {
- application.setOperatorId(knowledgeBaseRecordById.getOperatorId());
- application.setOperatorName(knowledgeBaseRecordById.getOperatorName());
- application.setMaaSPlatformId(knowledgeBaseRecordById.getMaaSPlatformId());
- application.setMaaSPlatformName(knowledgeBaseRecordById.getMaaSPlatformName());
- application.setKnowledgeBaseName(knowledgeBaseRecordById.getKnowledgeBaseName());
- }
- });
- return new ServiceResult(new ResultHeader(200, "success"), allApplication);
- }
+ @Override
+ public Mono<ServiceResult> editApplication(Application application) {
+ String url = serverConstant.getFastGptServer() + FastGptConstant.UPDATE_APPLICATION + application.getApplicationId();
+ UpdateApplicationParam updateApplicationParam = new UpdateApplicationParam();
+ updateApplicationParam.setAvatar("/imgs/app/avatar/simple.svg");
+ updateApplicationParam.setName(application.getApplicationName());
+ updateApplicationParam.setIntro(application.getApplicationDescription());
- public ServiceResult getApplicationById(String applicationId) {
- Application application = fastGptApplicationMapper.getApplicationById(applicationId);
- if (application == null) {
- return new ServiceResult(new ResultHeader(200, "no application"), application);
- }
- KnowledgeBase knowledgeBaseRecordById = fastGptDatasetMapper.getKnowledgeBaseRecordById(application.getKnowledgeBaseId());
- application.setOperatorId(knowledgeBaseRecordById.getOperatorId());
- application.setOperatorName(knowledgeBaseRecordById.getOperatorName());
- application.setMaaSPlatformId(knowledgeBaseRecordById.getMaaSPlatformId());
- application.setMaaSPlatformName(knowledgeBaseRecordById.getMaaSPlatformName());
- application.setKnowledgeBaseName(knowledgeBaseRecordById.getKnowledgeBaseName());
- return new ServiceResult(new ResultHeader(200, "success"), application);
+ return webClient.put()
+ .uri(url)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .bodyValue(updateApplicationParam)
+ .retrieve()
+ .bodyToMono(CreateDataSetResponse.class)
+ .flatMap(response -> {
+ if (response.getCode() == 200) {
+ return Mono.fromRunnable(() -> {
+ applicationMapper.updateApplication(application);
+ }).then(Mono.just(new ServiceResult(new ResultHeader(200, "edit success"))));
+ } else {
+ return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatusText())));
+ }
+ })
+ .onErrorResume(e -> {
+ log.error("Error occurred while delete dataset: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "edit failed")));
+ });
}
+
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptDatasetServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptDatasetServiceImpl.java
index 0cc1528..df8787d 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptDatasetServiceImpl.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/FastGptDatasetServiceImpl.java
@@ -7,11 +7,13 @@ import org.jetbrains.annotations.NotNull;
import org.onap.usecaseui.llmadaptation.bean.KnowledgeBase;
import org.onap.usecaseui.llmadaptation.bean.ResultHeader;
import org.onap.usecaseui.llmadaptation.bean.ServiceResult;
-import org.onap.usecaseui.llmadaptation.bean.fastgpt.CreateCollectionParam;
-import org.onap.usecaseui.llmadaptation.bean.fastgpt.CreateDataSetParam;
-import org.onap.usecaseui.llmadaptation.bean.fastgpt.CreateDataSetResponse;
+import org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset.CreateCollectionParam;
+import org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset.CreateDataSetParam;
+import org.onap.usecaseui.llmadaptation.bean.fastgpt.dataset.CreateDataSetResponse;
+import org.onap.usecaseui.llmadaptation.constant.CommonConstant;
import org.onap.usecaseui.llmadaptation.constant.FastGptConstant;
-import org.onap.usecaseui.llmadaptation.mapper.FastGptDatasetMapper;
+import org.onap.usecaseui.llmadaptation.constant.ServerConstant;
+import org.onap.usecaseui.llmadaptation.mapper.DatasetMapper;
import org.onap.usecaseui.llmadaptation.service.FastGptDatasetService;
import org.onap.usecaseui.llmadaptation.util.TimeUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,13 +23,11 @@ import org.springframework.http.MediaType;
import org.springframework.http.client.MultipartBodyBuilder;
import org.springframework.http.codec.multipart.FilePart;
import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-import java.util.List;
import static org.springframework.http.MediaType.APPLICATION_JSON;
@@ -35,25 +35,29 @@ import static org.springframework.http.MediaType.APPLICATION_JSON;
@Service
public class FastGptDatasetServiceImpl implements FastGptDatasetService {
@Autowired
- private FastGptDatasetMapper fastGptDatasetMapper;
+ private DatasetMapper datasetMapper;
@Autowired
private WebClient webClient;
+ @Autowired
+ private ServerConstant serverConstant;
+
+ @Override
public Mono<ServiceResult> createDataset(Flux<FilePart> fileParts, String metaData) {
KnowledgeBase knowledgeBase = JSONObject.parseObject(metaData, KnowledgeBase.class);
knowledgeBase.setUpdateTime(TimeUtil.getNowTime());
CreateDataSetParam dataSetParam = new CreateDataSetParam();
- dataSetParam.setAgentModel("qwen2:7b");
+ dataSetParam.setAgentModel(serverConstant.getFastGptModel());
dataSetParam.setType("dataset");
dataSetParam.setAvatar("core/dataset/commonDatasetColor");
dataSetParam.setVectorModel("m3e");
dataSetParam.setIntro(knowledgeBase.getKnowledgeBaseDescription());
dataSetParam.setName(knowledgeBase.getKnowledgeBaseName());
return webClient.post()
- .uri(FastGptConstant.CREATE_DATASET_URL)
+ .uri(serverConstant.getFastGptServer() + FastGptConstant.CREATE_DATASET_URL)
.contentType(APPLICATION_JSON)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.bodyValue(dataSetParam)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
@@ -63,7 +67,7 @@ public class FastGptDatasetServiceImpl implements FastGptDatasetService {
return fileParts.flatMap(filePart -> uploadFile(filePart, knowledgeBaseId))
.then(Mono.defer(() -> {
knowledgeBase.setKnowledgeBaseId(knowledgeBaseId);
- fastGptDatasetMapper.insertKnowledgeBaseRecord(knowledgeBase);
+ datasetMapper.insertKnowledgeBaseRecord(knowledgeBase);
return Mono.just(new ServiceResult(new ResultHeader(200, "create success")));
}))
.onErrorResume(e -> {
@@ -99,9 +103,9 @@ public class FastGptDatasetServiceImpl implements FastGptDatasetService {
});
return webClient.post()
- .uri(FastGptConstant.UPLOAD_FILE_URL)
+ .uri(serverConstant.getFastGptServer() + FastGptConstant.UPLOAD_FILE_URL)
.contentType(MediaType.MULTIPART_FORM_DATA)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.body(BodyInserters.fromMultipartData(builder.build()))
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
@@ -116,15 +120,15 @@ public class FastGptDatasetServiceImpl implements FastGptDatasetService {
CreateCollectionParam createCollectionParam = getCreateCollectionParam(knowledgeBaseId, fileId);
return webClient.post()
- .uri(FastGptConstant.CRATE_COLLECTION_URL)
+ .uri(serverConstant.getFastGptServer() + FastGptConstant.CRATE_COLLECTION_URL)
.contentType(APPLICATION_JSON)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.bodyValue(createCollectionParam)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
.flatMap(responseData -> {
if (responseData.getCode() == 200) {
- fastGptDatasetMapper.insertFileName(fileId, filename, knowledgeBaseId);
+ datasetMapper.insertFileName(fileId, filename, knowledgeBaseId);
}
return Mono.empty();
});
@@ -144,21 +148,22 @@ public class FastGptDatasetServiceImpl implements FastGptDatasetService {
return createCollectionParam;
}
+ @Override
public Mono<ServiceResult> removeDataset(String knowledgeBaseId) {
- String url = FastGptConstant.DELETE_DATASET_URL + knowledgeBaseId;
+ String url = serverConstant.getFastGptServer() + FastGptConstant.DELETE_DATASET_URL + knowledgeBaseId;
return webClient.delete()
.uri(url)
- .header(FastGptConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
.retrieve()
.bodyToMono(CreateDataSetResponse.class)
.flatMap(response -> {
if (response.getCode() == 200) {
return Mono.fromRunnable(() -> {
try {
- fastGptDatasetMapper.deleteKnowledgeBaseByUuid(knowledgeBaseId);
- fastGptDatasetMapper.deleteFileById(knowledgeBaseId);
+ datasetMapper.deleteKnowledgeBaseByUuid(knowledgeBaseId);
+ datasetMapper.deleteFileById(knowledgeBaseId);
} catch (Exception dbException) {
- throw new RuntimeException("Database operation failed", dbException); // 抛出新异常
+ throw new RuntimeException("Database operation failed", dbException);
}
}).then(Mono.just(new ServiceResult(new ResultHeader(200, "delete success"))));
} else {
@@ -171,28 +176,38 @@ public class FastGptDatasetServiceImpl implements FastGptDatasetService {
});
}
- public ServiceResult getDataSetRecord() {
- List<KnowledgeBase> knowledgeBaseRecords = fastGptDatasetMapper.getKnowledgeBaseRecords();
- if (CollectionUtils.isEmpty(knowledgeBaseRecords)) {
- return new ServiceResult(new ResultHeader(200, "get datasets failed"), knowledgeBaseRecords);
- }
-
- knowledgeBaseRecords.forEach(knowledgeBase -> {
- List<String> fileNamesByKnowledgeBaseId = fastGptDatasetMapper.getFileNamesByKnowledgeBaseId(knowledgeBase.getKnowledgeBaseId());
- knowledgeBase.setFilesName(fileNamesByKnowledgeBaseId);
- });
- return new ServiceResult(new ResultHeader(200, "success"), knowledgeBaseRecords);
- }
-
- public ServiceResult geDatasetById(String knowledgeBaseId) {
- KnowledgeBase knowledgeBase = fastGptDatasetMapper.getKnowledgeBaseRecordById(knowledgeBaseId);
- if (knowledgeBase == null) {
- return new ServiceResult(new ResultHeader(200, "get dataset failed"));
+ @Override
+ public Mono<ServiceResult> editDataset(KnowledgeBase knowledgeBase) {
+ KnowledgeBase knowledgeBaseRecordById = datasetMapper.getKnowledgeBaseRecordById(knowledgeBase.getKnowledgeBaseId());
+ if (knowledgeBaseRecordById == null) {
+ return Mono.just(new ServiceResult(new ResultHeader(500, "dataset is not exist")));
}
- List<String> fileNamesByKnowledgeBaseId = fastGptDatasetMapper.getFileNamesByKnowledgeBaseId(knowledgeBase.getKnowledgeBaseId());
- knowledgeBase.setFilesName(fileNamesByKnowledgeBaseId);
-
- return new ServiceResult(new ResultHeader(200, "success"), knowledgeBase);
+ JSONObject updateParam = new JSONObject();
+ updateParam.put("id", knowledgeBase.getKnowledgeBaseId());
+ updateParam.put("name", knowledgeBase.getKnowledgeBaseName());
+ updateParam.put("intro", knowledgeBase.getKnowledgeBaseDescription());
+ updateParam.put("avatar", "core/dataset/commonDatasetColor");
+
+ return webClient.put()
+ .uri(serverConstant.getFastGptServer() + FastGptConstant.UPDATE_DATASET_URL)
+ .contentType(APPLICATION_JSON)
+ .header(CommonConstant.COOKIE, FastGptConstant.COOKIE_VALUE)
+ .bodyValue(updateParam)
+ .retrieve()
+ .bodyToMono(CreateDataSetResponse.class)
+ .flatMap(response -> {
+ if (response.getCode() == 200) {
+ return Mono.fromRunnable(() -> {
+ knowledgeBase.setUpdateTime(TimeUtil.getNowTime());
+ datasetMapper.updateKnowledgeBase(knowledgeBase);
+ }).then(Mono.just(new ServiceResult(new ResultHeader(200, "update success"))));
+ } else {
+ return Mono.just(new ServiceResult(new ResultHeader(500, response.getStatusText())));
+ }
+ })
+ .onErrorResume(e -> {
+ log.error("Error occurred while delete dataset: {}", e.getMessage());
+ return Mono.just(new ServiceResult(new ResultHeader(500, "update failed")));
+ });
}
-
}
diff --git a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/MaaSServiceImpl.java b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/MaaSServiceImpl.java
index 10ee028..6823e1a 100644
--- a/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/MaaSServiceImpl.java
+++ b/llm-adaptation/src/main/java/org/onap/usecaseui/llmadaptation/service/impl/MaaSServiceImpl.java
@@ -1,21 +1,13 @@
package org.onap.usecaseui.llmadaptation.service.impl;
-import com.alibaba.fastjson2.JSONObject;
-import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
-import org.onap.usecaseui.llmadaptation.bean.MaaSPlatform;
-import org.onap.usecaseui.llmadaptation.bean.ModelInformation;
-import org.onap.usecaseui.llmadaptation.bean.Operator;
-import org.onap.usecaseui.llmadaptation.bean.fastgpt.CreateDataSetResponse;
+import org.onap.usecaseui.llmadaptation.bean.*;
import org.onap.usecaseui.llmadaptation.mapper.MaaSPlatformMapper;
import org.onap.usecaseui.llmadaptation.service.MaaSService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
-import reactor.core.publisher.Mono;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -49,4 +41,22 @@ public class MaaSServiceImpl implements MaaSService {
});
return operatorList;
}
+
+ @Override
+ public ServiceResult registerMaaSPlatform(MaaSPlatform maaSPlatform) {
+ MaaSPlatform maaSPlatformById = maaSPlatformMapper.getMaaSPlatformById(maaSPlatform.getMaaSPlatformId());
+ if (maaSPlatformById != null) {
+ return new ServiceResult(new ResultHeader(500, maaSPlatform.getMaaSPlatformName() + "already exists"));
+ }
+ List<ModelInformation> modelList = maaSPlatform.getModelList();
+ for (ModelInformation model : modelList) {
+ ModelInformation modelById = maaSPlatformMapper.getModelById(model.getModelId());
+ if (modelById != null) {
+ return new ServiceResult(new ResultHeader(500, model.getModelName() + " already exists"));
+ }
+ }
+ maaSPlatformMapper.insertMaaSPlatform(maaSPlatform);
+ maaSPlatformMapper.insertModel(maaSPlatform.getMaaSPlatformId(), maaSPlatform.getModelList());
+ return new ServiceResult(new ResultHeader(200, "register success"));
+ }
}
diff --git a/llm-adaptation/src/main/resources/application.yaml b/llm-adaptation/src/main/resources/application.yaml
index 1b19cc1..ec234d9 100644
--- a/llm-adaptation/src/main/resources/application.yaml
+++ b/llm-adaptation/src/main/resources/application.yaml
@@ -1,6 +1,13 @@
server:
port: 8084
-
+fastGpt:
+ server: http://172.22.16.126:3000
+ model: qwen2:7b
+ maaSType: fastGpt
+biSheng:
+ server: http://172.22.16.127:3001
+ model: 3
+ maaSType: biSheng
spring:
main:
allow-circular-references: true
@@ -20,5 +27,4 @@ mybatis:
logging:
level:
- org.springframework.web: DEBUG
- com.yourpackage: TRACE \ No newline at end of file
+ org.springframework.web: DEBUG \ No newline at end of file
diff --git a/llm-adaptation/src/main/resources/llm-adaptation-init.sql b/llm-adaptation/src/main/resources/llm-adaptation-init.sql
index b8a56e4..f46a9eb 100644
--- a/llm-adaptation/src/main/resources/llm-adaptation-init.sql
+++ b/llm-adaptation/src/main/resources/llm-adaptation-init.sql
@@ -4,7 +4,8 @@ create table if not exists maas_platform(
maas_platform_id varchar(255) primary key,
maas_platform_name varchar(255),
operator_id varchar(255),
- operator_name varchar(255)
+ operator_name varchar(255),
+ maas_type varchar(255)
);
create table if not exists model_information(
diff --git a/llm-adaptation/src/main/resources/mapper/FastGptApplicationMapper.xml b/llm-adaptation/src/main/resources/mapper/ApplicationMapper.xml
index 31ed447..ce0fcc4 100644
--- a/llm-adaptation/src/main/resources/mapper/FastGptApplicationMapper.xml
+++ b/llm-adaptation/src/main/resources/mapper/ApplicationMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.onap.usecaseui.llmadaptation.mapper.FastGptApplicationMapper">
+<mapper namespace="org.onap.usecaseui.llmadaptation.mapper.ApplicationMapper">
<insert id="insertApplication">
insert into application(application_id,
application_name,
@@ -63,4 +63,13 @@
opening_remarks as openingRemarks
from application where application_id = #{applicationId}
</select>
+
+ <update id="updateApplication">
+ update application
+ <trim prefix="set" suffixOverrides=",">
+ <if test="application.applicationName != null">application_name = #{application.applicationName},</if>
+ <if test="application.applicationDescription != null">application_description = #{application.applicationDescription},</if>
+ </trim>
+ where application_id = #{application.applicationId}
+ </update>
</mapper> \ No newline at end of file
diff --git a/llm-adaptation/src/main/resources/mapper/FastGptDatasetMapper.xml b/llm-adaptation/src/main/resources/mapper/DatasetMapper.xml
index 836ced9..d6a89cd 100644
--- a/llm-adaptation/src/main/resources/mapper/FastGptDatasetMapper.xml
+++ b/llm-adaptation/src/main/resources/mapper/DatasetMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.onap.usecaseui.llmadaptation.mapper.FastGptDatasetMapper">
+<mapper namespace="org.onap.usecaseui.llmadaptation.mapper.DatasetMapper">
<insert id="insertKnowledgeBaseRecord">
insert into knowledge_base(knowledge_base_id,
knowledge_base_name,
@@ -65,4 +65,13 @@
delete from file where knowledge_base_id = #{knowledgeBaseId}
</delete>
+ <update id="updateKnowledgeBase">
+ update knowledge_base
+ <trim prefix="set" suffixOverrides=",">
+ <if test="knowledgeBase.knowledgeBaseDescription != null">knowledge_base_description = #{knowledgeBase.knowledgeBaseDescription},</if>
+ <if test="knowledgeBase.knowledgeBaseName != null">knowledge_base_name = #{knowledgeBase.knowledgeBaseName},</if>
+ <if test="knowledgeBase.updateTime != null">update_time = to_timestamp(#{knowledgeBase.updateTime},'yyyy-MM-dd HH24:mi:ss'),</if>
+ </trim>
+ where knowledge_base_id = #{knowledgeBase.knowledgeBaseId}
+ </update>
</mapper> \ No newline at end of file
diff --git a/llm-adaptation/src/main/resources/mapper/MaaSPlatformMapper.xml b/llm-adaptation/src/main/resources/mapper/MaaSPlatformMapper.xml
index b8d8354..69ce9e6 100644
--- a/llm-adaptation/src/main/resources/mapper/MaaSPlatformMapper.xml
+++ b/llm-adaptation/src/main/resources/mapper/MaaSPlatformMapper.xml
@@ -4,26 +4,28 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.onap.usecaseui.llmadaptation.mapper.MaaSPlatformMapper">
<insert id="insertMaaSPlatform">
- insert into maas_platform(maas_platform_id,maas_platform_name,operator_id,operator_name)
+ insert into maas_platform(maas_platform_id,maas_platform_name,operator_id,operator_name,maas_type)
values (#{maaSPlatform.maaSPlatformId},
#{maaSPlatform.maaSPlatformName},
#{maaSPlatform.operatorId},
- #{maaSPlatform.operatorName})
+ #{maaSPlatform.operatorName},
+ #{maaSPlatform.maaSType})
</insert>
<insert id="insertModel">
insert into model_information(model_id,model_name,maas_platform_id)
values
<foreach collection="modelInformationList" index="index" item="item" separator=",">
(#{item.modelId},
- #{item.modelName},
- #{maaSPlatformId})
+ #{item.modelName},
+ #{maaSPlatformId})
</foreach>
</insert>
<select id="getMaaSPlatforms" resultType="org.onap.usecaseui.llmadaptation.bean.MaaSPlatform">
select maas_platform_id as maaSPlatformId,
maas_platform_name as maaSPlatformName,
operator_id as operatorId,
- operator_name as operatorName
+ operator_name as operatorName,
+ maas_type as maaSType
from maas_platform
</select>
<select id="getModelList" resultType="org.onap.usecaseui.llmadaptation.bean.ModelInformation">
@@ -31,4 +33,18 @@
model_name as modelName
from model_information where maas_platform_id = #{maaSPlatformId}
</select>
+ <select id="getMaaSPlatformById" resultType="org.onap.usecaseui.llmadaptation.bean.MaaSPlatform">
+ select maas_platform_id as maaSPlatformId,
+ maas_platform_name as maaSPlatformName,
+ operator_id as operatorId,
+ operator_name as operatorName,
+ maas_type as maaSType
+ from maas_platform
+ where maas_platform_id = #{maaSPlatformId}
+ </select>
+ <select id="getModelById" resultType="org.onap.usecaseui.llmadaptation.bean.ModelInformation">
+ select model_id as modelId,
+ model_name as modelName
+ from model_information where model_id = #{modelId}
+ </select>
</mapper> \ No newline at end of file