From 62e2bf7de69aca09a713e1ae3330b84865cdf65d Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Mon, 23 Oct 2023 18:57:12 +0800 Subject: [PATCH] (improvement)(chat) show cases distinct by queryText (#275) Co-authored-by: jolunoluo --- .../supersonic/chat/service/impl/ChatServiceImpl.java | 7 +++++++ .../main/resources/mapper/custom/ShowCaseCustomMapper.xml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatServiceImpl.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatServiceImpl.java index 59d1524ef..1cbdced82 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatServiceImpl.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatServiceImpl.java @@ -20,11 +20,14 @@ import com.tencent.supersonic.chat.persistence.repository.ChatQueryRepository; import com.tencent.supersonic.chat.persistence.repository.ChatRepository; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Comparator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.function.Function; import java.util.stream.Collectors; import com.tencent.supersonic.chat.service.ChatService; @@ -164,6 +167,10 @@ public class ChatServiceImpl implements ChatService { Map data = queryResp.getQueryResult().getQueryResults().get(0); return CollectionUtils.isEmpty(data); }); + queryResps = new ArrayList<>(queryResps.stream() + .collect(Collectors.toMap(QueryResp::getQueryText, Function.identity(), + (existing, replacement) -> existing, LinkedHashMap::new)) + .values()); fillParseInfo(queryResps); Map> showCaseMap = queryResps.stream() .collect(Collectors.groupingBy(QueryResp::getChatId)); diff --git a/chat/core/src/main/resources/mapper/custom/ShowCaseCustomMapper.xml b/chat/core/src/main/resources/mapper/custom/ShowCaseCustomMapper.xml index 416338aa2..e8f028dd4 100644 --- a/chat/core/src/main/resources/mapper/custom/ShowCaseCustomMapper.xml +++ b/chat/core/src/main/resources/mapper/custom/ShowCaseCustomMapper.xml @@ -66,7 +66,7 @@ and user_name = #{userName} order by score, chat_id desc - ) + ) a limit #{start}, #{limit} ) q2 on q1.chat_id = q2.chat_id where agent_id = ${agentId} and (score is null or score > 1)