From 14badcd4aea65940721192ad5f11dfd00316a7b7 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Mon, 28 Oct 2024 12:44:39 +0800 Subject: [PATCH] [improvement][chat]Introduce separate `ChatParseResp` in Chat module. --- .../chat/api/pojo/response/ChatParseResp.java | 25 +++++++++++++++++++ .../chat/server/parser/NL2SQLParser.java | 20 +++++++-------- .../repository/ChatQueryRepository.java | 3 ++- .../impl/ChatQueryRepositoryImpl.java | 7 +++--- .../plugin/recognize/PluginRecognizer.java | 3 ++- .../chat/server/pojo/ParseContext.java | 4 +-- .../processor/parse/TimeCostProcessor.java | 3 ++- .../chat/server/rest/ChatQueryController.java | 3 ++- .../server/service/ChatManageService.java | 5 ++-- .../chat/server/service/ChatQueryService.java | 4 +-- .../service/impl/ChatManageServiceImpl.java | 13 +++++----- .../service/impl/ChatQueryServiceImpl.java | 14 +++++------ .../headless/api/pojo/response/ParseResp.java | 2 -- .../com/tencent/supersonic/chat/BaseTest.java | 17 +++++++------ 14 files changed, 77 insertions(+), 46 deletions(-) create mode 100644 chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/ChatParseResp.java diff --git a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/ChatParseResp.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/ChatParseResp.java new file mode 100644 index 000000000..04e37bbfd --- /dev/null +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/ChatParseResp.java @@ -0,0 +1,25 @@ +package com.tencent.supersonic.chat.api.pojo.response; + +import com.google.common.collect.Lists; +import com.tencent.supersonic.common.pojo.Text2SQLExemplar; +import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; +import com.tencent.supersonic.headless.api.pojo.response.ParseResp; +import com.tencent.supersonic.headless.api.pojo.response.ParseTimeCostResp; +import lombok.Data; + +import java.util.List; + +@Data +public class ChatParseResp { + + private Long queryId; + private ParseResp.ParseState state = ParseResp.ParseState.PENDING; + private String errorMsg; + private List selectedParses = Lists.newArrayList(); + private ParseTimeCostResp parseTimeCost = new ParseTimeCostResp(); + private List usedExemplars; + + public ChatParseResp(Long queryId) { + this.queryId = queryId; + } +} diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java index fc4bac952..cdb76a0a4 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.chat.server.parser; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResp; import com.tencent.supersonic.chat.server.pojo.ChatContext; import com.tencent.supersonic.chat.server.pojo.ParseContext; @@ -92,28 +93,27 @@ public class NL2SQLParser implements ChatQueryParser { addDynamicExemplars(parseContext, queryNLReq); } - ParseResp parseResp = parseContext.getResponse(); - doParse(queryNLReq, parseResp); + doParse(queryNLReq, parseContext.getResponse()); } private void processFeedback(ParseContext parseContext) { QueryNLReq queryNLReq = QueryReqConverter.buildQueryNLReq(parseContext); - ParseResp parseResp = parseContext.getResponse(); + ChatParseResp parseResp = parseContext.getResponse(); for (MapModeEnum mode : MapModeEnum.values()) { queryNLReq.setMapModeEnum(mode); doParse(queryNLReq, parseResp); } } - private void doParse(QueryNLReq req, ParseResp resp) { + private void doParse(QueryNLReq req, ChatParseResp resp) { ChatLayerService chatLayerService = ContextUtils.getBean(ChatLayerService.class); - ParseResp text2SqlParseResp = chatLayerService.parse(req); - if (text2SqlParseResp.getState().equals(ParseResp.ParseState.COMPLETED)) { - resp.getSelectedParses().addAll(text2SqlParseResp.getSelectedParses()); + ParseResp parseResp = chatLayerService.parse(req); + if (parseResp.getState().equals(ParseResp.ParseState.COMPLETED)) { + resp.getSelectedParses().addAll(parseResp.getSelectedParses()); } - resp.setState(text2SqlParseResp.getState()); - resp.setParseTimeCost(text2SqlParseResp.getParseTimeCost()); - resp.setErrorMsg(text2SqlParseResp.getErrorMsg()); + resp.setState(parseResp.getState()); + resp.setParseTimeCost(parseResp.getParseTimeCost()); + resp.setErrorMsg(parseResp.getErrorMsg()); } private void rewriteMultiTurn(ParseContext parseContext, QueryNLReq queryNLReq) { diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java index 5ed7b45e1..5a6afd1e5 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageInfo; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.PageQueryInfoReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResp; import com.tencent.supersonic.chat.server.persistence.dataobject.ChatParseDO; import com.tencent.supersonic.chat.server.persistence.dataobject.ChatQueryDO; @@ -30,7 +31,7 @@ public interface ChatQueryRepository { Long createChatQuery(ChatParseReq chatParseReq); - List batchSaveParseInfo(ChatParseReq chatParseReq, ParseResp parseResult, + List batchSaveParseInfo(ChatParseReq chatParseReq, ChatParseResp chatParseResp, List candidateParses); ChatParseDO getParseInfo(Long questionId, int parseId); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java index bc2454b8a..3148b3118 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java @@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.PageQueryInfoReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.api.pojo.response.SimilarQueryRecallResp; @@ -144,10 +145,10 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository { } @Override - public List batchSaveParseInfo(ChatParseReq chatParseReq, ParseResp parseResult, - List candidateParses) { + public List batchSaveParseInfo(ChatParseReq chatParseReq, + ChatParseResp chatParseResp, List candidateParses) { List chatParseDOList = new ArrayList<>(); - getChatParseDO(chatParseReq, parseResult.getQueryId(), candidateParses, chatParseDOList); + getChatParseDO(chatParseReq, chatParseResp.getQueryId(), candidateParses, chatParseDOList); if (!CollectionUtils.isEmpty(candidateParses)) { chatParseMapper.batchSaveParseInfo(chatParseDOList); } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java index 0c8f5e864..be5ec57fb 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java @@ -2,6 +2,7 @@ package com.tencent.supersonic.chat.server.plugin.recognize; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.server.plugin.ChatPlugin; import com.tencent.supersonic.chat.server.plugin.PluginManager; import com.tencent.supersonic.chat.server.plugin.PluginParseResult; @@ -46,7 +47,7 @@ public abstract class PluginRecognizer { public abstract PluginRecallResult recallPlugin(ParseContext parseContext); - public void buildQuery(ParseContext parseContext, ParseResp parseResp, + public void buildQuery(ParseContext parseContext, ChatParseResp parseResp, PluginRecallResult pluginRecallResult) { ChatPlugin plugin = pluginRecallResult.getPlugin(); Set dataSetIds = pluginRecallResult.getDataSetIds(); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java index e05931856..950a5f9a7 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java @@ -1,6 +1,7 @@ package com.tencent.supersonic.chat.server.pojo; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.server.agent.Agent; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; @@ -11,13 +12,12 @@ import java.util.Objects; @Data public class ParseContext { private ChatParseReq request; - private ParseResp response; + private ChatParseResp response; private Agent agent; private SemanticParseInfo selectedParseInfo; public ParseContext(ChatParseReq request) { this.request = request; - response = new ParseResp(request.getQueryText()); } public boolean enableNL2SQL() { diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/TimeCostProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/TimeCostProcessor.java index 298664a07..672017bf9 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/TimeCostProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/TimeCostProcessor.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.chat.server.processor.parse; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.server.pojo.ParseContext; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; import lombok.extern.slf4j.Slf4j; @@ -10,7 +11,7 @@ public class TimeCostProcessor implements ParseResultProcessor { @Override public void process(ParseContext parseContext) { - ParseResp parseResp = parseContext.getResponse(); + ChatParseResp parseResp = parseContext.getResponse(); long parseStartTime = parseResp.getParseTimeCost().getParseStartTime(); parseResp.getParseTimeCost().setParseTime(System.currentTimeMillis() - parseStartTime - parseResp.getParseTimeCost().getSqlTime()); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/rest/ChatQueryController.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/rest/ChatQueryController.java index 61349a384..e82352498 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/rest/ChatQueryController.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/rest/ChatQueryController.java @@ -8,6 +8,7 @@ import com.tencent.supersonic.auth.api.authentication.utils.UserHolder; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.ChatQueryDataReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.server.service.ChatQueryService; import com.tencent.supersonic.common.pojo.User; import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException; @@ -56,7 +57,7 @@ public class ChatQueryController { HttpServletResponse response) throws Exception { User user = UserHolder.findUser(request, response); chatParseReq.setUser(user); - ParseResp parseResp = chatQueryService.parse(chatParseReq); + ChatParseResp parseResp = chatQueryService.parse(chatParseReq); if (CollectionUtils.isEmpty(parseResp.getSelectedParses())) { throw new InvalidArgumentException("parser error,no selectedParses"); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java index c389e3bb9..6f18cbcfc 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.PageQueryInfoReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.api.pojo.response.ShowCaseResp; @@ -45,9 +46,9 @@ public interface ChatManageService { void deleteQuery(Long queryId); - void updateParseCostTime(ParseResp parseResp); + void updateParseCostTime(ChatParseResp chatParseResp); - List batchAddParse(ChatParseReq chatParseReq, ParseResp parseResult); + List batchAddParse(ChatParseReq chatParseReq, ChatParseResp chatParseResp); SemanticParseInfo getParseInfo(Long questionId, int parseId); } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java index 237086413..6b842c310 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java @@ -3,10 +3,10 @@ package com.tencent.supersonic.chat.server.service; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.ChatQueryDataReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.common.pojo.User; import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq; -import com.tencent.supersonic.headless.api.pojo.response.ParseResp; import com.tencent.supersonic.headless.api.pojo.response.SearchResult; import java.util.List; @@ -15,7 +15,7 @@ public interface ChatQueryService { List search(ChatParseReq chatParseReq); - ParseResp parse(ChatParseReq chatParseReq); + ChatParseResp parse(ChatParseReq chatParseReq); QueryResult execute(ChatExecuteReq chatExecuteReq) throws Exception; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java index 29f56fe49..db355e8aa 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.PageQueryInfoReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.api.pojo.response.ShowCaseResp; @@ -192,16 +193,16 @@ public class ChatManageServiceImpl implements ChatManageService { } @Override - public void updateParseCostTime(ParseResp parseResp) { - ChatQueryDO chatQueryDO = chatQueryRepository.getChatQueryDO(parseResp.getQueryId()); - chatQueryDO.setParseTimeCost(JsonUtil.toString(parseResp.getParseTimeCost())); + public void updateParseCostTime(ChatParseResp chatParseResp) { + ChatQueryDO chatQueryDO = chatQueryRepository.getChatQueryDO(chatParseResp.getQueryId()); + chatQueryDO.setParseTimeCost(JsonUtil.toString(chatParseResp.getParseTimeCost())); updateQuery(chatQueryDO); } @Override - public List batchAddParse(ChatParseReq chatParseReq, ParseResp parseResult) { - List candidateParses = parseResult.getSelectedParses(); - return chatQueryRepository.batchSaveParseInfo(chatParseReq, parseResult, candidateParses); + public List batchAddParse(ChatParseReq chatParseReq, ChatParseResp chatParseResp) { + List candidateParses = chatParseResp.getSelectedParses(); + return chatQueryRepository.batchSaveParseInfo(chatParseReq, chatParseResp, candidateParses); } private String getCurrentTime() { 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 c6f485085..7e5c4d011 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 @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.ChatQueryDataReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.server.agent.Agent; import com.tencent.supersonic.chat.server.executor.ChatQueryExecutor; @@ -104,11 +105,10 @@ public class ChatQueryServiceImpl implements ChatQueryService { } @Override - public ParseResp parse(ChatParseReq chatParseReq) { + public ChatParseResp parse(ChatParseReq chatParseReq) { ParseContext parseContext = buildParseContext(chatParseReq); - ParseResp parseResp = parseContext.getResponse(); Long queryId = chatManageService.createChatQuery(chatParseReq); - parseResp.setQueryId(queryId); + parseContext.setResponse(new ChatParseResp(queryId)); for (ChatQueryParser parser : chatQueryParsers) { parser.parse(parseContext); @@ -118,9 +118,9 @@ public class ChatQueryServiceImpl implements ChatQueryService { } chatParseReq.setQueryText(parseContext.getRequest().getQueryText()); - chatManageService.batchAddParse(chatParseReq, parseResp); - chatManageService.updateParseCostTime(parseResp); - return parseResp; + chatManageService.batchAddParse(chatParseReq, parseContext.getResponse()); + chatManageService.updateParseCostTime(parseContext.getResponse()); + return parseContext.getResponse(); } @Override @@ -146,7 +146,7 @@ public class ChatQueryServiceImpl implements ChatQueryService { @Override public QueryResult parseAndExecute(ChatParseReq chatParseReq) { - ParseResp parseResp = parse(chatParseReq); + ChatParseResp parseResp = parse(chatParseReq); if (CollectionUtils.isEmpty(parseResp.getSelectedParses())) { log.debug("chatId:{}, agentId:{}, queryText:{}, parseResp.getSelectedParses() is empty", chatParseReq.getChatId(), chatParseReq.getAgentId(), diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java index 2e8022151..a0c5d7663 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java @@ -12,12 +12,10 @@ import java.util.stream.Collectors; @Data public class ParseResp { private final String queryText; - private Long queryId; private ParseState state = ParseState.PENDING; private String errorMsg; private List selectedParses = Lists.newArrayList(); private ParseTimeCostResp parseTimeCost = new ParseTimeCostResp(); - private List usedExemplars; public enum ParseState { COMPLETED, PENDING, FAILED diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java index 686d9594b..a48825177 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; import com.tencent.supersonic.BaseApplication; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; +import com.tencent.supersonic.chat.api.pojo.response.ChatParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.server.service.AgentService; import com.tencent.supersonic.chat.server.service.ChatQueryService; @@ -47,13 +48,13 @@ public class BaseTest extends BaseApplication { protected QueryResult submitMultiTurnChat(String queryText, Integer agentId, Integer chatId) throws Exception { - ParseResp parseResp = submitParse(queryText, agentId, chatId); + ChatParseResp parseResp = submitParse(queryText, agentId, chatId); SemanticParseInfo semanticParseInfo = parseResp.getSelectedParses().get(0); - ChatExecuteReq request = ChatExecuteReq.builder().queryText(parseResp.getQueryText()) - .user(DataUtils.getUser()).parseId(semanticParseInfo.getId()) - .queryId(parseResp.getQueryId()).chatId(chatId).agentId(agentId).saveAnswer(true) - .build(); + ChatExecuteReq request = + ChatExecuteReq.builder().queryText(queryText).user(DataUtils.getUser()) + .parseId(semanticParseInfo.getId()).queryId(parseResp.getQueryId()) + .chatId(chatId).agentId(agentId).saveAnswer(true).build(); QueryResult queryResult = chatQueryService.execute(request); queryResult.setChatContext(semanticParseInfo); return queryResult; @@ -61,10 +62,10 @@ public class BaseTest extends BaseApplication { protected QueryResult submitNewChat(String queryText, Integer agentId) throws Exception { int chatId = DataUtils.ONE_TURNS_CHAT_ID; - ParseResp parseResp = submitParse(queryText, agentId, chatId); + ChatParseResp parseResp = submitParse(queryText, agentId, chatId); SemanticParseInfo parseInfo = parseResp.getSelectedParses().get(0); - ChatExecuteReq request = ChatExecuteReq.builder().queryText(parseResp.getQueryText()) + ChatExecuteReq request = ChatExecuteReq.builder().queryText(queryText) .user(DataUtils.getUser()).parseId(parseInfo.getId()).agentId(agentId) .chatId(chatId).queryId(parseResp.getQueryId()).saveAnswer(false).build(); @@ -73,7 +74,7 @@ public class BaseTest extends BaseApplication { return result; } - protected ParseResp submitParse(String queryText, Integer agentId, Integer chatId) { + protected ChatParseResp submitParse(String queryText, Integer agentId, Integer chatId) { ChatParseReq chatParseReq = DataUtils.getChatParseReq(chatId, queryText, enableLLM); chatParseReq.setAgentId(agentId);