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()));
+    }
 }

Reply via email to