[improvement][headless-chat]Prioritize LLMSqlParser over RuleSqlParser.

This commit is contained in:
jerryjzhang
2024-09-27 16:21:46 +08:00
parent 764d3d24aa
commit a50fe98f00
6 changed files with 79 additions and 58 deletions

View File

@@ -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. * by current candidate queries. If so, current parser could be skipped.
*/ */
@Slf4j @Slf4j
@Deprecated
public class SatisfactionChecker { public class SatisfactionChecker {
// check all the parse info in candidate // check all the parse info in candidate

View File

@@ -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.api.pojo.SemanticSchema;
import com.tencent.supersonic.headless.chat.ChatQueryContext; import com.tencent.supersonic.headless.chat.ChatQueryContext;
import com.tencent.supersonic.headless.chat.parser.ParserConfig; 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.LLMReq;
import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMResp; import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMResp;
import com.tencent.supersonic.headless.chat.utils.ComponentFactory; import com.tencent.supersonic.headless.chat.utils.ComponentFactory;
@@ -40,11 +39,6 @@ public class LLMRequestService {
return true; return true;
} }
if (SatisfactionChecker.isSkip(queryCtx)) {
log.info("skip {}, queryText:{}", LLMSqlParser.class, queryCtx.getQueryText());
return true;
}
return false; return false;
} }

View File

@@ -23,7 +23,8 @@ public class RuleSqlParser implements SemanticParser {
@Override @Override
public void parse(ChatQueryContext chatQueryContext) { public void parse(ChatQueryContext chatQueryContext) {
if (!chatQueryContext.getText2SQLType().enableRule()) { if (!chatQueryContext.getText2SQLType().enableRule()
|| !chatQueryContext.getCandidateQueries().isEmpty()) {
return; return;
} }
SchemaMapInfo mapInfo = chatQueryContext.getMapInfo(); SchemaMapInfo mapInfo = chatQueryContext.getMapInfo();

View File

@@ -1,43 +1,31 @@
com.tencent.supersonic.chat.core.mapper.SchemaMapper=\ ### chat-server SPIs
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
com.tencent.supersonic.chat.core.parser.SemanticParser=\ com.tencent.supersonic.chat.server.parser.ChatQueryParser=\
com.tencent.supersonic.chat.core.parser.sql.rule.RuleSqlParser, \ com.tencent.supersonic.chat.server.parser.NL2PluginParser, \
com.tencent.supersonic.chat.core.parser.sql.llm.LLMSqlParser, \ com.tencent.supersonic.chat.server.parser.NL2SQLParser,\
com.tencent.supersonic.chat.core.parser.plugin.embedding.EmbeddingRecallParser, \ com.tencent.supersonic.chat.server.parser.PlainTextParser
com.tencent.supersonic.chat.core.parser.plugin.function.FunctionCallParser, \
com.tencent.supersonic.chat.core.parser.QueryTypeParser
com.tencent.supersonic.chat.core.corrector.SemanticCorrector=\ com.tencent.supersonic.chat.server.executor.ChatQueryExecutor=\
com.tencent.supersonic.chat.core.corrector.SchemaCorrector, \ com.tencent.supersonic.chat.server.executor.PluginExecutor, \
com.tencent.supersonic.chat.core.corrector.TimeCorrector, \ com.tencent.supersonic.chat.server.executor.SqlExecutor,\
com.tencent.supersonic.chat.core.corrector.GrammarCorrector com.tencent.supersonic.chat.server.executor.PlainTextExecutor
com.tencent.supersonic.chat.core.query.semantic.SemanticInterpreter=\ com.tencent.supersonic.chat.server.plugin.recognize.PluginRecognizer=\
com.tencent.supersonic.chat.core.query.semantic.RemoteSemanticInterpreter com.tencent.supersonic.chat.server.plugin.recognize.embedding.EmbeddingRecallRecognizer
com.tencent.supersonic.chat.core.parser.sql.llm.ViewResolver=\ com.tencent.supersonic.chat.server.processor.parse.ParseResultProcessor=\
com.tencent.supersonic.chat.core.parser.sql.llm.HeuristicModelResolver 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.AuthenticationInterceptor=\
com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor
com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\
com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor 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

View File

@@ -1,23 +1,60 @@
com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ ### headless-chat SPIs
com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor
com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ com.tencent.supersonic.headless.chat.mapper.SchemaMapper=\
com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor 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.chat.parser.SemanticParser=\
com.tencent.supersonic.headless.core.parser.converter.DefaultDimValueConverter,\ com.tencent.supersonic.headless.chat.parser.llm.LLMSqlParser,\
com.tencent.supersonic.headless.core.parser.converter.SqlVariableParseConverter,\ com.tencent.supersonic.headless.chat.parser.rule.RuleSqlParser,\
com.tencent.supersonic.headless.core.parser.converter.CalculateAggConverter,\ com.tencent.supersonic.headless.chat.parser.QueryTypeParser
com.tencent.supersonic.headless.core.parser.converter.ParserDefaultConverter
com.tencent.supersonic.headless.core.planner.QueryOptimizer=\ com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\
com.tencent.supersonic.headless.core.planner.DetailQueryOptimizer 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.QueryExecutor=\
com.tencent.supersonic.headless.core.executor.JdbcExecutor 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.QueryCache=\
com.tencent.supersonic.headless.core.cache.DefaultQueryCache 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

View File

@@ -8,8 +8,8 @@ com.tencent.supersonic.headless.chat.mapper.SchemaMapper=\
com.tencent.supersonic.headless.chat.mapper.TermDescMapper com.tencent.supersonic.headless.chat.mapper.TermDescMapper
com.tencent.supersonic.headless.chat.parser.SemanticParser=\ 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.parser.QueryTypeParser
com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\ com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\