mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-17 16:02:14 +00:00
[improvement][chat]Use one RuleBasedParser to encapsulate all rule-based semantic parsers
This commit is contained in:
@@ -0,0 +1,27 @@
|
|||||||
|
package com.tencent.supersonic.chat.parser.rule;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.chat.api.component.SemanticParser;
|
||||||
|
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
||||||
|
import com.tencent.supersonic.chat.api.pojo.QueryContext;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class RuleBasedParser implements SemanticParser {
|
||||||
|
|
||||||
|
private static List<SemanticParser> ruleParsers = Arrays.asList(
|
||||||
|
new QueryModeParser(),
|
||||||
|
new ContextInheritParser(),
|
||||||
|
new AgentCheckParser(),
|
||||||
|
new MetricCheckParser(),
|
||||||
|
new TimeRangeParser(),
|
||||||
|
new AggregateTypeParser()
|
||||||
|
);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(QueryContext queryContext, ChatContext chatContext) {
|
||||||
|
ruleParsers.stream().forEach(p -> p.parse(queryContext, chatContext));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,15 +6,17 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\
|
|||||||
com.tencent.supersonic.chat.mapper.EntityMapper
|
com.tencent.supersonic.chat.mapper.EntityMapper
|
||||||
|
|
||||||
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
||||||
com.tencent.supersonic.chat.parser.rule.QueryModeParser, \
|
com.tencent.supersonic.chat.parser.rule.RuleBasedParser, \
|
||||||
com.tencent.supersonic.chat.parser.rule.ContextInheritParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.AgentCheckParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.MetricCheckParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.TimeRangeParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.AggregateTypeParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.llm.s2ql.LLMS2QLParser, \
|
com.tencent.supersonic.chat.parser.llm.s2ql.LLMS2QLParser, \
|
||||||
com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser
|
com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser
|
||||||
|
|
||||||
|
com.tencent.supersonic.chat.api.component.SemanticCorrector=\
|
||||||
|
com.tencent.supersonic.chat.corrector.GlobalBeforeCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.SelectCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.WhereCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.GroupByCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.HavingCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.GlobalAfterCorrector
|
||||||
|
|
||||||
com.tencent.supersonic.chat.api.component.SemanticInterpreter=\
|
com.tencent.supersonic.chat.api.component.SemanticInterpreter=\
|
||||||
com.tencent.supersonic.knowledge.semantic.RemoteSemanticInterpreter
|
com.tencent.supersonic.knowledge.semantic.RemoteSemanticInterpreter
|
||||||
@@ -31,15 +33,6 @@ com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor
|
|||||||
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.api.component.SemanticCorrector=\
|
|
||||||
com.tencent.supersonic.chat.corrector.GlobalBeforeCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.SelectCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.WhereCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.GroupByCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.HavingCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.GlobalAfterCorrector
|
|
||||||
|
|
||||||
com.tencent.supersonic.chat.responder.parse.ParseResponder=\
|
com.tencent.supersonic.chat.responder.parse.ParseResponder=\
|
||||||
com.tencent.supersonic.chat.responder.parse.EntityInfoParseResponder, \
|
com.tencent.supersonic.chat.responder.parse.EntityInfoParseResponder, \
|
||||||
com.tencent.supersonic.chat.responder.parse.SqlInfoParseResponder
|
com.tencent.supersonic.chat.responder.parse.SqlInfoParseResponder
|
||||||
|
|||||||
@@ -6,16 +6,18 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\
|
|||||||
com.tencent.supersonic.chat.mapper.EntityMapper
|
com.tencent.supersonic.chat.mapper.EntityMapper
|
||||||
|
|
||||||
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
||||||
com.tencent.supersonic.chat.parser.rule.QueryModeParser, \
|
com.tencent.supersonic.chat.parser.rule.RuleBasedParser, \
|
||||||
com.tencent.supersonic.chat.parser.rule.ContextInheritParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.AgentCheckParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.MetricCheckParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.TimeRangeParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.AggregateTypeParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.llm.s2ql.LLMS2QLParser, \
|
com.tencent.supersonic.chat.parser.llm.s2ql.LLMS2QLParser, \
|
||||||
com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingBasedParser, \
|
com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingBasedParser, \
|
||||||
com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser
|
com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser
|
||||||
|
|
||||||
|
com.tencent.supersonic.chat.api.component.SemanticCorrector=\
|
||||||
|
com.tencent.supersonic.chat.corrector.GlobalBeforeCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.SelectCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.WhereCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.GroupByCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.HavingCorrector, \
|
||||||
|
com.tencent.supersonic.chat.corrector.GlobalAfterCorrector
|
||||||
|
|
||||||
com.tencent.supersonic.chat.api.component.SemanticInterpreter=\
|
com.tencent.supersonic.chat.api.component.SemanticInterpreter=\
|
||||||
com.tencent.supersonic.knowledge.semantic.LocalSemanticInterpreter
|
com.tencent.supersonic.knowledge.semantic.LocalSemanticInterpreter
|
||||||
@@ -32,14 +34,6 @@ com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor
|
|||||||
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.api.component.SemanticCorrector=\
|
|
||||||
com.tencent.supersonic.chat.corrector.GlobalBeforeCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.SelectCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.WhereCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.GroupByCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.HavingCorrector, \
|
|
||||||
com.tencent.supersonic.chat.corrector.GlobalAfterCorrector
|
|
||||||
|
|
||||||
com.tencent.supersonic.chat.responder.parse.ParseResponder=\
|
com.tencent.supersonic.chat.responder.parse.ParseResponder=\
|
||||||
com.tencent.supersonic.chat.responder.parse.EntityInfoParseResponder, \
|
com.tencent.supersonic.chat.responder.parse.EntityInfoParseResponder, \
|
||||||
com.tencent.supersonic.chat.responder.parse.SqlInfoParseResponder
|
com.tencent.supersonic.chat.responder.parse.SqlInfoParseResponder
|
||||||
|
|||||||
@@ -51,13 +51,14 @@ public class BaseQueryTest {
|
|||||||
protected QueryResult submitMultiTurnChat(String queryText) throws Exception {
|
protected QueryResult submitMultiTurnChat(String queryText) throws Exception {
|
||||||
ParseResp parseResp = submitParse(queryText);
|
ParseResp parseResp = submitParse(queryText);
|
||||||
|
|
||||||
ExecuteQueryReq request = new ExecuteQueryReq();
|
ExecuteQueryReq request = ExecuteQueryReq.builder()
|
||||||
request.setQueryId(parseResp.getQueryId());
|
.queryId(parseResp.getQueryId())
|
||||||
request.setParseId(parseResp.getSelectedParses().get(0).getId());
|
.parseId(parseResp.getSelectedParses().get(0).getId())
|
||||||
request.setChatId(parseResp.getChatId());
|
.chatId(parseResp.getChatId())
|
||||||
request.setQueryText(parseResp.getQueryText());
|
.queryText(parseResp.getQueryText())
|
||||||
request.setUser(DataUtils.getUser());
|
.user(DataUtils.getUser())
|
||||||
request.setParseInfo(parseResp.getSelectedParses().get(0));
|
.parseInfo(parseResp.getSelectedParses().get(0))
|
||||||
|
.build();
|
||||||
|
|
||||||
return queryService.performExecution(request);
|
return queryService.performExecution(request);
|
||||||
}
|
}
|
||||||
@@ -65,13 +66,14 @@ public class BaseQueryTest {
|
|||||||
protected QueryResult submitNewChat(String queryText) throws Exception {
|
protected QueryResult submitNewChat(String queryText) throws Exception {
|
||||||
ParseResp parseResp = submitParse(queryText);
|
ParseResp parseResp = submitParse(queryText);
|
||||||
|
|
||||||
ExecuteQueryReq request = new ExecuteQueryReq();
|
ExecuteQueryReq request = ExecuteQueryReq.builder()
|
||||||
request.setQueryId(parseResp.getQueryId());
|
.queryId(parseResp.getQueryId())
|
||||||
request.setParseId(parseResp.getSelectedParses().get(0).getId());
|
.parseId(parseResp.getSelectedParses().get(0).getId())
|
||||||
request.setChatId(parseResp.getChatId());
|
.chatId(parseResp.getChatId())
|
||||||
request.setQueryText(parseResp.getQueryText());
|
.queryText(parseResp.getQueryText())
|
||||||
request.setUser(DataUtils.getUser());
|
.user(DataUtils.getUser())
|
||||||
request.setParseInfo(parseResp.getSelectedParses().get(0));
|
.parseInfo(parseResp.getSelectedParses().get(0))
|
||||||
|
.build();
|
||||||
|
|
||||||
QueryResult result = queryService.performExecution(request);
|
QueryResult result = queryService.performExecution(request);
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,7 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\
|
|||||||
com.tencent.supersonic.chat.mapper.HanlpDictMapper
|
com.tencent.supersonic.chat.mapper.HanlpDictMapper
|
||||||
|
|
||||||
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
||||||
com.tencent.supersonic.chat.parser.rule.QueryModeParser, \
|
com.tencent.supersonic.chat.parser.rule.RuleBasedParser, \
|
||||||
com.tencent.supersonic.chat.parser.rule.ContextInheritParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.AgentCheckParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.TimeRangeParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.rule.AggregateTypeParser, \
|
|
||||||
com.tencent.supersonic.chat.parser.llm.interpret.MetricInterpretParser
|
com.tencent.supersonic.chat.parser.llm.interpret.MetricInterpretParser
|
||||||
# com.tencent.supersonic.chat.parser.llm.DSLQueryFunction
|
# com.tencent.supersonic.chat.parser.llm.DSLQueryFunction
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user