From 4ad3e1d9cf21d33a283ee05567250dc2fa89b307 Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Tue, 26 Sep 2023 20:17:02 +0800 Subject: [PATCH] (improvement)(chat) support show logicSql querySql llmParseSql (#148) --- .../chat/api/pojo/SemanticParseInfo.java | 21 +++++++++---------- .../chat/api/pojo/response/SqlInfo.java | 11 ++++++++++ .../chat/parser/llm/dsl/LLMDslParser.java | 3 ++- .../chat/service/impl/QueryServiceImpl.java | 2 +- 4 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/SqlInfo.java diff --git a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/SemanticParseInfo.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/SemanticParseInfo.java index e6da4826f..1a6c52d2f 100644 --- a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/SemanticParseInfo.java +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/SemanticParseInfo.java @@ -1,20 +1,20 @@ package com.tencent.supersonic.chat.api.pojo; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.LinkedHashSet; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.Comparator; - import com.tencent.supersonic.chat.api.pojo.request.QueryFilter; import com.tencent.supersonic.chat.api.pojo.response.EntityInfo; +import com.tencent.supersonic.chat.api.pojo.response.SqlInfo; import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.Order; import com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import lombok.Data; @Data @@ -37,8 +37,7 @@ public class SemanticParseInfo { private List elementMatches = new ArrayList<>(); private Map properties = new HashMap<>(); private EntityInfo entityInfo; - private String logicSql; - private String querySql; + private SqlInfo sqlInfo = new SqlInfo(); public Long getModelId() { return model != null ? model.getId() : 0L; diff --git a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/SqlInfo.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/SqlInfo.java new file mode 100644 index 000000000..62a7e993b --- /dev/null +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/SqlInfo.java @@ -0,0 +1,11 @@ +package com.tencent.supersonic.chat.api.pojo.response; + +import lombok.Data; + +@Data +public class SqlInfo { + + private String llmParseSql; + private String logicSql; + private String querySql; +} diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/LLMDslParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/LLMDslParser.java index b0a49338c..e7d02977f 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/LLMDslParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/LLMDslParser.java @@ -132,7 +132,7 @@ public class LLMDslParser implements SemanticParser { if (StringUtils.isEmpty(correctorSql)) { correctorSql = semanticCorrectInfo.getSql(); } - parseInfo.setLogicSql(correctorSql); + parseInfo.getSqlInfo().setLogicSql(correctorSql); List expressions = SqlParserSelectHelper.getFilterExpression(correctorSql); //set dataInfo try { @@ -281,6 +281,7 @@ public class LLMDslParser implements SemanticParser { parseInfo.setProperties(properties); parseInfo.setScore(function_bonus_threshold); parseInfo.setQueryMode(semanticQuery.getQueryMode()); + parseInfo.getSqlInfo().setLlmParseSql(dslParseResult.getLlmResp().getSqlOutput()); SemanticSchema semanticSchema = ContextUtils.getBean(SchemaService.class).getSemanticSchema(); Map modelIdToName = semanticSchema.getModelIdToName(); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java index e2b3f4b28..74f0a89ac 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java @@ -165,7 +165,7 @@ public class QueryServiceImpl implements QueryService { if (Objects.isNull(explain)) { return; } - parseInfo.setQuerySql(explain.getSql()); + parseInfo.getSqlInfo().setQuerySql(explain.getSql()); } @Override