(fix)(headless)Fix demo conversations with DETAIL query mode.

(fix)(headless)Fix demo conversations with DETAIL query mode.
This commit is contained in:
jerryjzhang
2024-08-10 21:47:11 +08:00
parent 68952fdb55
commit b13b38c645
8 changed files with 25 additions and 17 deletions

View File

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

View File

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

View File

@@ -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;
}

View File

@@ -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