diff --git a/src/main/java/com/ai/app/config/MysqlChatMemoryRepository.java b/src/main/java/com/ai/app/config/MysqlChatMemoryRepository.java index 1b6a8c5..368654d 100644 --- a/src/main/java/com/ai/app/config/MysqlChatMemoryRepository.java +++ b/src/main/java/com/ai/app/config/MysqlChatMemoryRepository.java @@ -13,6 +13,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -43,8 +44,13 @@ public class MysqlChatMemoryRepository implements ChatMemoryRepository { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public void saveAll(String conversationId, List messages) { chatMessageHistoryMapper.deleteByConversationId(conversationId); - List messageHistoryList = messages.stream().map(message -> { - ChatMessageHistory chatMessageHistory = new ChatMessageHistory(); + + ArrayList messageHistoryList = new ArrayList<>(); + ChatMessageHistory chatMessageHistory; + Message message; + for (int i = 0; i < messages.size(); i++) { + chatMessageHistory = new ChatMessageHistory(); + message = messages.get(i); chatMessageHistory.setId(UUID.randomUUID().toString()); chatMessageHistory.setConversationId(conversationId); chatMessageHistory.setMessageType(message.getMessageType().getValue()); @@ -53,9 +59,10 @@ public class MysqlChatMemoryRepository implements ChatMemoryRepository { if (message instanceof AssistantMessage am) { chatMessageHistory.setToolCalls(JSON.toJSONString(am.getToolCalls())); } + chatMessageHistory.setSort(i); chatMessageHistory.setCreateTime(LocalDateTime.now()); - return chatMessageHistory; - }).collect(Collectors.toList()); + messageHistoryList.add(chatMessageHistory); + } chatMessageHistoryMapper.insert(messageHistoryList); } diff --git a/src/main/java/com/ai/app/entity/ChatMessageHistory.java b/src/main/java/com/ai/app/entity/ChatMessageHistory.java index 2e68080..d4856e1 100644 --- a/src/main/java/com/ai/app/entity/ChatMessageHistory.java +++ b/src/main/java/com/ai/app/entity/ChatMessageHistory.java @@ -28,5 +28,7 @@ public class ChatMessageHistory { private String toolCalls; + private int sort; + private LocalDateTime createTime; } diff --git a/src/main/java/com/ai/app/mapper/ChatMessageHistoryMapper.java b/src/main/java/com/ai/app/mapper/ChatMessageHistoryMapper.java index a686ec1..7934482 100644 --- a/src/main/java/com/ai/app/mapper/ChatMessageHistoryMapper.java +++ b/src/main/java/com/ai/app/mapper/ChatMessageHistoryMapper.java @@ -14,7 +14,7 @@ import java.util.List; */ public interface ChatMessageHistoryMapper extends BaseMapper { - @Select("select * from chat_message_history where conversation_id = #{conversationId}") + @Select("select * from chat_message_history where conversation_id = #{conversationId} order by sort asc") List selectByConversationId(String conversationId); @Delete("delete from chat_message_history where conversation_id = #{conversationId}")