(improvement)(chat) Rename SimilarMetricProcessor, SimilarQueryProcessor to MetricRecommendProcessor, QueryRecommendProcessor (#513)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2023-12-15 14:56:44 +08:00
committed by GitHub
parent e6eac03ec6
commit 4dae84034e
13 changed files with 44 additions and 20 deletions

View File

@@ -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();

View File

@@ -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() {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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

View File

@@ -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=\

View File

@@ -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=\