From f9d6ea11c572f6ec26ce8eb6aa931e9e014c647c Mon Sep 17 00:00:00 2001 From: 21Janur Date: Thu, 11 Jul 2024 20:44:05 +0800 Subject: [PATCH] (improvement)(headless)Improve dataset time query judgment (#1395) (improvement)(headless)Improve dataset time query judgment The official document describes that if you do not want to add a time limit, please set the time to -1, but it has not taken effect. During LLM parsing, the parameters passed to the model still default to the date parameter. Now change to include the date parameter only when [unit!=-1 '] is checked in the dataset query settings --- .../headless/chat/parser/llm/LLMRequestService.java | 8 +++++++- .../chat/query/rule/detail/DetailSemanticQuery.java | 4 ++-- .../chat/query/rule/metric/MetricSemanticQuery.java | 6 ++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java index 2e964a8a8..9630d6e0b 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/LLMRequestService.java @@ -81,7 +81,13 @@ public class LLMRequestService { llmSchema.setDomainName(dataSetIdToName.get(dataSetId)); List fieldNameList = getFieldNameList(queryCtx, dataSetId, llmParserConfig); - fieldNameList.add(TimeDimensionEnum.DAY.getChName()); + if(Objects.nonNull(semanticSchema.getDataSetSchemaMap()) && Objects.nonNull(semanticSchema.getDataSetSchemaMap().get(dataSetId))){ + TimeDefaultConfig timeDefaultConfig = semanticSchema.getDataSetSchemaMap().get(dataSetId).getTagTypeTimeDefaultConfig(); + if(!Objects.equals(timeDefaultConfig.getUnit(),-1)){ + // 数据集查询设置 时间不为-1时才添加 '数据日期' 字段 + fieldNameList.add(TimeDimensionEnum.DAY.getChName()); + } + } llmSchema.setFieldNameList(fieldNameList); llmSchema.setMetrics(getMatchedMetrics(queryCtx, dataSetId)); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/detail/DetailSemanticQuery.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/detail/DetailSemanticQuery.java index a0cba04eb..9128b9d79 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/detail/DetailSemanticQuery.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/detail/DetailSemanticQuery.java @@ -45,7 +45,7 @@ public abstract class DetailSemanticQuery extends RuleSemanticQuery { chatQueryContext.getSemanticSchema().getDataSetSchemaMap().get(parseInfo.getDataSetId()); TimeDefaultConfig timeDefaultConfig = dataSetSchema.getTagTypeTimeDefaultConfig(); DateConf dateInfo = new DateConf(); - if (Objects.nonNull(timeDefaultConfig) && Objects.nonNull(timeDefaultConfig.getUnit())) { + if (Objects.nonNull(timeDefaultConfig) && Objects.nonNull(timeDefaultConfig.getUnit()) && timeDefaultConfig.getUnit() != -1) { int unit = timeDefaultConfig.getUnit(); String startDate = LocalDate.now().plusDays(-unit).toString(); String endDate = startDate; @@ -59,8 +59,8 @@ public abstract class DetailSemanticQuery extends RuleSemanticQuery { dateInfo.setPeriod(timeDefaultConfig.getPeriod()); dateInfo.setStartDate(startDate); dateInfo.setEndDate(endDate); + parseInfo.setDateInfo(dateInfo); } - parseInfo.setDateInfo(dateInfo); } } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/metric/MetricSemanticQuery.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/metric/MetricSemanticQuery.java index 931be856a..17430c495 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/metric/MetricSemanticQuery.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/metric/MetricSemanticQuery.java @@ -44,7 +44,8 @@ public abstract class MetricSemanticQuery extends RuleSemanticQuery { chatQueryContext.getSemanticSchema().getDataSetSchemaMap().get(parseInfo.getDataSetId()); TimeDefaultConfig timeDefaultConfig = dataSetSchema.getMetricTypeTimeDefaultConfig(); DateConf dateInfo = new DateConf(); - if (Objects.nonNull(timeDefaultConfig) && Objects.nonNull(timeDefaultConfig.getUnit())) { + //加上时间!=-1 判断 + if (Objects.nonNull(timeDefaultConfig) && Objects.nonNull(timeDefaultConfig.getUnit()) && timeDefaultConfig.getUnit() != -1) { int unit = timeDefaultConfig.getUnit(); String startDate = LocalDate.now().plusDays(-unit).toString(); String endDate = startDate; @@ -58,8 +59,9 @@ public abstract class MetricSemanticQuery extends RuleSemanticQuery { dateInfo.setPeriod(timeDefaultConfig.getPeriod()); dateInfo.setStartDate(startDate); dateInfo.setEndDate(endDate); + // 时间不为-1才设置时间,所以移到这里 + parseInfo.setDateInfo(dateInfo); } - parseInfo.setDateInfo(dateInfo); } } }