diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/PluginParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/PluginParser.java index 9bc940d52..35e935cde 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/PluginParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/PluginParser.java @@ -20,11 +20,11 @@ import com.tencent.supersonic.chat.core.query.plugin.PluginSemanticQuery; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.ModelCluster; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; +import org.springframework.util.CollectionUtils; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import org.springframework.util.CollectionUtils; /** @@ -63,8 +63,7 @@ public abstract class PluginParser implements SemanticParser { for (Long modelId : modelIds) { PluginSemanticQuery pluginQuery = QueryManager.createPluginQuery(plugin.getType()); SemanticParseInfo semanticParseInfo = buildSemanticParseInfo(modelId, plugin, - queryContext.getQueryFilters(), queryContext.getModelClusterMapInfo().getMatchedElements(modelId), - pluginRecallResult.getDistance()); + queryContext, pluginRecallResult.getDistance()); semanticParseInfo.setQueryMode(pluginQuery.getQueryMode()); semanticParseInfo.setScore(pluginRecallResult.getScore()); pluginQuery.setParseInfo(semanticParseInfo); @@ -76,8 +75,11 @@ public abstract class PluginParser implements SemanticParser { return PluginManager.getPluginAgentCanSupport(queryContext); } - protected SemanticParseInfo buildSemanticParseInfo(Long modelId, Plugin plugin, QueryFilters queryFilters, - List schemaElementMatches, double distance) { + protected SemanticParseInfo buildSemanticParseInfo(Long modelId, Plugin plugin, + QueryContext queryContext, double distance) { + List schemaElementMatches = + queryContext.getModelClusterMapInfo().getMatchedElements(modelId); + QueryFilters queryFilters = queryContext.getQueryFilters(); if (modelId == null && !CollectionUtils.isEmpty(plugin.getModelList())) { modelId = plugin.getModelList().get(0); } @@ -92,6 +94,7 @@ public abstract class PluginParser implements SemanticParser { pluginParseResult.setPlugin(plugin); pluginParseResult.setQueryFilters(queryFilters); pluginParseResult.setDistance(distance); + pluginParseResult.setQueryText(queryContext.getQueryText()); properties.put(Constants.CONTEXT, pluginParseResult); properties.put("type", "plugin"); properties.put("name", plugin.getName()); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java b/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java index 66e014a66..81bc467c8 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java @@ -9,4 +9,5 @@ public class PluginParseResult { private Plugin plugin; private QueryFilters queryFilters; private double distance; + private String queryText; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java index 4a1f6aa1c..5edf4fc4a 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java @@ -334,7 +334,7 @@ public class DimensionServiceImpl implements DimensionService { .collect(Collectors.toMap(DimensionResp::getName, a -> a, (k1, k2) -> k1)); for (DimensionReq dimensionReq : dimensionReqs) { if (NameCheckUtils.containsSpecialCharacters(dimensionReq.getName())) { - throw new InvalidArgumentException("名称包含特殊字符, 请修改"); + throw new InvalidArgumentException("名称包含特殊字符, 请修改: " + dimensionReq.getName()); } if (bizNameMap.containsKey(dimensionReq.getBizName())) { DimensionResp dimensionResp = bizNameMap.get(dimensionReq.getBizName());