diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/PlainTextParser.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/PlainTextParser.java index 154936087..ff13e30ce 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/PlainTextParser.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/PlainTextParser.java @@ -14,6 +14,7 @@ public class PlainTextParser implements ChatQueryParser { SemanticParseInfo parseInfo = new SemanticParseInfo(); parseInfo.setQueryMode("PLAIN_TEXT"); + parseInfo.setId(1); parseContext.getResponse().getSelectedParses().add(parseInfo); parseContext.getResponse().setState(ParseResp.ParseState.COMPLETED); } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java index be5ec57fb..e29652aea 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java @@ -57,9 +57,11 @@ public abstract class PluginRecognizer { ChatLayerService chatLayerService = ContextUtils.getBean(ChatLayerService.class); QueryNLReq queryNLReq = QueryReqConverter.buildQueryNLReq(parseContext); SchemaMapInfo schemaMapInfo = chatLayerService.map(queryNLReq).getMapInfo(); + int parseId = 1; for (Long dataSetId : dataSetIds) { SemanticParseInfo semanticParseInfo = buildSemanticParseInfo(dataSetId, plugin, parseContext, schemaMapInfo, pluginRecallResult.getDistance()); + semanticParseInfo.setId(parseId++); semanticParseInfo.setQueryMode(plugin.getType()); semanticParseInfo.setScore(pluginRecallResult.getScore()); parseResp.getSelectedParses().add(semanticParseInfo); 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 799f6ba76..68ae74c1b 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 @@ -19,36 +19,38 @@ public class ParseInfoFormatProcessor implements ParseResultProcessor { @Override public void process(ParseContext parseContext) { parseContext.getResponse().getSelectedParses().forEach(p -> { - if (!PluginQueryManager.isPluginQuery(p.getQueryMode())) { - formatNL2SQLParseInfo(p); + if (PluginQueryManager.isPluginQuery(p.getQueryMode()) + || "PLAIN_TEXT".equals(p.getQueryMode())) { + return; } + + formatNL2SQLParseInfo(p); }); } private static void formatNL2SQLParseInfo(SemanticParseInfo parseInfo) { StringBuilder textBuilder = new StringBuilder(); - textBuilder.append("数据集: ").append(parseInfo.getDataSet().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)); + 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)); } 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(" 筛选条件: "); + textBuilder.append(" **筛选条件:** "); } for (QueryFilter queryFilter : queryFilters) { textBuilder.append(queryFilter.getName()).append(" ")