mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 12:37:55 +00:00
[improvement][chat]Introduce TimeFieldMapper to always map time field.
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
package com.tencent.supersonic.headless.chat.mapper;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.common.pojo.enums.Text2SQLType;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.SchemaElement;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch;
|
||||||
|
import com.tencent.supersonic.headless.chat.ChatQueryContext;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class TimeFieldMapper extends BaseMapper {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doMap(ChatQueryContext chatQueryContext) {
|
||||||
|
if (chatQueryContext.getRequest().getText2SQLType().equals(Text2SQLType.ONLY_RULE)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, DataSetSchema> schemaMap =
|
||||||
|
chatQueryContext.getSemanticSchema().getDataSetSchemaMap();
|
||||||
|
for (Map.Entry<Long, DataSetSchema> entry : schemaMap.entrySet()) {
|
||||||
|
List<SchemaElement> timeDims = entry.getValue().getDimensions().stream()
|
||||||
|
.filter(dim -> dim.getTimeFormat() != null).collect(Collectors.toList());
|
||||||
|
for (SchemaElement schemaElement : timeDims) {
|
||||||
|
chatQueryContext.getMapInfo().getMatchedElements(entry.getKey())
|
||||||
|
.add(SchemaElementMatch.builder().word(schemaElement.getName())
|
||||||
|
.element(schemaElement).detectWord(schemaElement.getName())
|
||||||
|
.similarity(1.0).build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ com.tencent.supersonic.headless.chat.mapper.SchemaMapper=\
|
|||||||
com.tencent.supersonic.headless.chat.mapper.EmbeddingMapper, \
|
com.tencent.supersonic.headless.chat.mapper.EmbeddingMapper, \
|
||||||
com.tencent.supersonic.headless.chat.mapper.KeywordMapper, \
|
com.tencent.supersonic.headless.chat.mapper.KeywordMapper, \
|
||||||
com.tencent.supersonic.headless.chat.mapper.QueryFilterMapper, \
|
com.tencent.supersonic.headless.chat.mapper.QueryFilterMapper, \
|
||||||
|
com.tencent.supersonic.headless.chat.mapper.TimeFieldMapper,\
|
||||||
com.tencent.supersonic.headless.chat.mapper.TermDescMapper
|
com.tencent.supersonic.headless.chat.mapper.TermDescMapper
|
||||||
|
|
||||||
com.tencent.supersonic.headless.chat.parser.SemanticParser=\
|
com.tencent.supersonic.headless.chat.parser.SemanticParser=\
|
||||||
@@ -27,9 +28,9 @@ com.tencent.supersonic.headless.chat.parser.llm.DataSetResolver=\
|
|||||||
com.tencent.supersonic.headless.core.translator.converter.QueryConverter=\
|
com.tencent.supersonic.headless.core.translator.converter.QueryConverter=\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.DefaultDimValueConverter,\
|
com.tencent.supersonic.headless.core.translator.converter.DefaultDimValueConverter,\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.SqlVariableConverter,\
|
com.tencent.supersonic.headless.core.translator.converter.SqlVariableConverter,\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.MetricRatioConverter,\
|
|
||||||
com.tencent.supersonic.headless.core.translator.converter.SqlQueryConverter,\
|
com.tencent.supersonic.headless.core.translator.converter.SqlQueryConverter,\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.StructQueryConverter
|
com.tencent.supersonic.headless.core.translator.converter.StructQueryConverter,\
|
||||||
|
com.tencent.supersonic.headless.core.translator.converter.MetricRatioConverter
|
||||||
|
|
||||||
com.tencent.supersonic.headless.core.translator.optimizer.QueryOptimizer=\
|
com.tencent.supersonic.headless.core.translator.optimizer.QueryOptimizer=\
|
||||||
com.tencent.supersonic.headless.core.translator.optimizer.DetailQueryOptimizer,\
|
com.tencent.supersonic.headless.core.translator.optimizer.DetailQueryOptimizer,\
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ com.tencent.supersonic.headless.chat.mapper.SchemaMapper=\
|
|||||||
com.tencent.supersonic.headless.chat.mapper.EmbeddingMapper, \
|
com.tencent.supersonic.headless.chat.mapper.EmbeddingMapper, \
|
||||||
com.tencent.supersonic.headless.chat.mapper.KeywordMapper, \
|
com.tencent.supersonic.headless.chat.mapper.KeywordMapper, \
|
||||||
com.tencent.supersonic.headless.chat.mapper.QueryFilterMapper, \
|
com.tencent.supersonic.headless.chat.mapper.QueryFilterMapper, \
|
||||||
|
com.tencent.supersonic.headless.chat.mapper.TimeFieldMapper,\
|
||||||
com.tencent.supersonic.headless.chat.mapper.TermDescMapper
|
com.tencent.supersonic.headless.chat.mapper.TermDescMapper
|
||||||
|
|
||||||
com.tencent.supersonic.headless.chat.parser.SemanticParser=\
|
com.tencent.supersonic.headless.chat.parser.SemanticParser=\
|
||||||
@@ -27,9 +28,9 @@ com.tencent.supersonic.headless.chat.parser.llm.DataSetResolver=\
|
|||||||
com.tencent.supersonic.headless.core.translator.converter.QueryConverter=\
|
com.tencent.supersonic.headless.core.translator.converter.QueryConverter=\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.DefaultDimValueConverter,\
|
com.tencent.supersonic.headless.core.translator.converter.DefaultDimValueConverter,\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.SqlVariableConverter,\
|
com.tencent.supersonic.headless.core.translator.converter.SqlVariableConverter,\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.MetricRatioConverter,\
|
|
||||||
com.tencent.supersonic.headless.core.translator.converter.SqlQueryConverter,\
|
com.tencent.supersonic.headless.core.translator.converter.SqlQueryConverter,\
|
||||||
com.tencent.supersonic.headless.core.translator.converter.StructQueryConverter
|
com.tencent.supersonic.headless.core.translator.converter.StructQueryConverter,\
|
||||||
|
com.tencent.supersonic.headless.core.translator.converter.MetricRatioConverter
|
||||||
|
|
||||||
com.tencent.supersonic.headless.core.translator.optimizer.QueryOptimizer=\
|
com.tencent.supersonic.headless.core.translator.optimizer.QueryOptimizer=\
|
||||||
com.tencent.supersonic.headless.core.translator.optimizer.DetailQueryOptimizer,\
|
com.tencent.supersonic.headless.core.translator.optimizer.DetailQueryOptimizer,\
|
||||||
|
|||||||
Reference in New Issue
Block a user