diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/SatisfactionChecker.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/SatisfactionChecker.java index e6ff0d05b..52898039c 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/SatisfactionChecker.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/SatisfactionChecker.java @@ -16,6 +16,7 @@ import static com.tencent.supersonic.headless.chat.parser.ParserConfig.PARSER_TE * by current candidate queries. If so, current parser could be skipped. */ @Slf4j +@Deprecated public class SatisfactionChecker { // check all the parse info in candidate diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java index f493272e9..1513f128c 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java @@ -8,7 +8,6 @@ import com.tencent.supersonic.headless.api.pojo.SchemaElementType; import com.tencent.supersonic.headless.api.pojo.SemanticSchema; import com.tencent.supersonic.headless.chat.ChatQueryContext; import com.tencent.supersonic.headless.chat.parser.ParserConfig; -import com.tencent.supersonic.headless.chat.parser.SatisfactionChecker; import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMReq; import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMResp; import com.tencent.supersonic.headless.chat.utils.ComponentFactory; @@ -40,11 +39,6 @@ public class LLMRequestService { return true; } - if (SatisfactionChecker.isSkip(queryCtx)) { - log.info("skip {}, queryText:{}", LLMSqlParser.class, queryCtx.getQueryText()); - return true; - } - return false; } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/RuleSqlParser.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/RuleSqlParser.java index cd107d702..9bbf72da5 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/RuleSqlParser.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/RuleSqlParser.java @@ -23,7 +23,8 @@ public class RuleSqlParser implements SemanticParser { @Override public void parse(ChatQueryContext chatQueryContext) { - if (!chatQueryContext.getText2SQLType().enableRule()) { + if (!chatQueryContext.getText2SQLType().enableRule() + || !chatQueryContext.getCandidateQueries().isEmpty()) { return; } SchemaMapInfo mapInfo = chatQueryContext.getMapInfo(); diff --git a/launchers/chat/src/main/resources/META-INF/spring.factories b/launchers/chat/src/main/resources/META-INF/spring.factories index e860d097e..9e4acc0e1 100644 --- a/launchers/chat/src/main/resources/META-INF/spring.factories +++ b/launchers/chat/src/main/resources/META-INF/spring.factories @@ -1,43 +1,31 @@ -com.tencent.supersonic.chat.core.mapper.SchemaMapper=\ - com.tencent.supersonic.chat.core.mapper.EmbeddingMapper, \ - com.tencent.supersonic.chat.core.mapper.KeywordMapper, \ - com.tencent.supersonic.chat.core.mapper.QueryFilterMapper, \ - com.tencent.supersonic.chat.core.mapper.EntityMapper +### chat-server SPIs -com.tencent.supersonic.chat.core.parser.SemanticParser=\ - com.tencent.supersonic.chat.core.parser.sql.rule.RuleSqlParser, \ - com.tencent.supersonic.chat.core.parser.sql.llm.LLMSqlParser, \ - com.tencent.supersonic.chat.core.parser.plugin.embedding.EmbeddingRecallParser, \ - com.tencent.supersonic.chat.core.parser.plugin.function.FunctionCallParser, \ - com.tencent.supersonic.chat.core.parser.QueryTypeParser +com.tencent.supersonic.chat.server.parser.ChatQueryParser=\ + com.tencent.supersonic.chat.server.parser.NL2PluginParser, \ + com.tencent.supersonic.chat.server.parser.NL2SQLParser,\ + com.tencent.supersonic.chat.server.parser.PlainTextParser -com.tencent.supersonic.chat.core.corrector.SemanticCorrector=\ - com.tencent.supersonic.chat.core.corrector.SchemaCorrector, \ - com.tencent.supersonic.chat.core.corrector.TimeCorrector, \ - com.tencent.supersonic.chat.core.corrector.GrammarCorrector +com.tencent.supersonic.chat.server.executor.ChatQueryExecutor=\ + com.tencent.supersonic.chat.server.executor.PluginExecutor, \ + com.tencent.supersonic.chat.server.executor.SqlExecutor,\ + com.tencent.supersonic.chat.server.executor.PlainTextExecutor -com.tencent.supersonic.chat.core.query.semantic.SemanticInterpreter=\ - com.tencent.supersonic.chat.core.query.semantic.RemoteSemanticInterpreter +com.tencent.supersonic.chat.server.plugin.recognize.PluginRecognizer=\ + com.tencent.supersonic.chat.server.plugin.recognize.embedding.EmbeddingRecallRecognizer -com.tencent.supersonic.chat.core.parser.sql.llm.ViewResolver=\ - com.tencent.supersonic.chat.core.parser.sql.llm.HeuristicModelResolver +com.tencent.supersonic.chat.server.processor.parse.ParseResultProcessor=\ + com.tencent.supersonic.chat.server.processor.parse.QueryRecommendProcessor,\ + com.tencent.supersonic.chat.server.processor.parse.TimeCostProcessor + +com.tencent.supersonic.chat.server.processor.execute.ExecuteResultProcessor=\ + com.tencent.supersonic.chat.server.processor.execute.MetricRecommendProcessor,\ + com.tencent.supersonic.chat.server.processor.execute.DimensionRecommendProcessor,\ + com.tencent.supersonic.chat.server.processor.execute.MetricRatioProcessor + +### auth-authentication SPIs com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ - com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor - -com.tencent.supersonic.chat.postprocessor.PostProcessor=\ - com.tencent.supersonic.chat.postprocessor.MetricCheckPostProcessor, \ - com.tencent.supersonic.chat.postprocessor.ParseInfoUpdateProcessor, \ - com.tencent.supersonic.chat.postprocessor.QueryRankPostProcessor, \ - com.tencent.supersonic.chat.postprocessor.EntityInfoPostProcessor, \ - com.tencent.supersonic.chat.postprocessor.SqlOutputPostProcessor, \ - com.tencent.supersonic.chat.postprocessor.TimeCostPostProcessor, \ - com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor - -com.tencent.supersonic.chat.server.processor.execute.ExecuteResultProcessor=\ - com.tencent.supersonic.chat.server.processor.execute.MetricRecommendProcessor,\ - com.tencent.supersonic.chat.server.processor.execute.DimensionRecommendProcessor,\ - com.tencent.supersonic.chat.server.processor.execute.MetricRatioProcessor \ No newline at end of file + com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor \ No newline at end of file diff --git a/launchers/headless/src/main/resources/META-INF/spring.factories b/launchers/headless/src/main/resources/META-INF/spring.factories index f49ecff6b..689842a24 100644 --- a/launchers/headless/src/main/resources/META-INF/spring.factories +++ b/launchers/headless/src/main/resources/META-INF/spring.factories @@ -1,23 +1,60 @@ -com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ - com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor +### headless-chat SPIs -com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ - com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor +com.tencent.supersonic.headless.chat.mapper.SchemaMapper=\ + com.tencent.supersonic.headless.chat.mapper.EmbeddingMapper, \ + com.tencent.supersonic.headless.chat.mapper.KeywordMapper, \ + com.tencent.supersonic.headless.chat.mapper.QueryFilterMapper, \ + com.tencent.supersonic.headless.chat.mapper.EntityMapper, \ + com.tencent.supersonic.headless.chat.mapper.TermDescMapper -com.tencent.supersonic.headless.core.parser.converter.HeadlessConverter=\ - com.tencent.supersonic.headless.core.parser.converter.DefaultDimValueConverter,\ - com.tencent.supersonic.headless.core.parser.converter.SqlVariableParseConverter,\ - com.tencent.supersonic.headless.core.parser.converter.CalculateAggConverter,\ - com.tencent.supersonic.headless.core.parser.converter.ParserDefaultConverter +com.tencent.supersonic.headless.chat.parser.SemanticParser=\ + com.tencent.supersonic.headless.chat.parser.llm.LLMSqlParser,\ + com.tencent.supersonic.headless.chat.parser.rule.RuleSqlParser,\ + com.tencent.supersonic.headless.chat.parser.QueryTypeParser -com.tencent.supersonic.headless.core.planner.QueryOptimizer=\ - com.tencent.supersonic.headless.core.planner.DetailQueryOptimizer +com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\ + com.tencent.supersonic.headless.chat.corrector.SchemaCorrector, \ + com.tencent.supersonic.headless.chat.corrector.TimeCorrector, \ + com.tencent.supersonic.headless.chat.corrector.GrammarCorrector + +com.tencent.supersonic.headless.chat.knowledge.file.FileHandler=\ + com.tencent.supersonic.headless.chat.knowledge.file.FileHandlerImpl + +com.tencent.supersonic.headless.chat.parser.llm.DataSetResolver=\ + com.tencent.supersonic.headless.chat.parser.llm.HeuristicDataSetResolver + + +### headless-core SPIs + +com.tencent.supersonic.headless.core.translator.converter.QueryConverter=\ + com.tencent.supersonic.headless.core.translator.converter.DefaultDimValueConverter,\ + com.tencent.supersonic.headless.core.translator.converter.SqlVariableParseConverter,\ + com.tencent.supersonic.headless.core.translator.converter.CalculateAggConverter,\ + com.tencent.supersonic.headless.core.translator.converter.ParserDefaultConverter + +com.tencent.supersonic.headless.core.translator.QueryOptimizer=\ + com.tencent.supersonic.headless.core.translator.DetailQueryOptimizer + +com.tencent.supersonic.headless.core.translator.QueryParser=\ + com.tencent.supersonic.headless.core.translator.calcite.CalciteQueryParser com.tencent.supersonic.headless.core.executor.QueryExecutor=\ com.tencent.supersonic.headless.core.executor.JdbcExecutor -com.tencent.supersonic.headless.core.parser.SqlParser=\ - com.tencent.supersonic.headless.core.parser.calcite.CalciteSqlParser - com.tencent.supersonic.headless.core.cache.QueryCache=\ - com.tencent.supersonic.headless.core.cache.DefaultQueryCache \ No newline at end of file + com.tencent.supersonic.headless.core.cache.DefaultQueryCache + + +### headless-server SPIs + +com.tencent.supersonic.headless.server.processor.ResultProcessor=\ + com.tencent.supersonic.headless.server.processor.ParseInfoProcessor,\ + com.tencent.supersonic.headless.server.processor.EntityInfoProcessor + +### auth-authentication SPIs + +com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ + com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor + +com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ + com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/META-INF/spring.factories b/launchers/standalone/src/main/resources/META-INF/spring.factories index 967c4aec5..aa8efc6bf 100644 --- a/launchers/standalone/src/main/resources/META-INF/spring.factories +++ b/launchers/standalone/src/main/resources/META-INF/spring.factories @@ -8,8 +8,8 @@ com.tencent.supersonic.headless.chat.mapper.SchemaMapper=\ com.tencent.supersonic.headless.chat.mapper.TermDescMapper com.tencent.supersonic.headless.chat.parser.SemanticParser=\ - com.tencent.supersonic.headless.chat.parser.rule.RuleSqlParser, \ - com.tencent.supersonic.headless.chat.parser.llm.LLMSqlParser, \ + com.tencent.supersonic.headless.chat.parser.llm.LLMSqlParser,\ + com.tencent.supersonic.headless.chat.parser.rule.RuleSqlParser,\ com.tencent.supersonic.headless.chat.parser.QueryTypeParser com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\