mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement)(chat) Rename SimilarMetricProcessor, SimilarQueryProcessor to MetricRecommendProcessor, QueryRecommendProcessor (#513)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -7,6 +7,9 @@ import com.tencent.supersonic.auth.api.authentication.request.UserReq;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UserAdaptor defines some interfaces for obtaining user and organization information
|
||||||
|
*/
|
||||||
public interface UserAdaptor {
|
public interface UserAdaptor {
|
||||||
|
|
||||||
List<String> getUserNames();
|
List<String> getUserNames();
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DefaultUserAdaptor provides a default method to obtain user and organization information
|
||||||
|
*/
|
||||||
public class DefaultUserAdaptor implements UserAdaptor {
|
public class DefaultUserAdaptor implements UserAdaptor {
|
||||||
|
|
||||||
private List<UserDO> getUserDOList() {
|
private List<UserDO> getUserDOList() {
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ import java.util.Set;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* A mapper that forms a cluster from connectable models
|
* ModelClusterMapper build a cluster from
|
||||||
|
* connectable data models based on model-rela configuration
|
||||||
|
* and generate SchemaModelClusterMapInfo
|
||||||
*/
|
*/
|
||||||
public class ModelClusterMapper implements SchemaMapper {
|
public class ModelClusterMapper implements SchemaMapper {
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import java.util.Set;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QueryTypeParser resolves query type as either METRIC or TAG, or OTHER.
|
* QueryTypeParser resolves query type as either METRIC or TAG, or ID.
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class QueryTypeParser implements SemanticParser {
|
public class QueryTypeParser implements SemanticParser {
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PluginParser defines the basic process and common methods for recalling plugins.
|
||||||
|
*/
|
||||||
public abstract class PluginParser implements SemanticParser {
|
public abstract class PluginParser implements SemanticParser {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,16 +13,20 @@ import com.tencent.supersonic.common.config.EmbeddingConfig;
|
|||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.common.util.embedding.Retrieval;
|
import com.tencent.supersonic.common.util.embedding.Retrieval;
|
||||||
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
|
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EmbeddingRecallParser is an implementation of a recall plugin based on Embedding
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class EmbeddingRecallParser extends PluginParser {
|
public class EmbeddingRecallParser extends PluginParser {
|
||||||
|
|
||||||
|
|||||||
@@ -13,16 +13,20 @@ import com.tencent.supersonic.chat.service.PluginService;
|
|||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.common.util.JsonUtil;
|
import com.tencent.supersonic.common.util.JsonUtil;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FunctionCallParser is an implementation of a recall plugin based on FunctionCall
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FunctionCallParser extends PluginParser {
|
public class FunctionCallParser extends PluginParser {
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ import java.util.Set;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DimensionRecommendProcessor obtains metric recommended dimensions
|
* DimensionRecommendProcessor recommend some dimensions
|
||||||
|
* related to metrics based on configuration
|
||||||
*/
|
*/
|
||||||
public class DimensionRecommendProcessor implements ExecuteResultProcessor {
|
public class DimensionRecommendProcessor implements ExecuteResultProcessor {
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ import java.util.Set;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SimilarMetricQueryResponder fills recommended metrics based on embedding similarity.
|
* MetricRecommendProcessor fills recommended metrics based on embedding similarity.
|
||||||
*/
|
*/
|
||||||
public class SimilarMetricProcessor implements ExecuteResultProcessor {
|
public class MetricRecommendProcessor implements ExecuteResultProcessor {
|
||||||
|
|
||||||
private static final int METRIC_RECOMMEND_SIZE = 5;
|
private static final int METRIC_RECOMMEND_SIZE = 5;
|
||||||
|
|
||||||
@@ -22,8 +22,11 @@ import java.util.Set;
|
|||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MetricRecommendProcessor fills recommended query based on embedding similarity.
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SimilarQueryProcessor implements ParseResultProcessor {
|
public class QueryRecommendProcessor implements ParseResultProcessor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) {
|
public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) {
|
||||||
@@ -40,4 +40,4 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\
|
|||||||
com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor
|
com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor
|
||||||
|
|
||||||
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
||||||
com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor
|
com.tencent.supersonic.chat.processor.execute.MetricRecommendProcessor
|
||||||
@@ -28,7 +28,7 @@ com.tencent.supersonic.chat.processor.parse.ParseResultProcessor=\
|
|||||||
com.tencent.supersonic.chat.processor.parse.SqlInfoProcessor, \
|
com.tencent.supersonic.chat.processor.parse.SqlInfoProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.parse.TimeCostProcessor, \
|
com.tencent.supersonic.chat.processor.parse.TimeCostProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.parse.RespBuildProcessor, \
|
com.tencent.supersonic.chat.processor.parse.RespBuildProcessor, \
|
||||||
com.tencent.supersonic.chat.processor.parse.SimilarQueryProcessor
|
com.tencent.supersonic.chat.processor.parse.QueryRecommendProcessor
|
||||||
|
|
||||||
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
|
||||||
@@ -43,7 +43,7 @@ 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.processor.execute.ExecuteResultProcessor=\
|
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
||||||
com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor,\
|
com.tencent.supersonic.chat.processor.execute.MetricRecommendProcessor,\
|
||||||
com.tencent.supersonic.chat.processor.execute.DimensionRecommendProcessor
|
com.tencent.supersonic.chat.processor.execute.DimensionRecommendProcessor
|
||||||
|
|
||||||
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\
|
|||||||
|
|
||||||
|
|
||||||
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
com.tencent.supersonic.chat.processor.execute.ExecuteResultProcessor=\
|
||||||
com.tencent.supersonic.chat.processor.execute.SimilarMetricProcessor
|
com.tencent.supersonic.chat.processor.execute.MetricRecommendProcessor
|
||||||
|
|
||||||
|
|
||||||
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
com.tencent.supersonic.common.util.embedding.S2EmbeddingStore=\
|
||||||
|
|||||||
Reference in New Issue
Block a user