From f5a064aaad3ebd9f59e0b09b4567e78086e61a06 Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Mon, 27 Nov 2023 17:51:54 +0800 Subject: [PATCH] [improvement](chat) add TAG to Element and Nature, fix MetricTagQuery queryMode (#429) --- .../supersonic/chat/api/pojo/ModelSchema.java | 3 +++ .../query/rule/metric/MetricTagQuery.java | 21 +++++++++---------- .../knowledge/utils/NatureHelper.java | 3 +++ .../common/pojo/enums/DictWordType.java | 2 ++ 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/ModelSchema.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/ModelSchema.java index bb74c269a..4719a7cdf 100644 --- a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/ModelSchema.java +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/ModelSchema.java @@ -41,6 +41,9 @@ public class ModelSchema { case VALUE: element = dimensionValues.stream().filter(e -> e.getId() == elementID).findFirst(); break; + case TAG: + element = tags.stream().filter(e -> e.getId() == elementID).findFirst(); + break; default: } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/rule/metric/MetricTagQuery.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/rule/metric/MetricTagQuery.java index 0f0c0457f..ff84baa36 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/rule/metric/MetricTagQuery.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/rule/metric/MetricTagQuery.java @@ -1,31 +1,30 @@ package com.tencent.supersonic.chat.query.rule.metric; +import static com.tencent.supersonic.chat.api.pojo.SchemaElementType.ENTITY; +import static com.tencent.supersonic.chat.api.pojo.SchemaElementType.ID; +import static com.tencent.supersonic.chat.query.rule.QueryMatchOption.OptionType.REQUIRED; +import static com.tencent.supersonic.chat.query.rule.QueryMatchOption.RequireNumberType.AT_LEAST; + import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; -import com.tencent.supersonic.common.pojo.enums.FilterType; -import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.Filter; +import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; +import com.tencent.supersonic.common.pojo.enums.FilterType; import com.tencent.supersonic.semantic.api.query.request.QueryMultiStructReq; import com.tencent.supersonic.semantic.api.query.request.QueryStructReq; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; - -import static com.tencent.supersonic.chat.api.pojo.SchemaElementType.ID; -import static com.tencent.supersonic.chat.api.pojo.SchemaElementType.ENTITY; -import static com.tencent.supersonic.chat.query.rule.QueryMatchOption.OptionType.REQUIRED; -import static com.tencent.supersonic.chat.query.rule.QueryMatchOption.RequireNumberType.AT_LEAST; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; @Slf4j @Component public class MetricTagQuery extends MetricSemanticQuery { - public static final String QUERY_MODE = "METRIC_ENTITY"; + public static final String QUERY_MODE = "METRIC_TAG"; public MetricTagQuery() { super(); diff --git a/chat/knowledge/src/main/java/com/tencent/supersonic/knowledge/utils/NatureHelper.java b/chat/knowledge/src/main/java/com/tencent/supersonic/knowledge/utils/NatureHelper.java index 02f946b39..3f7d12466 100644 --- a/chat/knowledge/src/main/java/com/tencent/supersonic/knowledge/utils/NatureHelper.java +++ b/chat/knowledge/src/main/java/com/tencent/supersonic/knowledge/utils/NatureHelper.java @@ -43,6 +43,9 @@ public class NatureHelper { case VALUE: result = SchemaElementType.VALUE; break; + case TAG: + result = SchemaElementType.TAG; + break; default: break; } diff --git a/common/src/main/java/com/tencent/supersonic/common/pojo/enums/DictWordType.java b/common/src/main/java/com/tencent/supersonic/common/pojo/enums/DictWordType.java index b21e2c72d..3f2968176 100644 --- a/common/src/main/java/com/tencent/supersonic/common/pojo/enums/DictWordType.java +++ b/common/src/main/java/com/tencent/supersonic/common/pojo/enums/DictWordType.java @@ -20,6 +20,8 @@ public enum DictWordType { NUMBER("m"), + TAG("tag"), + SUFFIX("suffix"); public static final String NATURE_SPILT = "_";