This is an automated email from the ASF dual-hosted git repository.
wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git
The following commit(s) were added to refs/heads/main by this push:
new e350875b BIGTOP-4262: Add detail APIs for LLM (#102)
e350875b is described below
commit e350875b83f675dd60e6fc3163b226d44d5a11b0
Author: haopeng <[email protected]>
AuthorDate: Mon Nov 18 16:36:13 2024 +0800
BIGTOP-4262: Add detail APIs for LLM (#102)
---
.../server/controller/ChatbotController.java | 14 ++++++++++----
.../server/controller/LLMConfigController.java | 22 ++++++++++++++--------
.../model/converter/AuthPlatformConverter.java | 1 +
.../manager/server/model/vo/AuthPlatformVO.java | 4 ++++
.../manager/server/service/ChatbotService.java | 2 ++
.../manager/server/service/LLMConfigService.java | 2 ++
.../server/service/impl/ChatbotServiceImpl.java | 13 +++++++++++++
.../server/service/impl/LLMConfigServiceImpl.java | 11 +++++++++++
8 files changed, 57 insertions(+), 12 deletions(-)
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ChatbotController.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ChatbotController.java
index 993563e0..8e3a2e67 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ChatbotController.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ChatbotController.java
@@ -51,14 +51,14 @@ public class ChatbotController {
@Resource
private ChatbotService chatbotService;
- @Operation(summary = "new thread", description = "Create a chat threads")
+ @Operation(summary = "new thread", description = "Create a chat thread")
@PostMapping("/threads")
public ResponseEntity<ChatThreadVO> createChatThread(@RequestBody
ChatbotThreadReq chatbotThreadReq) {
ChatThreadDTO chatThreadDTO =
ChatThreadConverter.INSTANCE.fromReq2DTO(chatbotThreadReq);
return
ResponseEntity.success(chatbotService.createChatThread(chatThreadDTO));
}
- @Operation(summary = "update thread", description = "Update a chat
threads")
+ @Operation(summary = "update thread", description = "Update a chat thread")
@PutMapping("/threads/{threadId}")
public ResponseEntity<ChatThreadVO> updateChatThread(
@PathVariable Long threadId, @RequestBody ChatbotThreadReq
chatbotThreadReq) {
@@ -67,13 +67,19 @@ public class ChatbotController {
return
ResponseEntity.success(chatbotService.updateChatThread(chatThreadDTO));
}
- @Operation(summary = "delete thread", description = "Delete a chat
threads")
+ @Operation(summary = "delete thread", description = "Delete a chat thread")
@DeleteMapping("/threads/{threadId}")
public ResponseEntity<Boolean> deleteChatThread(@PathVariable Long
threadId) {
return
ResponseEntity.success(chatbotService.deleteChatThread(threadId));
}
- @Operation(summary = "get threads", description = "Get all threads of a
auth platform")
+ @Operation(summary = "get thread", description = "Get a chat thread")
+ @GetMapping("/threads/{threadId}")
+ public ResponseEntity<ChatThreadVO> getChatThread(@PathVariable Long
threadId) {
+ return ResponseEntity.success(chatbotService.getChatThread(threadId));
+ }
+
+ @Operation(summary = "list threads", description = "List all threads of a
auth platform")
@GetMapping("/threads")
public ResponseEntity<List<ChatThreadVO>> getAllChatThreads() {
return ResponseEntity.success(chatbotService.getAllChatThreads());
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LLMConfigController.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LLMConfigController.java
index b6e41e24..51f24a00 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LLMConfigController.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LLMConfigController.java
@@ -50,7 +50,7 @@ public class LLMConfigController {
@Resource
private LLMConfigService llmConfigService;
- @Operation(summary = "get platforms", description = "Get all platforms")
+ @Operation(summary = "list platforms", description = "List all platforms")
@GetMapping("/platforms")
public ResponseEntity<List<PlatformVO>> platforms() {
return ResponseEntity.success(llmConfigService.platforms());
@@ -62,27 +62,27 @@ public class LLMConfigController {
return
ResponseEntity.success(llmConfigService.platformsAuthCredentials(platformId));
}
- @Operation(summary = "get auth platforms", description = "Get authorized
platforms")
+ @Operation(summary = "list auth platforms", description = "List authorized
platforms")
@GetMapping("/auth-platforms")
public ResponseEntity<List<AuthPlatformVO>> authorizedPlatforms() {
return ResponseEntity.success(llmConfigService.authorizedPlatforms());
}
- @Operation(summary = "test auth platform", description = "Test authorized
platforms")
+ @Operation(summary = "test auth platform", description = "Test authorized
platform")
@PostMapping("/auth-platforms/test")
public ResponseEntity<Boolean> testAuthorizedPlatform(@RequestBody
AuthPlatformReq authPlatformReq) {
AuthPlatformDTO authPlatformDTO =
AuthPlatformConverter.INSTANCE.fromReq2DTO(authPlatformReq);
return
ResponseEntity.success(llmConfigService.testAuthorizedPlatform(authPlatformDTO));
}
- @Operation(summary = "add auth platform", description = "Add authorized
platforms")
+ @Operation(summary = "add auth platform", description = "Add authorized
platform")
@PostMapping("/auth-platforms")
public ResponseEntity<AuthPlatformVO> addAuthorizedPlatform(@RequestBody
AuthPlatformReq authPlatformReq) {
AuthPlatformDTO authPlatformDTO =
AuthPlatformConverter.INSTANCE.fromReq2DTO(authPlatformReq);
return
ResponseEntity.success(llmConfigService.addAuthorizedPlatform(authPlatformDTO));
}
- @Operation(summary = "update auth platform", description = "Update
authorized platforms")
+ @Operation(summary = "update auth platform", description = "Update
authorized platform")
@PutMapping("/auth-platforms/{authId}")
public ResponseEntity<AuthPlatformVO> updateAuthorizedPlatform(
@PathVariable Long authId, @RequestBody AuthPlatformReq
authPlatformReq) {
@@ -91,19 +91,25 @@ public class LLMConfigController {
return
ResponseEntity.success(llmConfigService.updateAuthorizedPlatform(authPlatformDTO));
}
- @Operation(summary = "delete auth platform", description = "Delete
authorized platforms")
+ @Operation(summary = "get auth platform", description = "Get a authorized
platform")
+ @GetMapping("/auth-platforms/{authId}")
+ public ResponseEntity<AuthPlatformVO> getAuthorizedPlatform(@PathVariable
Long authId) {
+ return
ResponseEntity.success(llmConfigService.getAuthorizedPlatform(authId));
+ }
+
+ @Operation(summary = "delete auth platform", description = "Delete a
authorized platform")
@DeleteMapping("/auth-platforms/{authId}")
public ResponseEntity<Boolean> deleteAuthorizedPlatform(@PathVariable Long
authId) {
return
ResponseEntity.success(llmConfigService.deleteAuthorizedPlatform(authId));
}
- @Operation(summary = "activate auth platform", description = "Activate
authorized platforms")
+ @Operation(summary = "activate auth platform", description = "Activate
authorized platform")
@PostMapping("/auth-platforms/{authId}/activate")
public ResponseEntity<Boolean> activateAuthorizedPlatform(@PathVariable
Long authId) {
return
ResponseEntity.success(llmConfigService.activateAuthorizedPlatform(authId));
}
- @Operation(summary = "deactivate auth platform", description = "Deactivate
authorized platforms")
+ @Operation(summary = "deactivate auth platform", description = "Deactivate
authorized platform")
@PostMapping("/auth-platforms/{authId}/deactivate")
public ResponseEntity<Boolean> deactivateAuthorizedPlatform(@PathVariable
Long authId) {
return
ResponseEntity.success(llmConfigService.deactivateAuthorizedPlatform(authId));
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/AuthPlatformConverter.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/AuthPlatformConverter.java
index e3e991c1..329823f3 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/AuthPlatformConverter.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/AuthPlatformConverter.java
@@ -44,6 +44,7 @@ public interface AuthPlatformConverter {
AuthPlatformConverter INSTANCE =
Mappers.getMapper(AuthPlatformConverter.class);
@Mapping(target = "platformName", expression =
"java(platformPO.getName())")
+ @Mapping(source = "credentials", target = "authCredentials",
qualifiedByName = "jsonString2Map")
AuthPlatformVO fromPO2VO(AuthPlatformPO authPlatformPO, @Context
PlatformPO platformPO);
AuthPlatformDTO fromReq2DTO(AuthPlatformReq authPlatformReq);
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AuthPlatformVO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AuthPlatformVO.java
index eee6981d..e8a9622e 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AuthPlatformVO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AuthPlatformVO.java
@@ -20,6 +20,8 @@ package org.apache.bigtop.manager.server.model.vo;
import lombok.Data;
+import java.util.Map;
+
@Data
public class AuthPlatformVO {
private Long id;
@@ -36,5 +38,7 @@ public class AuthPlatformVO {
private Integer status;
+ private Map<String, String> authCredentials;
+
public AuthPlatformVO() {}
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ChatbotService.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ChatbotService.java
index b3c2d613..95fa0643 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ChatbotService.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ChatbotService.java
@@ -39,4 +39,6 @@ public interface ChatbotService {
List<ChatMessageVO> history(Long threadId);
ChatThreadVO updateChatThread(ChatThreadDTO chatThreadDTO);
+
+ ChatThreadVO getChatThread(Long threadId);
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/LLMConfigService.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/LLMConfigService.java
index 96ca25ce..c5400002 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/LLMConfigService.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/LLMConfigService.java
@@ -44,4 +44,6 @@ public interface LLMConfigService {
boolean activateAuthorizedPlatform(Long authId);
boolean deactivateAuthorizedPlatform(Long authId);
+
+ AuthPlatformVO getAuthorizedPlatform(Long authId);
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
index 7a584229..cfbb9d5f 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
@@ -274,4 +274,17 @@ public class ChatbotServiceImpl implements ChatbotService {
return ChatThreadConverter.INSTANCE.fromPO2VO(chatThreadPO);
}
+
+ @Override
+ public ChatThreadVO getChatThread(Long threadId) {
+ ChatThreadPO chatThreadPO = chatThreadDao.findById(threadId);
+ if (chatThreadPO == null || chatThreadPO.getIsDeleted()) {
+ throw new ApiException(ApiExceptionEnum.CHAT_THREAD_NOT_FOUND);
+ }
+ Long userId = SessionUserHolder.getUserId();
+ if (!chatThreadPO.getUserId().equals(userId)) {
+ throw new ApiException(ApiExceptionEnum.PERMISSION_DENIED);
+ }
+ return ChatThreadConverter.INSTANCE.fromPO2VO(chatThreadPO);
+ }
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LLMConfigServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LLMConfigServiceImpl.java
index fabbff7f..48a2b592 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LLMConfigServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LLMConfigServiceImpl.java
@@ -317,4 +317,15 @@ public class LLMConfigServiceImpl implements
LLMConfigService {
}
return true;
}
+
+ @Override
+ public AuthPlatformVO getAuthorizedPlatform(Long authId) {
+ AuthPlatformPO authPlatformPO = authPlatformDao.findById(authId);
+ if (authPlatformPO == null || authPlatformPO.getIsDeleted()) {
+ throw new ApiException(ApiExceptionEnum.PLATFORM_NOT_FOUND);
+ }
+
+ return AuthPlatformConverter.INSTANCE.fromPO2VO(
+ authPlatformPO,
platformDao.findById(authPlatformPO.getPlatformId()));
+ }
}