From d6681ead60c5d9a3f56b1ad08809c8d237bd7d8c Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Wed, 8 Nov 2023 11:28:40 +0800 Subject: [PATCH] (improvement) (chat) (#336) optimize the preconditions for similar metrics recall Co-authored-by: jolunoluo --- .../responder/execute/SimilarMetricExecuteResponder.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/SimilarMetricExecuteResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/SimilarMetricExecuteResponder.java index aa9b2249a..2e75d9487 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/SimilarMetricExecuteResponder.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/SimilarMetricExecuteResponder.java @@ -6,7 +6,6 @@ import com.tencent.supersonic.chat.api.pojo.SchemaElementType; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.ExecuteQueryReq; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; -import com.tencent.supersonic.chat.query.QueryManager; import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.common.util.embedding.EmbeddingUtils; import com.tencent.supersonic.common.util.embedding.Retrieval; @@ -24,6 +23,7 @@ import java.util.stream.Collectors; public class SimilarMetricExecuteResponder implements ExecuteResponder { + private static final int METRIC_RECOMMEND_SIZE = 5; @Override public void fillResponse(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { @@ -31,8 +31,7 @@ public class SimilarMetricExecuteResponder implements ExecuteResponder { } private void fillSimilarMetric(SemanticParseInfo parseInfo) { - if (!QueryManager.isMetricQuery(parseInfo.getQueryMode()) - || CollectionUtils.isEmpty(parseInfo.getMetrics())) { + if (CollectionUtils.isEmpty(parseInfo.getMetrics()) || parseInfo.getMetrics().size() >= METRIC_RECOMMEND_SIZE) { return; } List metricNames = Collections.singletonList(parseInfo.getMetrics().iterator().next().getName()); @@ -43,7 +42,7 @@ public class SimilarMetricExecuteResponder implements ExecuteResponder { .filterCondition(filterCondition).queryEmbeddings(null).build(); EmbeddingUtils embeddingUtils = ContextUtils.getBean(EmbeddingUtils.class); List retrieveQueryResults = embeddingUtils.retrieveQuery( - MetaEmbeddingListener.COLLECTION_NAME, retrieveQuery, 5); + MetaEmbeddingListener.COLLECTION_NAME, retrieveQuery, METRIC_RECOMMEND_SIZE); if (CollectionUtils.isEmpty(retrieveQueryResults)) { return; }