mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement)(chat) rename QueryResponder to ExecuteResultProcessor and add ResultProcessor (#504)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
package com.tencent.supersonic.chat.processor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A ResultProcessor wraps things up before returning results to users.
|
||||||
|
*/
|
||||||
|
public interface ResultProcessor {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.chat.query;
|
package com.tencent.supersonic.chat.processor.execute;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.tencent.supersonic.chat.api.pojo.SchemaElement;
|
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.RetrieveQueryResult;
|
||||||
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
|
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
|
||||||
import com.tencent.supersonic.semantic.model.domain.listener.MetaEmbeddingListener;
|
import com.tencent.supersonic.semantic.model.domain.listener.MetaEmbeddingListener;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -20,19 +22,18 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SimilarMetricQueryResponder fills recommended metrics based on embedding similarity.
|
* 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 static final int METRIC_RECOMMEND_SIZE = 5;
|
||||||
|
|
||||||
private S2EmbeddingStore s2EmbeddingStore = ComponentFactory.getS2EmbeddingStore();
|
private S2EmbeddingStore s2EmbeddingStore = ComponentFactory.getS2EmbeddingStore();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void fillInfo(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) {
|
public void process(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) {
|
||||||
fillSimilarMetric(queryResult.getChatContext());
|
fillSimilarMetric(queryResult.getChatContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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.component.SemanticQuery;
|
||||||
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
||||||
@@ -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.Lists;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
@@ -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.Lists;
|
||||||
import com.tencent.supersonic.chat.api.component.SemanticQuery;
|
import com.tencent.supersonic.chat.api.component.SemanticQuery;
|
||||||
@@ -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.ChatContext;
|
||||||
import com.tencent.supersonic.chat.api.pojo.QueryContext;
|
import com.tencent.supersonic.chat.api.pojo.QueryContext;
|
||||||
import com.tencent.supersonic.chat.api.pojo.response.ParseResp;
|
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);
|
void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext);
|
||||||
|
|
||||||
@@ -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.component.SemanticQuery;
|
||||||
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
||||||
@@ -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.component.SemanticQuery;
|
||||||
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
||||||
@@ -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.component.SemanticQuery;
|
||||||
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
||||||
@@ -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.ChatContext;
|
||||||
import com.tencent.supersonic.chat.api.pojo.QueryContext;
|
import com.tencent.supersonic.chat.api.pojo.QueryContext;
|
||||||
@@ -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);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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.ChatQueryDO;
|
||||||
import com.tencent.supersonic.chat.persistence.dataobject.CostType;
|
import com.tencent.supersonic.chat.persistence.dataobject.CostType;
|
||||||
import com.tencent.supersonic.chat.persistence.dataobject.StatisticsDO;
|
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.QueryManager;
|
||||||
import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery;
|
import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery;
|
||||||
import com.tencent.supersonic.chat.query.rule.RuleSemanticQuery;
|
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.ChatService;
|
||||||
import com.tencent.supersonic.chat.service.QueryService;
|
import com.tencent.supersonic.chat.service.QueryService;
|
||||||
import com.tencent.supersonic.chat.service.SemanticService;
|
import com.tencent.supersonic.chat.service.SemanticService;
|
||||||
@@ -111,8 +111,8 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
|
|
||||||
private List<SchemaMapper> schemaMappers = ComponentFactory.getSchemaMappers();
|
private List<SchemaMapper> schemaMappers = ComponentFactory.getSchemaMappers();
|
||||||
private List<SemanticParser> semanticParsers = ComponentFactory.getSemanticParsers();
|
private List<SemanticParser> semanticParsers = ComponentFactory.getSemanticParsers();
|
||||||
private List<ParseResultProcessor> responseProcessors = ComponentFactory.getPostProcessors();
|
private List<ParseResultProcessor> parseProcessors = ComponentFactory.getParseProcessors();
|
||||||
private List<QueryResponder> executeResponders = ComponentFactory.getExecuteResponders();
|
private List<ExecuteResultProcessor> executeProcessors = ComponentFactory.getExecuteProcessors();
|
||||||
private List<SemanticCorrector> semanticCorrectors = ComponentFactory.getSemanticCorrectors();
|
private List<SemanticCorrector> semanticCorrectors = ComponentFactory.getSemanticCorrectors();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -156,7 +156,7 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 4. processor
|
// 4. processor
|
||||||
responseProcessors.forEach(processor -> {
|
parseProcessors.forEach(processor -> {
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
processor.process(parseResult, queryCtx, chatCtx);
|
processor.process(parseResult, queryCtx, chatCtx);
|
||||||
timeCostDOList.add(StatisticsDO.builder().cost((int) (System.currentTimeMillis() - startTime))
|
timeCostDOList.add(StatisticsDO.builder().cost((int) (System.currentTimeMillis() - startTime))
|
||||||
@@ -206,8 +206,8 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
}
|
}
|
||||||
chatCtx.setQueryText(queryReq.getQueryText());
|
chatCtx.setQueryText(queryReq.getQueryText());
|
||||||
chatCtx.setUser(queryReq.getUser().getName());
|
chatCtx.setUser(queryReq.getUser().getName());
|
||||||
for (QueryResponder executeResponder : executeResponders) {
|
for (ExecuteResultProcessor executeResultProcessor : executeProcessors) {
|
||||||
executeResponder.fillInfo(queryResult, parseInfo, queryReq);
|
executeResultProcessor.process(queryResult, parseInfo, queryReq);
|
||||||
}
|
}
|
||||||
chatService.updateQuery(queryReq.getQueryId(), queryResult, chatCtx);
|
chatService.updateQuery(queryReq.getQueryId(), queryResult, chatCtx);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -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.JavaLLMProxy;
|
||||||
import com.tencent.supersonic.chat.parser.LLMProxy;
|
import com.tencent.supersonic.chat.parser.LLMProxy;
|
||||||
import com.tencent.supersonic.chat.parser.sql.llm.ModelResolver;
|
import com.tencent.supersonic.chat.parser.sql.llm.ModelResolver;
|
||||||
import com.tencent.supersonic.chat.processor.ParseResultProcessor;
|
import com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor;
|
||||||
import com.tencent.supersonic.chat.query.QueryResponder;
|
import com.tencent.supersonic.chat.processor.parse.ParseResultProcessor;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.core.io.support.SpringFactoriesLoader;
|
import org.springframework.core.io.support.SpringFactoriesLoader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ComponentFactory {
|
public class ComponentFactory {
|
||||||
@@ -28,8 +28,8 @@ public class ComponentFactory {
|
|||||||
private static SemanticInterpreter semanticInterpreter;
|
private static SemanticInterpreter semanticInterpreter;
|
||||||
|
|
||||||
private static LLMProxy llmProxy;
|
private static LLMProxy llmProxy;
|
||||||
private static List<ParseResultProcessor> responseProcessors = new ArrayList<>();
|
private static List<ParseResultProcessor> parseProcessors = new ArrayList<>();
|
||||||
private static List<QueryResponder> executeResponders = new ArrayList<>();
|
private static List<ExecuteResultProcessor> executeProcessors = new ArrayList<>();
|
||||||
private static ModelResolver modelResolver;
|
private static ModelResolver modelResolver;
|
||||||
|
|
||||||
public static List<SchemaMapper> getSchemaMappers() {
|
public static List<SchemaMapper> getSchemaMappers() {
|
||||||
@@ -45,14 +45,14 @@ public class ComponentFactory {
|
|||||||
semanticCorrectors) : semanticCorrectors;
|
semanticCorrectors) : semanticCorrectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<ParseResultProcessor> getPostProcessors() {
|
public static List<ParseResultProcessor> getParseProcessors() {
|
||||||
return CollectionUtils.isEmpty(responseProcessors) ? init(ParseResultProcessor.class,
|
return CollectionUtils.isEmpty(parseProcessors) ? init(ParseResultProcessor.class,
|
||||||
responseProcessors) : responseProcessors;
|
parseProcessors) : parseProcessors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<QueryResponder> getExecuteResponders() {
|
public static List<ExecuteResultProcessor> getExecuteProcessors() {
|
||||||
return CollectionUtils.isEmpty(executeResponders)
|
return CollectionUtils.isEmpty(executeProcessors)
|
||||||
? init(QueryResponder.class, executeResponders) : executeResponders;
|
? init(ExecuteResultProcessor.class, executeProcessors) : executeProcessors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SemanticInterpreter getSemanticLayer() {
|
public static SemanticInterpreter getSemanticLayer() {
|
||||||
|
|||||||
@@ -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.SchemaElementType;
|
||||||
import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo;
|
import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo;
|
||||||
import com.tencent.supersonic.chat.api.pojo.SemanticSchema;
|
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.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@@ -39,5 +39,5 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\
|
|||||||
com.tencent.supersonic.chat.postprocessor.TimeCostPostProcessor, \
|
com.tencent.supersonic.chat.postprocessor.TimeCostPostProcessor, \
|
||||||
com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor
|
com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor
|
||||||
|
|
||||||
com.tencent.supersonic.chat.query.QueryResponder=\
|
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
||||||
com.tencent.supersonic.chat.query.SimilarMetricQueryResponder
|
com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor
|
||||||
@@ -20,14 +20,14 @@ com.tencent.supersonic.chat.api.component.SemanticCorrector=\
|
|||||||
com.tencent.supersonic.chat.corrector.HavingCorrector, \
|
com.tencent.supersonic.chat.corrector.HavingCorrector, \
|
||||||
com.tencent.supersonic.chat.corrector.FromCorrector
|
com.tencent.supersonic.chat.corrector.FromCorrector
|
||||||
|
|
||||||
com.tencent.supersonic.chat.processor.ParseResultProcessor=\
|
com.tencent.supersonic.chat.processor.parse.ParseResultProcessor=\
|
||||||
com.tencent.supersonic.chat.processor.MetricCheckProcessor, \
|
com.tencent.supersonic.chat.processor.parse.MetricCheckProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.ParseInfoProcessor, \
|
com.tencent.supersonic.chat.processor.parse.ParseInfoProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.QueryRankProcessor, \
|
com.tencent.supersonic.chat.processor.parse.QueryRankProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.EntityInfoProcessor, \
|
com.tencent.supersonic.chat.processor.parse.EntityInfoProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.SqlInfoProcessor, \
|
com.tencent.supersonic.chat.processor.parse.SqlInfoProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.TimeCostProcessor, \
|
com.tencent.supersonic.chat.processor.parse.TimeCostProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.RespBuildProcessor
|
com.tencent.supersonic.chat.processor.parse.RespBuildProcessor
|
||||||
|
|
||||||
com.tencent.supersonic.chat.api.component.SemanticInterpreter=\
|
com.tencent.supersonic.chat.api.component.SemanticInterpreter=\
|
||||||
com.tencent.supersonic.knowledge.semantic.LocalSemanticInterpreter
|
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.api.authentication.adaptor.UserAdaptor=\
|
||||||
com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor
|
com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor
|
||||||
|
|
||||||
com.tencent.supersonic.chat.query.QueryResponder=\
|
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
||||||
com.tencent.supersonic.chat.query.SimilarMetricQueryResponder
|
com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor
|
||||||
|
|
||||||
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
||||||
com.tencent.supersonic.common.util.embedding.InMemoryS2EmbeddingStore
|
com.tencent.supersonic.common.util.embedding.InMemoryS2EmbeddingStore
|
||||||
@@ -296,6 +296,7 @@ CREATE TABLE `s2_metric` (
|
|||||||
`alias` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
|
`alias` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||||
`tags` 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 '指标相关维度',
|
`relate_dimensions` varchar(500) DEFAULT NULL COMMENT '指标相关维度',
|
||||||
|
`ext` text DEFAULT NULL ,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='指标表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='指标表';
|
||||||
|
|
||||||
|
|||||||
@@ -130,6 +130,8 @@ CREATE TABLE `s2_collect`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
)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`
|
CREATE TABLE `s2_metric_query_default_config`
|
||||||
(
|
(
|
||||||
`id` bigint NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
`id` bigint NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\
|
|||||||
com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor
|
com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor
|
||||||
|
|
||||||
|
|
||||||
com.tencent.supersonic.chat.query.QueryResponder=\
|
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
||||||
com.tencent.supersonic.chat.query.SimilarMetricQueryResponder
|
com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor
|
||||||
|
|
||||||
|
|
||||||
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
||||||
|
|||||||
Reference in New Issue
Block a user