diff --git a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java index d5895ea5..91352880 100644 --- a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java +++ b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; public class PersistentChatMemoryStore implements ChatMemoryStore { @@ -80,7 +81,10 @@ public List getMessages(Object threadId) { if (chatMessages.isEmpty()) { return new ArrayList<>(); } else { - return chatMessages.stream().map(this::convertToChatMessage).collect(Collectors.toList()); + return chatMessages.stream() + .map(this::convertToChatMessage) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } } diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ChatThreadMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ChatThreadMapper.xml index fe14e7c5..a742bed3 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ChatThreadMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ChatThreadMapper.xml @@ -48,18 +48,13 @@ INSERT INTO llm_chat_thread (platform_id, user_id, model, thread_info) - VALUES (#{platformId}, #{userId}, #{model}, #{threadInfo, typeHandler=org.apache.bigtop.manager.dao.handler.JsonTypeHandler}) - ON DUPLICATE KEY UPDATE - platform_id = VALUES(platform_id), - user_id = VALUES(user_id), - model = VALUES(model), - thread_info = VALUES(thread_info) + VALUES (#{platformId}, #{userId}, #{model}, #{threadInfo, typeHandler=org.apache.bigtop.manager.dao.handler.JsonTypeHandler}::json) \ No newline at end of file diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformAuthorizedMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformAuthorizedMapper.xml index 63e841a3..518d295d 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformAuthorizedMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformAuthorizedMapper.xml @@ -40,10 +40,7 @@ INSERT INTO llm_platform_authorized (platform_id, credentials) - VALUES (#{platformId}, #{credentials, typeHandler=org.apache.bigtop.manager.dao.handler.JsonTypeHandler}) - ON DUPLICATE KEY UPDATE - platform_id = VALUES(platform_id), - credentials = VALUES(credentials) + VALUES (#{platformId}, #{credentials, typeHandler=org.apache.bigtop.manager.dao.handler.JsonTypeHandler}::json) \ No newline at end of file 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 da363aee..7148ee32 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 @@ -217,6 +217,11 @@ public boolean deleteAuthorizedPlatform(Long platformId) { List chatThreadPOS = chatThreadDao.findAllByPlatformId(authorizedPlatformPO.getId()); chatThreadPOS.forEach(chatThread -> chatThread.setIsDeleted(true)); chatThreadDao.partialUpdateByIds(chatThreadPOS); + for (ChatThreadPO chatThreadPO : chatThreadPOS) { + List chatMessagePOS = chatMessageDao.findAllByThreadId(chatThreadPO.getId()); + chatMessagePOS.forEach(chatMessage -> chatMessage.setIsDeleted(true)); + chatMessageDao.partialUpdateByIds(chatMessagePOS); + } return true; } }