[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.
*/
@Slf4j
@Deprecated
public class SatisfactionChecker {
// 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.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;
}

View File

@@ -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();

View File

@@ -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
com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor

View File

@@ -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
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.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=\