From e046a555672ccbeceb9d1ce22ef3a379525d80b7 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Mon, 28 Oct 2024 20:00:34 +0800 Subject: [PATCH] [improvement][chat]Only return the parse info of the highest score for one dataset pass.#1847 --- .../chat/server/service/impl/ChatQueryServiceImpl.java | 7 +++++++ .../tencent/supersonic/headless/chat/ChatQueryContext.java | 5 +---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java index 78571dc68..61afeee5c 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java @@ -119,6 +119,13 @@ public class ChatQueryServiceImpl implements ChatQueryService { chatManageService.updateParseCostTime(parseContext.getResponse()); } + // no need for explicit user feedback if there is only one candidate parses + if (parseContext.needFeedback() && parseContext.getResponse().getSelectedParses().size() == 1) { + chatParseReq.setQueryId(parseContext.getResponse().getQueryId()); + chatParseReq.setSelectedParse(parseContext.getResponse().getSelectedParses().get(0)); + return parse(chatParseReq); + } + return parseContext.getResponse(); } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java index a37e4c1cd..dda36ae8a 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java @@ -44,14 +44,11 @@ public class ChatQueryContext { } public List getCandidateQueries() { - ParserConfig parserConfig = ContextUtils.getBean(ParserConfig.class); - int parseShowCount = - Integer.parseInt(parserConfig.getParameterValue(ParserConfig.PARSER_SHOW_COUNT)); candidateQueries = candidateQueries.stream() .sorted(Comparator.comparing( semanticQuery -> semanticQuery.getParseInfo().getScore(), Comparator.reverseOrder())) - .limit(parseShowCount).collect(Collectors.toList()); + .limit(1).collect(Collectors.toList()); return candidateQueries; }