From eef7b3c443b242960383d24ea228aec752af3c00 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Sat, 8 Feb 2025 14:39:23 +0800 Subject: [PATCH] [improvement][chat]Make a few code restructure. --- .../supersonic/headless/api/pojo/response/ParseResp.java | 4 ++-- .../headless/api/pojo/response/ParseTimeCostResp.java | 4 +++- .../supersonic/headless/chat/ChatQueryContext.java | 2 ++ .../server/facade/service/impl/S2ChatLayerService.java | 9 +++++---- .../headless/server/utils/ChatWorkflowEngine.java | 4 ++-- 5 files changed, 14 insertions(+), 9 deletions(-) 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 a0c5d7663..325ec1971 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 @@ -1,16 +1,16 @@ package com.tencent.supersonic.headless.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 lombok.Data; +import java.io.Serializable; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @Data -public class ParseResp { +public class ParseResp implements Serializable { private final String queryText; private ParseState state = ParseState.PENDING; private String errorMsg; diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseTimeCostResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseTimeCostResp.java index 4b1df4e45..e01bb66e4 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseTimeCostResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseTimeCostResp.java @@ -2,8 +2,10 @@ package com.tencent.supersonic.headless.api.pojo.response; import lombok.Data; +import java.io.Serializable; + @Data -public class ParseTimeCostResp { +public class ParseTimeCostResp implements Serializable { private long parseStartTime; private long parseTime; 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 1dccdb346..f018eb7c4 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 @@ -8,6 +8,7 @@ import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.SemanticSchema; import com.tencent.supersonic.headless.api.pojo.enums.ChatWorkflowState; import com.tencent.supersonic.headless.api.pojo.request.QueryNLReq; +import com.tencent.supersonic.headless.api.pojo.response.ParseResp; import com.tencent.supersonic.headless.chat.query.SemanticQuery; import lombok.Data; @@ -23,6 +24,7 @@ import java.util.stream.Collectors; public class ChatQueryContext implements Serializable { private QueryNLReq request; + private ParseResp parseResp; private Map> modelIdToDataSetIds; private List candidateQueries = new ArrayList<>(); private SchemaMapInfo mapInfo = new SchemaMapInfo(); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java index e2cf3d139..1c0a4809a 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java @@ -65,14 +65,15 @@ public class S2ChatLayerService implements ChatLayerService { @Override public ParseResp parse(QueryNLReq queryNLReq) { - ParseResp parseResult = new ParseResp(queryNLReq.getQueryText()); + ParseResp parseResp = new ParseResp(queryNLReq.getQueryText()); ChatQueryContext queryCtx = buildChatQueryContext(queryNLReq); + queryCtx.setParseResp(parseResp); if (queryCtx.getMapInfo().isEmpty()) { - chatWorkflowEngine.start(ChatWorkflowState.MAPPING, queryCtx, parseResult); + chatWorkflowEngine.start(ChatWorkflowState.MAPPING, queryCtx); } else { - chatWorkflowEngine.start(ChatWorkflowState.PARSING, queryCtx, parseResult); + chatWorkflowEngine.start(ChatWorkflowState.PARSING, queryCtx); } - return parseResult; + return parseResp; } public void correct(QuerySqlReq querySqlReq, User user) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java index 937fd5678..6fcbb983a 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java @@ -34,8 +34,8 @@ public class ChatWorkflowEngine { private final List semanticCorrectors = CoreComponentFactory.getSemanticCorrectors(); - public void start(ChatWorkflowState initialState, ChatQueryContext queryCtx, - ParseResp parseResult) { + public void start(ChatWorkflowState initialState, ChatQueryContext queryCtx) { + ParseResp parseResult = queryCtx.getParseResp(); queryCtx.setChatWorkflowState(initialState); while (queryCtx.getChatWorkflowState() != ChatWorkflowState.FINISHED) { switch (queryCtx.getChatWorkflowState()) {