mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 13:47:09 +00:00
(fix)(headless)Fix demo conversations with DETAIL query mode.
(fix)(headless)Fix demo conversations with DETAIL query mode.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.tencent.supersonic.headless.chat.corrector;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.enums.QueryType;
|
||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
import com.tencent.supersonic.common.jsqlparser.SqlAddHelper;
|
||||
@@ -33,6 +34,10 @@ public class GroupByCorrector extends BaseSemanticCorrector {
|
||||
}
|
||||
|
||||
private Boolean needAddGroupBy(ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) {
|
||||
if (!QueryType.METRIC.equals(semanticParseInfo.getQueryType())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Long dataSetId = semanticParseInfo.getDataSetId();
|
||||
//add dimension group by
|
||||
SqlInfo sqlInfo = semanticParseInfo.getSqlInfo();
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.tencent.supersonic.headless.chat.query.QueryManager;
|
||||
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
||||
import com.tencent.supersonic.headless.chat.query.rule.RuleSemanticQuery;
|
||||
import com.tencent.supersonic.headless.chat.parser.SemanticParser;
|
||||
import com.tencent.supersonic.headless.chat.query.rule.detail.DetailDimensionQuery;
|
||||
import com.tencent.supersonic.headless.chat.query.rule.metric.MetricModelQuery;
|
||||
import com.tencent.supersonic.headless.chat.query.rule.metric.MetricSemanticQuery;
|
||||
import com.tencent.supersonic.headless.chat.query.rule.metric.MetricIdQuery;
|
||||
@@ -103,7 +104,8 @@ public class ContextInheritParser implements SemanticParser {
|
||||
protected boolean shouldInherit(ChatQueryContext chatQueryContext) {
|
||||
// if candidates only have MetricModel mode, count in context
|
||||
List<SemanticQuery> metricModelQueries = chatQueryContext.getCandidateQueries().stream()
|
||||
.filter(query -> query instanceof MetricModelQuery).collect(
|
||||
.filter(query -> query instanceof MetricModelQuery
|
||||
|| query instanceof DetailDimensionQuery).collect(
|
||||
Collectors.toList());
|
||||
return metricModelQueries.size() == chatQueryContext.getCandidateQueries().size();
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class QueryManager {
|
||||
return ruleQueryMap.get(queryMode) instanceof MetricSemanticQuery;
|
||||
}
|
||||
|
||||
public static boolean isTagQuery(String queryMode) {
|
||||
public static boolean isDetailQuery(String queryMode) {
|
||||
if (queryMode == null || !ruleQueryMap.containsKey(queryMode)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -75,8 +75,8 @@ public abstract class RuleSemanticQuery extends BaseSemanticQuery {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((QueryManager.isTagQuery(queryParseInfo.getQueryMode())
|
||||
&& QueryManager.isTagQuery(contextParseInfo.getQueryMode()))
|
||||
if ((QueryManager.isDetailQuery(queryParseInfo.getQueryMode())
|
||||
&& QueryManager.isDetailQuery(contextParseInfo.getQueryMode()))
|
||||
|| (QueryManager.isMetricQuery(queryParseInfo.getQueryMode())
|
||||
&& QueryManager.isMetricQuery(contextParseInfo.getQueryMode()))) {
|
||||
// inherit date info from context
|
||||
|
||||
Reference in New Issue
Block a user