diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java index 0720e5284..aaaf60291 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2SQLParser.java @@ -88,7 +88,8 @@ public class NL2SQLParser implements ChatQueryParser { for (Long datasetId : requestedDatasets) { queryNLReq.setDataSetIds(Collections.singleton(datasetId)); ChatParseResp parseResp = new ChatParseResp(parseContext.getRequest().getQueryId()); - for (MapModeEnum mode : Lists.newArrayList(MapModeEnum.STRICT, MapModeEnum.MODERATE)) { + for (MapModeEnum mode : Lists.newArrayList(MapModeEnum.STRICT, + MapModeEnum.MODERATE)) { queryNLReq.setMapModeEnum(mode); doParse(queryNLReq, parseResp); } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMapper.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMapper.java index 5abd198f1..7d3a3e136 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMapper.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMapper.java @@ -27,7 +27,6 @@ public abstract class BaseMapper implements SchemaMapper { @Override public void map(ChatQueryContext chatQueryContext) { - String simpleName = this.getClass().getSimpleName(); long startTime = System.currentTimeMillis(); log.debug("before {},mapInfo:{}", simpleName, diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMapper.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMapper.java index d18950c48..eb5d1134e 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMapper.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMapper.java @@ -4,6 +4,7 @@ import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch; import com.tencent.supersonic.headless.api.pojo.SchemaElementType; +import com.tencent.supersonic.headless.api.pojo.enums.MapModeEnum; import com.tencent.supersonic.headless.chat.ChatQueryContext; import com.tencent.supersonic.headless.chat.knowledge.EmbeddingResult; import com.tencent.supersonic.headless.chat.knowledge.builder.BaseWordBuilder; @@ -14,13 +15,18 @@ import lombok.extern.slf4j.Slf4j; import java.util.List; import java.util.Objects; -/** A mapper that recognizes schema elements with vector embedding. */ +/** + * A mapper that recognizes schema elements with vector embedding. + */ @Slf4j public class EmbeddingMapper extends BaseMapper { @Override public void doMap(ChatQueryContext chatQueryContext) { // 1. query from embedding by queryText + if (MapModeEnum.STRICT.equals(chatQueryContext.getRequest().getMapModeEnum())) { + return; + } EmbeddingMatchStrategy matchStrategy = ContextUtils.getBean(EmbeddingMatchStrategy.class); List matchResults = getMatches(chatQueryContext, matchStrategy); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMatchStrategy.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMatchStrategy.java index ee313e193..1b73c5cc8 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMatchStrategy.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/EmbeddingMatchStrategy.java @@ -25,7 +25,6 @@ import java.util.stream.Collectors; import static com.tencent.supersonic.headless.chat.mapper.MapperConfig.EMBEDDING_MAPPER_NUMBER; import static com.tencent.supersonic.headless.chat.mapper.MapperConfig.EMBEDDING_MAPPER_ROUND_NUMBER; import static com.tencent.supersonic.headless.chat.mapper.MapperConfig.EMBEDDING_MAPPER_THRESHOLD; -import static com.tencent.supersonic.headless.chat.mapper.MapperConfig.EMBEDDING_MAPPER_THRESHOLD_MIN; /** * EmbeddingMatchStrategy uses vector database to perform similarity search against the embeddings @@ -64,12 +63,8 @@ public class EmbeddingMatchStrategy extends BatchMatchStrategy private List detectByQueryTextsSub(Set detectDataSetIds, List queryTextsSub, ChatQueryContext chatQueryContext) { Map> modelIdToDataSetIds = chatQueryContext.getModelIdToDataSetIds(); - double embeddingThreshold = + double threshold = Double.valueOf(mapperConfig.getParameterValue(EMBEDDING_MAPPER_THRESHOLD)); - double embeddingThresholdMin = - Double.valueOf(mapperConfig.getParameterValue(EMBEDDING_MAPPER_THRESHOLD_MIN)); - double threshold = getThreshold(embeddingThreshold, embeddingThresholdMin, - chatQueryContext.getRequest().getMapModeEnum()); // step1. build query params RetrieveQuery retrieveQuery = RetrieveQuery.builder().queryTextsList(queryTextsSub).build(); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapperConfig.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapperConfig.java index acf007bca..ab36c6c49 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapperConfig.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapperConfig.java @@ -54,10 +54,6 @@ public class MapperConfig extends ParameterConfig { new Parameter("s2.mapper.embedding.threshold", "0.98", "向量召回相似度阈值", "相似度小于该阈值的则舍弃", "number", "Mapper相关配置"); - public static final Parameter EMBEDDING_MAPPER_THRESHOLD_MIN = - new Parameter("s2.mapper.embedding.min.threshold", "0.9", "向量召回最小相似度阈值", - "向量召回相似度阈值在动态调整中的最低值", "number", "Mapper相关配置"); - public static final Parameter EMBEDDING_MAPPER_ROUND_NUMBER = new Parameter("s2.mapper.embedding.round.number", "10", "向量召回最小相似度阈值", "向量召回相似度阈值在动态调整中的最低值", "number", "Mapper相关配置");