diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/ParseInfoFormatProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/ParseInfoFormatProcessor.java index 238275d44..799f6ba76 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/ParseInfoFormatProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/ParseInfoFormatProcessor.java @@ -9,7 +9,6 @@ import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -28,26 +27,31 @@ public class ParseInfoFormatProcessor implements ParseResultProcessor { private static void formatNL2SQLParseInfo(SemanticParseInfo parseInfo) { StringBuilder textBuilder = new StringBuilder(); - textBuilder.append("**数据集:** ").append(parseInfo.getDataSet().getName()).append(" "); - Optional metric = parseInfo.getMetrics().stream().findFirst(); - metric.ifPresent(schemaElement -> textBuilder.append("**指标:** ") - .append(schemaElement.getName()).append(" ")); + textBuilder.append("数据集: ").append(parseInfo.getDataSet().getName()).append(" "); + List metricNames = parseInfo.getMetrics().stream().map(SchemaElement::getName) + .filter(Objects::nonNull).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(metricNames)) { + textBuilder.append(" 指标: ").append(String.join(",", metricNames)); + } List dimensionNames = parseInfo.getDimensions().stream().map(SchemaElement::getName) .filter(Objects::nonNull).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(dimensionNames)) { - textBuilder.append("**维度:** ").append(String.join(",", dimensionNames)); + textBuilder.append(" 维度: ").append(String.join(",", dimensionNames)); } - textBuilder.append("\n\n**筛选条件:** \n"); if (parseInfo.getDateInfo() != null) { - textBuilder.append("**数据时间:** ").append(parseInfo.getDateInfo().getStartDate()) + textBuilder.append(" 数据时间: ").append(parseInfo.getDateInfo().getStartDate()) .append("~").append(parseInfo.getDateInfo().getEndDate()).append(" "); } + if (!CollectionUtils.isEmpty(parseInfo.getDimensionFilters()) || CollectionUtils.isEmpty(parseInfo.getMetricFilters())) { Set queryFilters = parseInfo.getDimensionFilters(); queryFilters.addAll(parseInfo.getMetricFilters()); + if (!queryFilters.isEmpty()) { + textBuilder.append(" 筛选条件: "); + } for (QueryFilter queryFilter : queryFilters) { - textBuilder.append("**").append(queryFilter.getName()).append("**").append(" ") + textBuilder.append(queryFilter.getName()).append(" ") .append(queryFilter.getOperator().getValue()).append(" ") .append(queryFilter.getValue()).append(" "); }