diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java index 5ef1bb5de..ade49588b 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java @@ -73,8 +73,10 @@ public class WhereCorrector extends BaseSemanticCorrector { List whereFields = SqlParserSelectHelper.getWhereFields(sql); if (CollectionUtils.isEmpty(whereFields) || !whereFields.contains(DateUtils.DATE_FIELD)) { String currentDate = DSLDateHelper.getReferenceDate(semanticCorrectInfo.getParseInfo().getModelId()); - sql = SqlParserAddHelper.addParenthesisToWhere(sql); - sql = SqlParserAddHelper.addWhere(sql, DateUtils.DATE_FIELD, currentDate); + if (StringUtils.isNotBlank(currentDate)) { + sql = SqlParserAddHelper.addParenthesisToWhere(sql); + sql = SqlParserAddHelper.addWhere(sql, DateUtils.DATE_FIELD, currentDate); + } } semanticCorrectInfo.setSql(sql); } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/DSLDateHelper.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/DSLDateHelper.java index 4031ce01e..c3ae24334 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/DSLDateHelper.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/dsl/DSLDateHelper.java @@ -10,39 +10,35 @@ import com.tencent.supersonic.common.util.DateUtils; import java.util.List; import java.util.Objects; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.StringUtils; public class DSLDateHelper { public static String getReferenceDate(Long modelId) { - String chatDetailDate = getChatDetailDate(modelId); - if (StringUtils.isNotBlank(chatDetailDate)) { - return chatDetailDate; - } - return DateUtils.getBeforeDate(0); - } - - private static String getChatDetailDate(Long modelId) { + String defaultDate = DateUtils.getBeforeDate(0); if (Objects.isNull(modelId)) { - return null; + return defaultDate; } ChatConfigFilter filter = new ChatConfigFilter(); filter.setModelId(modelId); List configResps = ContextUtils.getBean(ConfigService.class).search(filter, null); if (CollectionUtils.isEmpty(configResps)) { - return null; + return defaultDate; } ChatConfigResp chatConfigResp = configResps.get(0); if (Objects.isNull(chatConfigResp.getChatDetailConfig()) || Objects.isNull( chatConfigResp.getChatDetailConfig().getChatDefaultConfig())) { - return null; + return defaultDate; } ChatDefaultConfigReq chatDefaultConfig = chatConfigResp.getChatDetailConfig().getChatDefaultConfig(); Integer unit = chatDefaultConfig.getUnit(); String period = chatDefaultConfig.getPeriod(); if (Objects.nonNull(unit)) { + // If the unit is set to less than 0, then do not add relative date. + if (unit < 0) { + return null; + } DatePeriodEnum datePeriodEnum = DatePeriodEnum.get(period); if (Objects.isNull(datePeriodEnum)) { return DateUtils.getBeforeDate(unit); @@ -50,6 +46,7 @@ public class DSLDateHelper { return DateUtils.getBeforeDate(unit, datePeriodEnum); } } - return null; + return defaultDate; } + }