Skip to content

Commit bef6528

Browse files
authored
(improvement)(chat) Do not pass default date configuration to the large model uniformly. (#1601)
1 parent d230646 commit bef6528

4 files changed

Lines changed: 27 additions & 40 deletions

File tree

common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlRemoveHelper.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package com.tencent.supersonic.common.jsqlparser;
22

3-
import java.util.ArrayList;
4-
import java.util.HashSet;
5-
import java.util.List;
6-
import java.util.Objects;
7-
import java.util.Set;
83
import lombok.extern.slf4j.Slf4j;
94
import net.sf.jsqlparser.JSQLParserException;
105
import net.sf.jsqlparser.expression.BinaryExpression;
@@ -33,6 +28,12 @@
3328
import net.sf.jsqlparser.statement.select.SelectVisitorAdapter;
3429
import org.springframework.util.CollectionUtils;
3530

31+
import java.util.ArrayList;
32+
import java.util.HashSet;
33+
import java.util.List;
34+
import java.util.Objects;
35+
import java.util.Set;
36+
3637
/**
3738
* Sql Parser remove Helper
3839
*/
@@ -228,7 +229,6 @@ public static String removeGroupBy(String sql, Set<String> fields) {
228229
if (selectStatement == null) {
229230
return sql;
230231
}
231-
//SelectBody selectBody = selectStatement.getSelectBody();
232232
if (!(selectStatement instanceof PlainSelect)) {
233233
return sql;
234234
}

headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/BaseSemanticCorrector.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,15 @@ protected Map<String, String> getFieldNameMap(ChatQueryContext chatQueryContext,
6161
return elements.stream();
6262
})
6363
.collect(Collectors.toMap(a -> a, a -> a, (k1, k2) -> k1));
64-
65-
result.put(TimeDimensionEnum.DAY.getChName(), TimeDimensionEnum.DAY.getChName());
66-
result.put(TimeDimensionEnum.MONTH.getChName(), TimeDimensionEnum.MONTH.getChName());
67-
result.put(TimeDimensionEnum.WEEK.getChName(), TimeDimensionEnum.WEEK.getChName());
68-
69-
result.put(TimeDimensionEnum.DAY.getName(), TimeDimensionEnum.DAY.getChName());
70-
result.put(TimeDimensionEnum.MONTH.getName(), TimeDimensionEnum.MONTH.getChName());
71-
result.put(TimeDimensionEnum.WEEK.getName(), TimeDimensionEnum.WEEK.getChName());
64+
if (chatQueryContext.containsPartitionDimensions(dataSetId)) {
65+
result.put(TimeDimensionEnum.DAY.getChName(), TimeDimensionEnum.DAY.getChName());
66+
result.put(TimeDimensionEnum.MONTH.getChName(), TimeDimensionEnum.MONTH.getChName());
67+
result.put(TimeDimensionEnum.WEEK.getChName(), TimeDimensionEnum.WEEK.getChName());
68+
69+
result.put(TimeDimensionEnum.DAY.getName(), TimeDimensionEnum.DAY.getChName());
70+
result.put(TimeDimensionEnum.MONTH.getName(), TimeDimensionEnum.MONTH.getChName());
71+
result.put(TimeDimensionEnum.WEEK.getName(), TimeDimensionEnum.WEEK.getChName());
72+
}
7273
return result;
7374
}
7475

headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ private void removeDateIfExist(SemanticParseInfo semanticParseInfo) {
4747
removeFieldNames.add(TimeDimensionEnum.WEEK.getChName());
4848
removeFieldNames.add(TimeDimensionEnum.MONTH.getChName());
4949
correctS2SQL = SqlRemoveHelper.removeWhereCondition(correctS2SQL, removeFieldNames);
50+
correctS2SQL = SqlRemoveHelper.removeGroupBy(correctS2SQL, removeFieldNames);
5051
semanticParseInfo.getSqlInfo().setCorrectedS2SQL(correctS2SQL);
5152
}
5253

headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch;
88
import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
99
import com.tencent.supersonic.headless.api.pojo.SemanticSchema;
10-
import com.tencent.supersonic.headless.api.pojo.TimeDefaultConfig;
1110
import com.tencent.supersonic.headless.chat.ChatQueryContext;
1211
import com.tencent.supersonic.headless.chat.parser.ParserConfig;
1312
import com.tencent.supersonic.headless.chat.parser.SatisfactionChecker;
@@ -231,38 +230,24 @@ protected List<SchemaElement> getMatchedMetrics(ChatQueryContext queryCtx, Long
231230
protected List<SchemaElement> getMatchedDimensions(ChatQueryContext queryCtx, Long dataSetId) {
232231

233232
List<SchemaElementMatch> matchedElements = queryCtx.getMapInfo().getMatchedElements(dataSetId);
234-
Set<SchemaElement> results = new HashSet<>();
235-
236-
if (!CollectionUtils.isEmpty(matchedElements)) {
237-
results = matchedElements.stream()
238-
.filter(element -> SchemaElementType.DIMENSION.equals(element.getElement().getType()))
239-
.map(SchemaElementMatch::getElement)
240-
.collect(Collectors.toSet());
241-
}
242-
233+
Set<SchemaElement> dimensionElements = matchedElements.stream()
234+
.filter(element -> SchemaElementType.DIMENSION.equals(element.getElement().getType()))
235+
.map(SchemaElementMatch::getElement)
236+
.collect(Collectors.toSet());
243237
SemanticSchema semanticSchema = queryCtx.getSemanticSchema();
244238
if (semanticSchema == null || semanticSchema.getDataSetSchemaMap() == null) {
245-
return new ArrayList<>(results);
239+
return new ArrayList<>(dimensionElements);
246240
}
247241

248-
DataSetSchema dataSetSchema = semanticSchema.getDataSetSchemaMap().get(dataSetId);
242+
Map<Long, DataSetSchema> dataSetSchemaMap = semanticSchema.getDataSetSchemaMap();
243+
DataSetSchema dataSetSchema = dataSetSchemaMap.get(dataSetId);
249244
if (dataSetSchema == null) {
250-
return new ArrayList<>(results);
245+
return new ArrayList<>(dimensionElements);
251246
}
252-
253-
TimeDefaultConfig timeDefaultConfig = dataSetSchema.getTagTypeTimeDefaultConfig();
254247
SchemaElement partitionDimension = dataSetSchema.getPartitionDimension();
255-
256-
if (timeDefaultConfig == null || partitionDimension == null) {
257-
return new ArrayList<>(results);
258-
}
259-
260-
if (Objects.equals(timeDefaultConfig.getUnit(), -1)) {
261-
results.remove(partitionDimension);
262-
} else {
263-
results.add(partitionDimension);
248+
if (partitionDimension != null) {
249+
dimensionElements.add(partitionDimension);
264250
}
265-
266-
return new ArrayList<>(results);
251+
return new ArrayList<>(dimensionElements);
267252
}
268253
}

0 commit comments

Comments
 (0)