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 220d10bce..7309437f4 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 @@ -138,25 +138,7 @@ public class ChatServiceImpl implements ChatService { if (CollectionUtils.isEmpty(queryRespPageInfo.getList())) { return queryRespPageInfo; } - List queryIds = queryRespPageInfo.getList().stream() - .map(QueryResp::getQuestionId).collect(Collectors.toList()); - List chatParseDOs = chatQueryRepository.getParseInfoList(queryIds); - if (CollectionUtils.isEmpty(chatParseDOs)) { - return queryRespPageInfo; - } - Map> chatParseMap = chatParseDOs.stream() - .collect(Collectors.groupingBy(ChatParseDO::getQuestionId)); - for (QueryResp queryResp : queryRespPageInfo.getList()) { - List chatParseDOList = chatParseMap.get(queryResp.getQuestionId()); - if (CollectionUtils.isEmpty(chatParseMap)) { - continue; - } - List parseInfos = chatParseDOList.stream().map(chatParseDO -> - JsonUtil.toObject(chatParseDO.getParseInfo(), SemanticParseInfo.class)) - .sorted(Comparator.comparingDouble(SemanticParseInfo::getScore).reversed()) - .collect(Collectors.toList()); - queryResp.setParseInfos(parseInfos); - } + fillParseInfo(queryRespPageInfo.getList()); return queryRespPageInfo; } @@ -182,12 +164,36 @@ public class ChatServiceImpl implements ChatService { Map data = queryResp.getQueryResult().getQueryResults().get(0); return CollectionUtils.isEmpty(data); }); + fillParseInfo(queryResps); Map> showCaseMap = queryResps.stream() .collect(Collectors.groupingBy(QueryResp::getChatId)); showCaseResp.setShowCaseMap(showCaseMap); return showCaseResp; } + + private void fillParseInfo(List queryResps) { + List queryIds = queryResps.stream() + .map(QueryResp::getQuestionId).collect(Collectors.toList()); + List chatParseDOs = chatQueryRepository.getParseInfoList(queryIds); + if (CollectionUtils.isEmpty(chatParseDOs)) { + return; + } + Map> chatParseMap = chatParseDOs.stream() + .collect(Collectors.groupingBy(ChatParseDO::getQuestionId)); + for (QueryResp queryResp : queryResps) { + List chatParseDOList = chatParseMap.get(queryResp.getQuestionId()); + if (CollectionUtils.isEmpty(chatParseMap)) { + continue; + } + List parseInfos = chatParseDOList.stream().map(chatParseDO -> + JsonUtil.toObject(chatParseDO.getParseInfo(), SemanticParseInfo.class)) + .sorted(Comparator.comparingDouble(SemanticParseInfo::getScore).reversed()) + .collect(Collectors.toList()); + queryResp.setParseInfos(parseInfos); + } + } + @Override public void addQuery(QueryResult queryResult, ChatContext chatCtx) { chatQueryRepository.createChatQuery(queryResult, chatCtx);