[improvement][chat]Optimize format of parse text info.

This commit is contained in:
jerryjzhang
2024-10-30 00:32:14 +08:00
parent 53ddc67262
commit 29489b4669

View File

@@ -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<SchemaElement> metric = parseInfo.getMetrics().stream().findFirst();
metric.ifPresent(schemaElement -> textBuilder.append("**指标:** ")
.append(schemaElement.getName()).append(" "));
textBuilder.append("数据集: ").append(parseInfo.getDataSet().getName()).append(" ");
List<String> metricNames = parseInfo.getMetrics().stream().map(SchemaElement::getName)
.filter(Objects::nonNull).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(metricNames)) {
textBuilder.append(" 指标: ").append(String.join(",", metricNames));
}
List<String> 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<QueryFilter> 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(" ");
}