From fda5a577d66f347478fd3612b7057fe087aa9cd2 Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Wed, 13 Dec 2023 22:16:42 +0800 Subject: [PATCH] (improvement)(chat) rename QueryResponder to ExecuteResultProcessor and add ResultProcessor (#504) Co-authored-by: jolunoluo --- .../chat/processor/ResultProcessor.java | 8 ++++++ .../execute/ExecuteResultProcessor.java | 15 ++++++++++ .../execute/SimilarMetricProcessor.java} | 9 +++--- .../{ => parse}/EntityInfoProcessor.java | 2 +- .../{ => parse}/MetricCheckProcessor.java | 2 +- .../{ => parse}/ParseInfoProcessor.java | 2 +- .../{ => parse}/ParseResultProcessor.java | 7 +++-- .../{ => parse}/QueryRankProcessor.java | 2 +- .../{ => parse}/RespBuildProcessor.java | 2 +- .../{ => parse}/SqlInfoProcessor.java | 2 +- .../{ => parse}/TimeCostProcessor.java | 2 +- .../supersonic/chat/query/QueryResponder.java | 14 ---------- .../chat/service/impl/QueryServiceImpl.java | 14 +++++----- .../chat/utils/ComponentFactory.java | 28 +++++++++---------- .../processor/MetricCheckProcessorTest.java | 1 + .../main/resources/META-INF/spring.factories | 4 +-- .../main/resources/META-INF/spring.factories | 20 ++++++------- .../src/main/resources/db/schema-mysql.sql | 1 + .../src/main/resources/db/sql-update.sql | 2 ++ .../test/resources/META-INF/spring.factories | 4 +-- 20 files changed, 78 insertions(+), 63 deletions(-) create mode 100644 chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResultProcessor.java create mode 100644 chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/ExecuteResultProcessor.java rename chat/core/src/main/java/com/tencent/supersonic/chat/{query/SimilarMetricQueryResponder.java => processor/execute/SimilarMetricProcessor.java} (93%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/EntityInfoProcessor.java (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/MetricCheckProcessor.java (99%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/ParseInfoProcessor.java (99%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/ParseResultProcessor.java (62%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/QueryRankProcessor.java (98%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/RespBuildProcessor.java (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/SqlInfoProcessor.java (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ => parse}/TimeCostProcessor.java (92%) delete mode 100644 chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResultProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResultProcessor.java new file mode 100644 index 000000000..a67843ca2 --- /dev/null +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResultProcessor.java @@ -0,0 +1,8 @@ +package com.tencent.supersonic.chat.processor; + +/** + * A ResultProcessor wraps things up before returning results to users. + */ +public interface ResultProcessor { + +} diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/ExecuteResultProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/ExecuteResultProcessor.java new file mode 100644 index 000000000..cc8c28fd8 --- /dev/null +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/ExecuteResultProcessor.java @@ -0,0 +1,15 @@ +package com.tencent.supersonic.chat.processor.execute; + +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.processor.ResultProcessor; + +/** + * A ExecuteResultProcessor wraps things up before returning results to users in execute stage. + */ +public interface ExecuteResultProcessor extends ResultProcessor { + + void process(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq); + +} \ No newline at end of file diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/SimilarMetricQueryResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/SimilarMetricProcessor.java similarity index 93% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/SimilarMetricQueryResponder.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/SimilarMetricProcessor.java index 31bee85a3..5f593231d 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/SimilarMetricQueryResponder.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/execute/SimilarMetricProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.query; +package com.tencent.supersonic.chat.processor.execute; import com.alibaba.fastjson.JSONObject; import com.tencent.supersonic.chat.api.pojo.SchemaElement; @@ -13,6 +13,8 @@ import com.tencent.supersonic.common.util.embedding.RetrieveQuery; import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult; import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore; import com.tencent.supersonic.semantic.model.domain.listener.MetaEmbeddingListener; +import org.springframework.util.CollectionUtils; + import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -20,19 +22,18 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import org.springframework.util.CollectionUtils; /** * SimilarMetricQueryResponder fills recommended metrics based on embedding similarity. */ -public class SimilarMetricQueryResponder implements QueryResponder { +public class SimilarMetricProcessor implements ExecuteResultProcessor { private static final int METRIC_RECOMMEND_SIZE = 5; private S2EmbeddingStore s2EmbeddingStore = ComponentFactory.getS2EmbeddingStore(); @Override - public void fillInfo(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { + public void process(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { fillSimilarMetric(queryResult.getChatContext()); } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/EntityInfoProcessor.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/EntityInfoProcessor.java index 1d1b47d42..b1f27184d 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/EntityInfoProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.ChatContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/MetricCheckProcessor.java similarity index 99% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/MetricCheckProcessor.java index 0449055f8..231ffaaf3 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/MetricCheckProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.google.common.collect.Lists; import com.google.common.collect.Sets; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/ParseInfoProcessor.java similarity index 99% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/ParseInfoProcessor.java index 3945f0f83..fd193ed35 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/ParseInfoProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.google.common.collect.Lists; import com.tencent.supersonic.chat.api.component.SemanticQuery; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseResultProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/ParseResultProcessor.java similarity index 62% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseResultProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/ParseResultProcessor.java index 6b8c55cac..c83b9d579 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseResultProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/ParseResultProcessor.java @@ -1,12 +1,13 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.tencent.supersonic.chat.api.pojo.ChatContext; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.api.pojo.response.ParseResp; +import com.tencent.supersonic.chat.processor.ResultProcessor; /** - * A ParseResultProcessor wraps things up before returning results to users. + * A ParseResultProcessor wraps things up before returning results to users in parse stage. */ -public interface ParseResultProcessor { +public interface ParseResultProcessor extends ResultProcessor { void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/QueryRankProcessor.java similarity index 98% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/QueryRankProcessor.java index 2edc53ae1..92b81fe11 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/QueryRankProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.ChatContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/RespBuildProcessor.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/RespBuildProcessor.java index b5c04cce4..88225aa69 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/RespBuildProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.ChatContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/SqlInfoProcessor.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/SqlInfoProcessor.java index 6ea5ff2e1..703dc56d7 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/SqlInfoProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.ChatContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/TimeCostProcessor.java similarity index 92% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/TimeCostProcessor.java index 61f457b05..51a17978d 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/parse/TimeCostProcessor.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.processor; +package com.tencent.supersonic.chat.processor.parse; import com.tencent.supersonic.chat.api.pojo.ChatContext; import com.tencent.supersonic.chat.api.pojo.QueryContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java deleted file mode 100644 index 0c89726ff..000000000 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.tencent.supersonic.chat.query; - -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; - -/** - * A query responder fill some auxiliary information into query results. - */ -public interface QueryResponder { - - void fillInfo(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq); - -} \ No newline at end of file diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java index 91967ae3f..2f6cabc43 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java @@ -28,11 +28,11 @@ import com.tencent.supersonic.chat.persistence.dataobject.ChatParseDO; import com.tencent.supersonic.chat.persistence.dataobject.ChatQueryDO; import com.tencent.supersonic.chat.persistence.dataobject.CostType; import com.tencent.supersonic.chat.persistence.dataobject.StatisticsDO; -import com.tencent.supersonic.chat.processor.ParseResultProcessor; +import com.tencent.supersonic.chat.processor.parse.ParseResultProcessor; import com.tencent.supersonic.chat.query.QueryManager; import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery; import com.tencent.supersonic.chat.query.rule.RuleSemanticQuery; -import com.tencent.supersonic.chat.query.QueryResponder; +import com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor; import com.tencent.supersonic.chat.service.ChatService; import com.tencent.supersonic.chat.service.QueryService; import com.tencent.supersonic.chat.service.SemanticService; @@ -111,8 +111,8 @@ public class QueryServiceImpl implements QueryService { private List schemaMappers = ComponentFactory.getSchemaMappers(); private List semanticParsers = ComponentFactory.getSemanticParsers(); - private List responseProcessors = ComponentFactory.getPostProcessors(); - private List executeResponders = ComponentFactory.getExecuteResponders(); + private List parseProcessors = ComponentFactory.getParseProcessors(); + private List executeProcessors = ComponentFactory.getExecuteProcessors(); private List semanticCorrectors = ComponentFactory.getSemanticCorrectors(); @Override @@ -156,7 +156,7 @@ public class QueryServiceImpl implements QueryService { } // 4. processor - responseProcessors.forEach(processor -> { + parseProcessors.forEach(processor -> { long startTime = System.currentTimeMillis(); processor.process(parseResult, queryCtx, chatCtx); timeCostDOList.add(StatisticsDO.builder().cost((int) (System.currentTimeMillis() - startTime)) @@ -206,8 +206,8 @@ public class QueryServiceImpl implements QueryService { } chatCtx.setQueryText(queryReq.getQueryText()); chatCtx.setUser(queryReq.getUser().getName()); - for (QueryResponder executeResponder : executeResponders) { - executeResponder.fillInfo(queryResult, parseInfo, queryReq); + for (ExecuteResultProcessor executeResultProcessor : executeProcessors) { + executeResultProcessor.process(queryResult, parseInfo, queryReq); } chatService.updateQuery(queryReq.getQueryId(), queryResult, chatCtx); } else { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java index f9c8b454f..bd6b5f3d0 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java @@ -7,17 +7,17 @@ import com.tencent.supersonic.chat.api.component.SemanticParser; import com.tencent.supersonic.chat.parser.JavaLLMProxy; import com.tencent.supersonic.chat.parser.LLMProxy; import com.tencent.supersonic.chat.parser.sql.llm.ModelResolver; -import com.tencent.supersonic.chat.processor.ParseResultProcessor; -import com.tencent.supersonic.chat.query.QueryResponder; +import com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor; +import com.tencent.supersonic.chat.processor.parse.ParseResultProcessor; import com.tencent.supersonic.common.util.ContextUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.core.io.support.SpringFactoriesLoader; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; @Slf4j public class ComponentFactory { @@ -28,8 +28,8 @@ public class ComponentFactory { private static SemanticInterpreter semanticInterpreter; private static LLMProxy llmProxy; - private static List responseProcessors = new ArrayList<>(); - private static List executeResponders = new ArrayList<>(); + private static List parseProcessors = new ArrayList<>(); + private static List executeProcessors = new ArrayList<>(); private static ModelResolver modelResolver; public static List getSchemaMappers() { @@ -45,14 +45,14 @@ public class ComponentFactory { semanticCorrectors) : semanticCorrectors; } - public static List getPostProcessors() { - return CollectionUtils.isEmpty(responseProcessors) ? init(ParseResultProcessor.class, - responseProcessors) : responseProcessors; + public static List getParseProcessors() { + return CollectionUtils.isEmpty(parseProcessors) ? init(ParseResultProcessor.class, + parseProcessors) : parseProcessors; } - public static List getExecuteResponders() { - return CollectionUtils.isEmpty(executeResponders) - ? init(QueryResponder.class, executeResponders) : executeResponders; + public static List getExecuteProcessors() { + return CollectionUtils.isEmpty(executeProcessors) + ? init(ExecuteResultProcessor.class, executeProcessors) : executeProcessors; } public static SemanticInterpreter getSemanticLayer() { diff --git a/chat/core/src/test/java/com/tencent/supersonic/chat/processor/MetricCheckProcessorTest.java b/chat/core/src/test/java/com/tencent/supersonic/chat/processor/MetricCheckProcessorTest.java index d748a4285..5e51d8c2b 100644 --- a/chat/core/src/test/java/com/tencent/supersonic/chat/processor/MetricCheckProcessorTest.java +++ b/chat/core/src/test/java/com/tencent/supersonic/chat/processor/MetricCheckProcessorTest.java @@ -8,6 +8,7 @@ import com.tencent.supersonic.chat.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.SchemaElementType; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.SemanticSchema; +import com.tencent.supersonic.chat.processor.parse.MetricCheckProcessor; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/launchers/chat/src/main/resources/META-INF/spring.factories b/launchers/chat/src/main/resources/META-INF/spring.factories index 027fdc8ef..5f535b7e9 100644 --- a/launchers/chat/src/main/resources/META-INF/spring.factories +++ b/launchers/chat/src/main/resources/META-INF/spring.factories @@ -39,5 +39,5 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\ com.tencent.supersonic.chat.postprocessor.TimeCostPostProcessor, \ com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor -com.tencent.supersonic.chat.query.QueryResponder=\ - com.tencent.supersonic.chat.query.SimilarMetricQueryResponder \ No newline at end of file +com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\ + com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/META-INF/spring.factories b/launchers/standalone/src/main/resources/META-INF/spring.factories index 39acfeddd..63cffdc14 100644 --- a/launchers/standalone/src/main/resources/META-INF/spring.factories +++ b/launchers/standalone/src/main/resources/META-INF/spring.factories @@ -20,14 +20,14 @@ com.tencent.supersonic.chat.api.component.SemanticCorrector=\ com.tencent.supersonic.chat.corrector.HavingCorrector, \ com.tencent.supersonic.chat.corrector.FromCorrector -com.tencent.supersonic.chat.processor.ParseResultProcessor=\ - com.tencent.supersonic.chat.processor.MetricCheckProcessor, \ - com.tencent.supersonic.chat.processor.ParseInfoProcessor, \ - com.tencent.supersonic.chat.processor.QueryRankProcessor, \ - com.tencent.supersonic.chat.processor.EntityInfoProcessor, \ - com.tencent.supersonic.chat.processor.SqlInfoProcessor, \ - com.tencent.supersonic.chat.processor.TimeCostProcessor, \ - com.tencent.supersonic.chat.processor.RespBuildProcessor +com.tencent.supersonic.chat.processor.parse.ParseResultProcessor=\ + com.tencent.supersonic.chat.processor.parse.MetricCheckProcessor, \ + com.tencent.supersonic.chat.processor.parse.ParseInfoProcessor, \ + com.tencent.supersonic.chat.processor.parse.QueryRankProcessor, \ + com.tencent.supersonic.chat.processor.parse.EntityInfoProcessor, \ + com.tencent.supersonic.chat.processor.parse.SqlInfoProcessor, \ + com.tencent.supersonic.chat.processor.parse.TimeCostProcessor, \ + com.tencent.supersonic.chat.processor.parse.RespBuildProcessor com.tencent.supersonic.chat.api.component.SemanticInterpreter=\ com.tencent.supersonic.knowledge.semantic.LocalSemanticInterpreter @@ -41,8 +41,8 @@ com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor -com.tencent.supersonic.chat.query.QueryResponder=\ - com.tencent.supersonic.chat.query.SimilarMetricQueryResponder +com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\ + com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\ com.tencent.supersonic.common.util.embedding.InMemoryS2EmbeddingStore \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/db/schema-mysql.sql b/launchers/standalone/src/main/resources/db/schema-mysql.sql index 4734a7a44..16b42cfe0 100644 --- a/launchers/standalone/src/main/resources/db/schema-mysql.sql +++ b/launchers/standalone/src/main/resources/db/schema-mysql.sql @@ -296,6 +296,7 @@ CREATE TABLE `s2_metric` ( `alias` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `tags` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `relate_dimensions` varchar(500) DEFAULT NULL COMMENT '指标相关维度', + `ext` text DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='指标表'; diff --git a/launchers/standalone/src/main/resources/db/sql-update.sql b/launchers/standalone/src/main/resources/db/sql-update.sql index 61d06443c..94d20ad97 100644 --- a/launchers/standalone/src/main/resources/db/sql-update.sql +++ b/launchers/standalone/src/main/resources/db/sql-update.sql @@ -130,6 +130,8 @@ CREATE TABLE `s2_collect` PRIMARY KEY (`id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +alter table s2_metric add column `ext` text DEFAULT NULL; + CREATE TABLE `s2_metric_query_default_config` ( `id` bigint NOT NULL PRIMARY KEY AUTO_INCREMENT, diff --git a/launchers/standalone/src/test/resources/META-INF/spring.factories b/launchers/standalone/src/test/resources/META-INF/spring.factories index 6889a9a6a..5548aed41 100644 --- a/launchers/standalone/src/test/resources/META-INF/spring.factories +++ b/launchers/standalone/src/test/resources/META-INF/spring.factories @@ -41,8 +41,8 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\ com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor -com.tencent.supersonic.chat.query.QueryResponder=\ - com.tencent.supersonic.chat.query.SimilarMetricQueryResponder +com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\ + com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\