diff --git a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResp.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResp.java index a67274f60..2fe2cf67a 100644 --- a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResp.java +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResp.java @@ -2,7 +2,6 @@ package com.tencent.supersonic.chat.api.pojo.response; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.response.ParseTimeCostResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; import lombok.Data; import java.util.Date; import java.util.List; diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/QueryResult.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResult.java similarity index 89% rename from headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/QueryResult.java rename to chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResult.java index 06410978b..345f96035 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/QueryResult.java +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/response/QueryResult.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.headless.api.pojo.response; +package com.tencent.supersonic.chat.api.pojo.response; import com.tencent.supersonic.common.pojo.QueryAuthorization; import com.tencent.supersonic.common.pojo.QueryColumn; @@ -6,6 +6,7 @@ import com.tencent.supersonic.headless.api.pojo.AggregateInfo; import com.tencent.supersonic.headless.api.pojo.EntityInfo; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; +import com.tencent.supersonic.headless.api.pojo.response.QueryState; import lombok.Data; import java.util.List; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/ChatQueryExecutor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/ChatQueryExecutor.java index b213b30f0..e478d9c35 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/ChatQueryExecutor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/ChatQueryExecutor.java @@ -1,7 +1,7 @@ package com.tencent.supersonic.chat.server.executor; import com.tencent.supersonic.chat.server.pojo.ExecuteContext; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; public interface ChatQueryExecutor { diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PlainTextExecutor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PlainTextExecutor.java index bda72a9cd..63c03194a 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PlainTextExecutor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PlainTextExecutor.java @@ -8,7 +8,7 @@ import com.tencent.supersonic.chat.server.pojo.ExecuteContext; import com.tencent.supersonic.chat.server.service.AgentService; import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.QueryState; import dev.langchain4j.data.message.AiMessage; import dev.langchain4j.model.chat.ChatLanguageModel; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PluginExecutor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PluginExecutor.java index 1c8d9491c..745c60cf1 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PluginExecutor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/PluginExecutor.java @@ -4,7 +4,7 @@ import com.tencent.supersonic.chat.server.plugin.PluginQueryManager; import com.tencent.supersonic.chat.server.plugin.build.PluginSemanticQuery; import com.tencent.supersonic.chat.server.pojo.ExecuteContext; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; public class PluginExecutor implements ChatQueryExecutor { diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/SqlExecutor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/SqlExecutor.java index c7d38123b..93c63a0ab 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/SqlExecutor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/executor/SqlExecutor.java @@ -5,13 +5,12 @@ import com.tencent.supersonic.chat.server.persistence.dataobject.ChatMemoryDO; import com.tencent.supersonic.chat.server.pojo.ExecuteContext; import com.tencent.supersonic.chat.server.service.MemoryService; import com.tencent.supersonic.chat.server.util.ResultFormatter; -import com.tencent.supersonic.common.pojo.QueryColumn; import com.tencent.supersonic.common.pojo.Text2SQLExemplar; import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.QueryState; import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; import com.tencent.supersonic.chat.server.pojo.ChatContext; @@ -21,10 +20,7 @@ import com.tencent.supersonic.chat.server.service.ChatContextService; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; import java.util.Date; -import java.util.List; -import java.util.Map; import java.util.Objects; public class SqlExecutor implements ChatQueryExecutor { @@ -80,27 +76,24 @@ public class SqlExecutor implements ChatQueryExecutor { .build(); sqlReq.setSqlInfo(parseInfo.getSqlInfo()); sqlReq.setDataSetId(parseInfo.getDataSetId()); + long startTime = System.currentTimeMillis(); SemanticQueryResp queryResp = semanticLayer.queryByReq(sqlReq, executeContext.getUser()); QueryResult queryResult = new QueryResult(); queryResult.setChatContext(parseInfo); queryResult.setQueryMode(parseInfo.getQueryMode()); + queryResult.setQueryTimeCost(System.currentTimeMillis() - startTime); if (queryResp != null) { queryResult.setQueryAuthorization(queryResp.getQueryAuthorization()); - List> resultList = queryResp == null ? new ArrayList<>() - : queryResp.getResultList(); - List columns = queryResp == null ? new ArrayList<>() : queryResp.getColumns(); - queryResult.setQueryTimeCost(System.currentTimeMillis() - startTime); queryResult.setQuerySql(queryResp.getSql()); - queryResult.setQueryResults(resultList); - queryResult.setQueryColumns(columns); + queryResult.setQueryResults(queryResp.getResultList()); + queryResult.setQueryColumns(queryResp.getColumns()); queryResult.setQueryState(QueryState.SUCCESS); chatCtx.setParseInfo(parseInfo); chatContextService.updateContext(chatCtx); } else { queryResult.setQueryState(QueryState.INVALID); - queryResult.setQueryMode(parseInfo.getQueryMode()); } return queryResult; } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java index 6707b159f..108ae51e1 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/ChatQueryRepositoryImpl.java @@ -20,7 +20,7 @@ import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResp; import com.tencent.supersonic.headless.api.pojo.response.ParseTimeCostResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java index 6934adc62..f9e5ff98e 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java @@ -7,7 +7,7 @@ import com.tencent.supersonic.headless.api.pojo.SchemaElementType; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.request.QueryFilter; import com.tencent.supersonic.headless.api.pojo.request.QueryFilters; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import lombok.extern.slf4j.Slf4j; import org.springframework.util.CollectionUtils; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageQuery.java index 04e3bb346..90f2fca01 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageQuery.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageQuery.java @@ -7,7 +7,7 @@ import com.tencent.supersonic.chat.server.plugin.build.PluginSemanticQuery; import com.tencent.supersonic.chat.server.plugin.build.WebBase; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.util.JsonUtil; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.QueryState; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java index 127416eba..c1fde5203 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java @@ -11,7 +11,7 @@ import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.QueryColumn; import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.common.util.JsonUtil; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.QueryState; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpEntity; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java index 92191bcc1..e52f9227a 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/recognize/PluginRecognizer.java @@ -73,7 +73,7 @@ public abstract class PluginRecognizer { SemanticParseInfo semanticParseInfo = new SemanticParseInfo(); semanticParseInfo.setElementMatches(schemaElementMatches); SchemaElement schemaElement = new SchemaElement(); - schemaElement.setDataSet(dataSetId); + schemaElement.setDataSetId(dataSetId); semanticParseInfo.setDataSet(schemaElement); Map properties = new HashMap<>(); PluginParseResult pluginParseResult = new PluginParseResult(); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java index f1e182f01..3792da48b 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java @@ -8,7 +8,7 @@ import com.tencent.supersonic.headless.api.pojo.DataSetSchema; import com.tencent.supersonic.headless.api.pojo.RelatedSchemaElement; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService; import org.springframework.util.CollectionUtils; @@ -35,7 +35,7 @@ public class DimensionRecommendProcessor implements ExecuteResultProcessor { return; } SchemaElement element = semanticParseInfo.getMetrics().iterator().next(); - List dimensionRecommended = getDimensions(element.getId(), element.getDataSet()); + List dimensionRecommended = getDimensions(element.getId(), element.getDataSetId()); queryResult.setRecommendedDimensions(dimensionRecommended); } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/ExecuteResultProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/ExecuteResultProcessor.java index cc2b32ed2..23541320e 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/ExecuteResultProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/ExecuteResultProcessor.java @@ -2,7 +2,7 @@ package com.tencent.supersonic.chat.server.processor.execute; import com.tencent.supersonic.chat.server.pojo.ExecuteContext; import com.tencent.supersonic.chat.server.processor.ResultProcessor; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; /** * A ExecuteResultProcessor wraps things up before returning diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java index e34ed137c..e2fc01cea 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java @@ -26,7 +26,7 @@ import com.tencent.supersonic.headless.api.pojo.MetricInfo; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; import com.tencent.supersonic.headless.core.config.AggregatorConfig; import com.tencent.supersonic.headless.chat.utils.QueryReqBuilder; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java index 8a2fabf4d..33d964ed7 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java @@ -12,7 +12,7 @@ import dev.langchain4j.store.embedding.RetrieveQueryResult; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SchemaElementType; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.chat.knowledge.MetaEmbeddingService; import java.util.Objects; import org.springframework.util.CollectionUtils; @@ -46,7 +46,7 @@ public class MetricRecommendProcessor implements ExecuteResultProcessor { } List metricNames = Collections.singletonList(parseInfo.getMetrics().iterator().next().getName()); Map filterCondition = new HashMap<>(); - filterCondition.put("modelId", parseInfo.getMetrics().iterator().next().getDataSet().toString()); + filterCondition.put("modelId", parseInfo.getMetrics().iterator().next().getDataSetId().toString()); filterCondition.put("type", SchemaElementType.METRIC.name()); RetrieveQuery retrieveQuery = RetrieveQuery.builder().queryTextsList(metricNames) .filterCondition(filterCondition).queryEmbeddings(null).build(); @@ -78,7 +78,7 @@ public class MetricRecommendProcessor implements ExecuteResultProcessor { if (retrieval.getMetadata().containsKey("dataSetId")) { String dataSetId = retrieval.getMetadata().get("dataSetId").toString() .replace(Constants.UNDERLINE, ""); - schemaElement.setDataSet(Long.parseLong(dataSetId)); + schemaElement.setDataSetId(Long.parseLong(dataSetId)); } schemaElement.setOrder(++metricOrder); parseInfo.getMetrics().add(schemaElement); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java index 2ec36fdae..7c189c508 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java @@ -12,7 +12,7 @@ import com.tencent.supersonic.chat.server.persistence.dataobject.ChatParseDO; import com.tencent.supersonic.chat.server.persistence.dataobject.ChatQueryDO; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import java.util.List; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java index f920d5b70..2ea2f70ec 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatQueryService.java @@ -6,7 +6,7 @@ import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.ChatQueryDataReq; import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.SearchResult; import java.util.List; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java index 7f5e67025..44c5622e0 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java @@ -18,7 +18,7 @@ import com.tencent.supersonic.chat.server.service.ChatManageService; import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java index 23701977e..a2d3cfb0b 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatQueryServiceImpl.java @@ -39,7 +39,7 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryNLReq; import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq; import com.tencent.supersonic.headless.api.pojo.response.MapResp; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.QueryState; import com.tencent.supersonic.headless.api.pojo.response.SearchResult; import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; @@ -120,7 +120,6 @@ public class ChatQueryServiceImpl implements ChatQueryService { processor.process(parseContext, parseResp); } chatParseReq.setQueryText(parseContext.getQueryText()); - parseResp.setQueryText(parseContext.getQueryText()); chatManageService.batchAddParse(chatParseReq, parseResp); chatManageService.updateParseCostTime(parseResp); return parseResp; @@ -352,8 +351,8 @@ public class ChatQueryServiceImpl implements ChatQueryService { for (FieldExpression fieldExpression : fieldExpressionList) { for (QueryFilter queryFilter : queryData.getDimensionFilters()) { if (queryFilter.getOperator().equals(FilterOperatorEnum.LIKE) - && FilterOperatorEnum.LIKE.getValue().toLowerCase().equals( - fieldExpression.getOperator().toLowerCase())) { + && FilterOperatorEnum.LIKE.getValue().equalsIgnoreCase( + fieldExpression.getOperator())) { Map replaceMap = new HashMap<>(); String preValue = fieldExpression.getFieldValue().toString(); String curValue = queryFilter.getValue().toString(); diff --git a/common/pom.xml b/common/pom.xml index 1bc48967a..cccee8316 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -46,11 +46,6 @@ - - commons-lang - commons-lang - ${commons.lang.version} - com.alibaba @@ -67,6 +62,11 @@ org.apache.commons commons-lang3 + + org.apache.commons + commons-compress + ${commons.compress.version} + org.junit.jupiter diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SchemaElement.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SchemaElement.java index eeb8b4ee8..4b87e34ba 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SchemaElement.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SchemaElement.java @@ -17,7 +17,7 @@ import java.util.List; @NoArgsConstructor public class SchemaElement implements Serializable { - private Long dataSet; + private Long dataSetId; private String dataSetName; private Long model; private Long id; @@ -43,7 +43,7 @@ public class SchemaElement implements Serializable { return false; } SchemaElement schemaElement = (SchemaElement) o; - return Objects.equal(dataSet, schemaElement.dataSet) && Objects.equal(id, + return Objects.equal(dataSetId, schemaElement.dataSetId) && Objects.equal(id, schemaElement.id) && Objects.equal(name, schemaElement.name) && Objects.equal(bizName, schemaElement.bizName) && Objects.equal(type, schemaElement.type); @@ -51,7 +51,7 @@ public class SchemaElement implements Serializable { @Override public int hashCode() { - return Objects.hashCode(dataSet, id, name, bizName, type); + return Objects.hashCode(dataSetId, id, name, bizName, type); } } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java index d1ff206aa..b1fc009b1 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java @@ -1,5 +1,8 @@ package com.tencent.supersonic.headless.api.pojo; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.Order; import com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum; @@ -8,14 +11,10 @@ import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.headless.api.pojo.request.QueryFilter; import lombok.Data; -import java.util.ArrayList; import java.util.Comparator; -import java.util.HashMap; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeSet; @Data public class SemanticParseInfo { @@ -23,24 +22,25 @@ public class SemanticParseInfo { private Integer id; private String queryMode = "PLAIN_TEXT"; private SchemaElement dataSet; - private Set metrics = new TreeSet<>(new SchemaNameLengthComparator()); - private Set dimensions = new LinkedHashSet(); + private Set metrics = Sets.newTreeSet(new SchemaNameLengthComparator()); + private Set dimensions = Sets.newTreeSet(new SchemaNameLengthComparator()); private SchemaElement entity; private AggregateTypeEnum aggType = AggregateTypeEnum.NONE; private FilterType filterType = FilterType.AND; - private Set dimensionFilters = new LinkedHashSet(); - private Set metricFilters = new LinkedHashSet(); - private Set orders = new LinkedHashSet(); + private Set dimensionFilters = Sets.newHashSet(); + private Set metricFilters = Sets.newHashSet(); + private Set orders = Sets.newHashSet(); private DateConf dateInfo; private Long limit; private double score; - private List elementMatches = new ArrayList<>(); - private Map properties = new HashMap<>(); + private List elementMatches = Lists.newArrayList(); private SqlInfo sqlInfo = new SqlInfo(); private SqlEvaluation sqlEvaluation = new SqlEvaluation(); private QueryType queryType = QueryType.ID; private EntityInfo entityInfo; private String textInfo; + private Map properties = Maps.newHashMap(); + private static class SchemaNameLengthComparator implements Comparator { @Override @@ -62,18 +62,11 @@ public class SemanticParseInfo { } } - public Set getMetrics() { - Set metricSet = new TreeSet<>(new SchemaNameLengthComparator()); - metricSet.addAll(metrics); - metrics = metricSet; - return metrics; - } - public Long getDataSetId() { if (dataSet == null) { return null; } - return dataSet.getDataSet(); + return dataSet.getDataSetId(); } } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticSchema.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticSchema.java index 14fdd731e..fdbe73495 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticSchema.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticSchema.java @@ -116,7 +116,7 @@ public class SemanticSchema implements Serializable { public List getTags(Long dataSetId) { List tags = new ArrayList<>(); dataSetSchemaList.stream().filter(schemaElement -> - dataSetId.equals(schemaElement.getDataSet().getDataSet())) + dataSetId.equals(schemaElement.getDataSet().getDataSetId())) .forEach(d -> tags.addAll(d.getTags())); return tags; } @@ -129,7 +129,7 @@ public class SemanticSchema implements Serializable { private List getElementsByDataSetId(Long dataSetId, List elements) { return elements.stream() - .filter(schemaElement -> dataSetId.equals(schemaElement.getDataSet())) + .filter(schemaElement -> dataSetId.equals(schemaElement.getDataSetId())) .collect(Collectors.toList()); } @@ -155,6 +155,6 @@ public class SemanticSchema implements Serializable { return new HashMap<>(); } return dataSetSchemaList.stream().collect(Collectors.toMap(dataSetSchema - -> dataSetSchema.getDataSet().getDataSet(), dataSetSchema -> dataSetSchema)); + -> dataSetSchema.getDataSet().getDataSetId(), dataSetSchema -> dataSetSchema)); } } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/MapResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/MapResp.java index 8603ffda8..e83fa5c78 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/MapResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/MapResp.java @@ -6,8 +6,11 @@ import lombok.Data; @Data public class MapResp { - private String queryText; + private final String queryText; private SchemaMapInfo mapInfo = new SchemaMapInfo(); + public MapResp(String queryText) { + this.queryText = queryText; + } } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java index 6d24a721b..832f5535d 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ParseResp.java @@ -10,7 +10,7 @@ import java.util.stream.Collectors; @Data public class ParseResp { - private String queryText; + private final String queryText; private Long queryId; private ParseState state = ParseState.PENDING; private String errorMsg; diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java index 1ebd9ec61..7be08622c 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/ChatQueryContext.java @@ -44,6 +44,7 @@ public class ChatQueryContext { private QueryFilters queryFilters; private List candidateQueries = new ArrayList<>(); private SchemaMapInfo mapInfo = new SchemaMapInfo(); + private SemanticParseInfo contextParseInfo; private MapModeEnum mapModeEnum = MapModeEnum.STRICT; @JsonIgnore private SemanticSchema semanticSchema; @@ -53,7 +54,6 @@ public class ChatQueryContext { private ChatModelConfig modelConfig; private PromptConfig promptConfig; private List dynamicExemplars; - private SemanticParseInfo contextParseInfo; public List getCandidateQueries() { ParserConfig parserConfig = ContextUtils.getBean(ParserConfig.class); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/BaseSemanticCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/BaseSemanticCorrector.java index 4a409c0d4..6c4020e25 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/BaseSemanticCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/BaseSemanticCorrector.java @@ -51,7 +51,7 @@ public abstract class BaseSemanticCorrector implements SemanticCorrector { // support fieldName and field alias Map result = dbAllFields.stream() - .filter(entry -> dataSetId.equals(entry.getDataSet())) + .filter(entry -> dataSetId.equals(entry.getDataSetId())) .flatMap(schemaElement -> { Set elements = new HashSet<>(); elements.add(schemaElement.getName()); @@ -75,7 +75,7 @@ public abstract class BaseSemanticCorrector implements SemanticCorrector { protected void addAggregateToMetric(ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) { //add aggregate to all metric String correctS2SQL = semanticParseInfo.getSqlInfo().getCorrectedS2SQL(); - Long dataSetId = semanticParseInfo.getDataSet().getDataSet(); + Long dataSetId = semanticParseInfo.getDataSet().getDataSetId(); List metrics = getMetricElements(chatQueryContext, dataSetId); Map metricToAggregate = metrics.stream() diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/HavingCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/HavingCorrector.java index 6d99f8a1c..5ab7c2df0 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/HavingCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/HavingCorrector.java @@ -39,7 +39,7 @@ public class HavingCorrector extends BaseSemanticCorrector { } private void addHaving(ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) { - Long dataSet = semanticParseInfo.getDataSet().getDataSet(); + Long dataSet = semanticParseInfo.getDataSet().getDataSetId(); SemanticSchema semanticSchema = chatQueryContext.getSemanticSchema(); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/ModelWordBuilder.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/ModelWordBuilder.java index 2292de487..1885abd5f 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/ModelWordBuilder.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/ModelWordBuilder.java @@ -31,7 +31,7 @@ public class ModelWordBuilder extends BaseWordWithAliasBuilder { public DictWord getOneWordNature(String word, SchemaElement schemaElement, boolean isSuffix) { DictWord dictWord = new DictWord(); dictWord.setWord(word); - String nature = DictWordType.NATURE_SPILT + schemaElement.getDataSet(); + String nature = DictWordType.NATURE_SPILT + schemaElement.getDataSetId(); dictWord.setNatureWithFrequency(String.format("%s " + DEFAULT_FREQUENCY, nature)); return dictWord; } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/TermWordBuilder.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/TermWordBuilder.java index 02e7ebd76..8e27a80de 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/TermWordBuilder.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/builder/TermWordBuilder.java @@ -30,7 +30,7 @@ public class TermWordBuilder extends BaseWordWithAliasBuilder { public DictWord getOneWordNature(String word, SchemaElement schemaElement, boolean isSuffix) { DictWord dictWord = new DictWord(); dictWord.setWord(word); - Long dataSet = schemaElement.getDataSet(); + Long dataSet = schemaElement.getDataSetId(); String nature = DictWordType.NATURE_SPILT + dataSet + DictWordType.NATURE_SPILT + schemaElement.getId() + DictWordType.TERM.getType(); if (isSuffix) { diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/DatabaseMatchStrategy.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/DatabaseMatchStrategy.java index 552cb56c5..9bbca97a2 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/DatabaseMatchStrategy.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/DatabaseMatchStrategy.java @@ -67,7 +67,7 @@ public class DatabaseMatchStrategy extends BaseMatchStrategy Set schemaElements = entry.getValue(); if (!CollectionUtils.isEmpty(detectDataSetIds)) { schemaElements = schemaElements.stream() - .filter(schemaElement -> detectDataSetIds.contains(schemaElement.getDataSet())) + .filter(schemaElement -> detectDataSetIds.contains(schemaElement.getDataSetId())) .collect(Collectors.toSet()); } for (SchemaElement schemaElement : schemaElements) { diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/KeywordMapper.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/KeywordMapper.java index d9581e54c..a0abeb9ea 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/KeywordMapper.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/KeywordMapper.java @@ -103,12 +103,12 @@ public class KeywordMapper extends BaseMapper { .similarity(mapperHelper.getSimilarity(match.getDetectWord(), schemaElement.getName())) .build(); log.info("add to schema, elementMatch {}", schemaElementMatch); - addToSchemaMap(chatQueryContext.getMapInfo(), schemaElement.getDataSet(), schemaElementMatch); + addToSchemaMap(chatQueryContext.getMapInfo(), schemaElement.getDataSetId(), schemaElementMatch); } } private Set getRegElementSet(SchemaMapInfo schemaMap, SchemaElement schemaElement) { - List elements = schemaMap.getMatchedElements(schemaElement.getDataSet()); + List elements = schemaMap.getMatchedElements(schemaElement.getDataSetId()); if (CollectionUtils.isEmpty(elements)) { return new HashSet<>(); } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/QueryFilterMapper.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/QueryFilterMapper.java index 76a2d44f5..7499690da 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/QueryFilterMapper.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/QueryFilterMapper.java @@ -64,7 +64,7 @@ public class QueryFilterMapper extends BaseMapper { .name(String.valueOf(filter.getValue())) .type(SchemaElementType.VALUE) .bizName(filter.getBizName()) - .dataSet(dataSetId) + .dataSetId(dataSetId) .build(); SchemaElementMatch schemaElementMatch = SchemaElementMatch.builder() .element(element) diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/RuleSemanticQuery.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/RuleSemanticQuery.java index b5c26b9b6..047cab091 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/RuleSemanticQuery.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/query/rule/RuleSemanticQuery.java @@ -95,7 +95,7 @@ public abstract class RuleSemanticQuery extends BaseSemanticQuery { private void fillSchemaElement(SemanticParseInfo parseInfo, SemanticSchema semanticSchema) { Set dataSetIds = parseInfo.getElementMatches().stream().map(SchemaElementMatch::getElement) - .map(SchemaElement::getDataSet).collect(Collectors.toSet()); + .map(SchemaElement::getDataSetId).collect(Collectors.toSet()); Long dataSetId = dataSetIds.iterator().next(); parseInfo.setDataSet(semanticSchema.getDataSet(dataSetId)); Map> dim2Values = new HashMap<>(); diff --git a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/AggCorrectorTest.java b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/AggCorrectorTest.java index 6a6005892..f5ccbd042 100644 --- a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/AggCorrectorTest.java +++ b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/AggCorrectorTest.java @@ -24,7 +24,7 @@ class AggCorrectorTest { ChatQueryContext chatQueryContext = buildQueryContext(dataSetId); SemanticParseInfo semanticParseInfo = new SemanticParseInfo(); SchemaElement dataSet = new SchemaElement(); - dataSet.setDataSet(dataSetId); + dataSet.setDataSetId(dataSetId); semanticParseInfo.setDataSet(dataSet); SqlInfo sqlInfo = new SqlInfo(); String sql = "SELECT 用户, 访问次数 FROM 超音数数据集 WHERE 部门 = 'sales' AND" @@ -47,11 +47,11 @@ class AggCorrectorTest { QueryConfig queryConfig = new QueryConfig(); dataSetSchema.setQueryConfig(queryConfig); SchemaElement schemaElement = new SchemaElement(); - schemaElement.setDataSet(dataSetId); + schemaElement.setDataSetId(dataSetId); dataSetSchema.setDataSet(schemaElement); Set dimensions = new HashSet<>(); SchemaElement element1 = new SchemaElement(); - element1.setDataSet(1L); + element1.setDataSetId(1L); element1.setName("部门"); dimensions.add(element1); @@ -59,7 +59,7 @@ class AggCorrectorTest { Set metrics = new HashSet<>(); SchemaElement metric1 = new SchemaElement(); - metric1.setDataSet(1L); + metric1.setDataSetId(1L); metric1.setName("访问次数"); metrics.add(metric1); diff --git a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SchemaCorrectorTest.java b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SchemaCorrectorTest.java index afd3b00c8..636c24971 100644 --- a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SchemaCorrectorTest.java +++ b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SchemaCorrectorTest.java @@ -70,7 +70,7 @@ class SchemaCorrectorTest { semanticParseInfo.setSqlInfo(sqlInfo); SchemaElement schemaElement = new SchemaElement(); - schemaElement.setDataSet(dataSetId); + schemaElement.setDataSetId(dataSetId); semanticParseInfo.setDataSet(schemaElement); @@ -107,21 +107,21 @@ class SchemaCorrectorTest { QueryConfig queryConfig = new QueryConfig(); dataSetSchema.setQueryConfig(queryConfig); SchemaElement schemaElement = new SchemaElement(); - schemaElement.setDataSet(dataSetId); + schemaElement.setDataSetId(dataSetId); dataSetSchema.setDataSet(schemaElement); Set dimensions = new HashSet<>(); SchemaElement element1 = new SchemaElement(); - element1.setDataSet(1L); + element1.setDataSetId(1L); element1.setName("歌曲名"); dimensions.add(element1); SchemaElement element2 = new SchemaElement(); - element2.setDataSet(1L); + element2.setDataSetId(1L); element2.setName("商务组"); dimensions.add(element2); SchemaElement element3 = new SchemaElement(); - element3.setDataSet(1L); + element3.setDataSetId(1L); element3.setName("发行日期"); dimensions.add(element3); diff --git a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SelectCorrectorTest.java b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SelectCorrectorTest.java index 1d8d0256a..8736ba989 100644 --- a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SelectCorrectorTest.java +++ b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/corrector/SelectCorrectorTest.java @@ -39,7 +39,7 @@ class SelectCorrectorTest { ChatQueryContext chatQueryContext = buildQueryContext(dataSetId); SemanticParseInfo semanticParseInfo = new SemanticParseInfo(); SchemaElement dataSet = new SchemaElement(); - dataSet.setDataSet(dataSetId); + dataSet.setDataSetId(dataSetId); semanticParseInfo.setDataSet(dataSet); semanticParseInfo.setQueryType(QueryType.DETAIL); SqlInfo sqlInfo = new SqlInfo(); @@ -74,23 +74,23 @@ class SelectCorrectorTest { dataSetSchema.setQueryConfig(queryConfig); SchemaElement schemaElement = new SchemaElement(); - schemaElement.setDataSet(dataSetId); + schemaElement.setDataSetId(dataSetId); dataSetSchema.setDataSet(schemaElement); Set dimensions = new HashSet<>(); SchemaElement element1 = new SchemaElement(); - element1.setDataSet(dataSetId); + element1.setDataSetId(dataSetId); element1.setId(1L); element1.setName("艺人名"); dimensions.add(element1); SchemaElement element2 = new SchemaElement(); - element2.setDataSet(dataSetId); + element2.setDataSetId(dataSetId); element2.setId(2L); element2.setName("性别"); dimensions.add(element2); SchemaElement element3 = new SchemaElement(); - element3.setDataSet(dataSetId); + element3.setDataSetId(dataSetId); element3.setId(3L); element3.setName("国籍"); dimensions.add(element3); @@ -99,7 +99,7 @@ class SelectCorrectorTest { Set metrics = new HashSet<>(); SchemaElement metric1 = new SchemaElement(); - metric1.setDataSet(dataSetId); + metric1.setDataSetId(dataSetId); metric1.setId(4L); metric1.setName("粉丝数"); metrics.add(metric1); diff --git a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/s2sql/LLMSqlParserTest.java b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/s2sql/LLMSqlParserTest.java index c3155ebfb..260f5e032 100644 --- a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/s2sql/LLMSqlParserTest.java +++ b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/s2sql/LLMSqlParserTest.java @@ -29,7 +29,7 @@ class LLMSqlParserTest { SchemaElement schemaElement = SchemaElement.builder() .bizName("singer_name") .name("歌手名") - .dataSet(2L) + .dataSetId(2L) .schemaValueMaps(schemaValueMaps) .build(); dimensions.add(schemaElement); @@ -37,7 +37,7 @@ class LLMSqlParserTest { SchemaElement schemaElement2 = SchemaElement.builder() .bizName("publish_time") .name("发布时间") - .dataSet(2L) + .dataSetId(2L) .build(); dimensions.add(schemaElement2); @@ -47,7 +47,7 @@ class LLMSqlParserTest { SchemaElement metric = SchemaElement.builder() .bizName("play_count") .name("播放量") - .dataSet(2L) + .dataSetId(2L) .build(); metrics.add(metric); diff --git a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/utils/S2SqlDateHelperTest.java b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/utils/S2SqlDateHelperTest.java index dd3d70bf2..d37af5a0f 100644 --- a/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/utils/S2SqlDateHelperTest.java +++ b/headless/chat/src/test/java/com/tencent/supersonic/headless/chat/utils/S2SqlDateHelperTest.java @@ -114,7 +114,7 @@ class S2SqlDateHelperTest { QueryConfig queryConfig = new QueryConfig(); dataSetSchema.setQueryConfig(queryConfig); SchemaElement schemaElement = new SchemaElement(); - schemaElement.setDataSet(dataSetId); + schemaElement.setDataSetId(dataSetId); dataSetSchema.setDataSet(schemaElement); dataSetSchemaList.add(dataSetSchema); diff --git a/headless/core/pom.xml b/headless/core/pom.xml index 3ded675e0..d8be4ffd8 100644 --- a/headless/core/pom.xml +++ b/headless/core/pom.xml @@ -111,12 +111,6 @@ - - org.apache.commons - commons-compress - ${commons.compress.version} - compile - org.duckdb duckdb_jdbc diff --git a/headless/server/pom.xml b/headless/server/pom.xml index e4f281c62..d24460cc2 100644 --- a/headless/server/pom.xml +++ b/headless/server/pom.xml @@ -33,11 +33,6 @@ ${guava.version} - - - org.apache.commons - commons-lang3 - com.tencent.supersonic headless-core diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java index 3f76c43c9..0ff7b7857 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2ChatLayerService.java @@ -1,6 +1,7 @@ package com.tencent.supersonic.headless.server.facade.service.impl; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum; @@ -26,7 +27,6 @@ import com.tencent.supersonic.headless.chat.ChatQueryContext; import com.tencent.supersonic.headless.chat.corrector.GrammarCorrector; import com.tencent.supersonic.headless.chat.corrector.SchemaCorrector; import com.tencent.supersonic.headless.chat.knowledge.builder.BaseWordBuilder; -import com.tencent.supersonic.headless.chat.query.SemanticQuery; import com.tencent.supersonic.headless.server.facade.service.ChatLayerService; import com.tencent.supersonic.headless.server.service.RetrieveService; import com.tencent.supersonic.headless.api.pojo.MetaFilter; @@ -64,20 +64,17 @@ public class S2ChatLayerService implements ChatLayerService { @Override public MapResp performMapping(QueryNLReq queryNLReq) { - MapResp mapResp = new MapResp(); + MapResp mapResp = new MapResp(queryNLReq.getQueryText()); ChatQueryContext queryCtx = buildChatQueryContext(queryNLReq); ComponentFactory.getSchemaMappers().forEach(mapper -> { mapper.map(queryCtx); }); - SchemaMapInfo mapInfo = queryCtx.getMapInfo(); - mapResp.setMapInfo(mapInfo); - mapResp.setQueryText(queryNLReq.getQueryText()); + mapResp.setMapInfo(queryCtx.getMapInfo()); return mapResp; } @Override public MapInfoResp map(QueryMapReq queryMapReq) { - QueryNLReq queryNLReq = new QueryNLReq(); BeanUtils.copyProperties(queryMapReq, queryNLReq); List dataSets = dataSetService.getDataSets(queryMapReq.getDataSetNames(), queryMapReq.getUser()); @@ -92,19 +89,13 @@ public class S2ChatLayerService implements ChatLayerService { @Override public ParseResp performParsing(QueryNLReq queryNLReq) { ParseResp parseResult = new ParseResp(queryNLReq.getQueryText()); - // build queryContext ChatQueryContext queryCtx = buildChatQueryContext(queryNLReq); - chatWorkflowEngine.execute(queryCtx, parseResult); - - List parseInfos = queryCtx.getCandidateQueries().stream() - .map(SemanticQuery::getParseInfo).collect(Collectors.toList()); - parseResult.setSelectedParses(parseInfos); return parseResult; } - public ChatQueryContext buildChatQueryContext(QueryNLReq queryNLReq) { - SemanticSchema semanticSchema = schemaService.getSemanticSchema(); + private ChatQueryContext buildChatQueryContext(QueryNLReq queryNLReq) { + SemanticSchema semanticSchema = schemaService.getSemanticSchema(queryNLReq.getDataSetIds()); Map> modelIdToDataSetIds = dataSetService.getModelIdToDataSetIds(); ChatQueryContext queryCtx = ChatQueryContext.builder() .queryFilters(queryNLReq.getQueryFilters()) @@ -138,7 +129,8 @@ public class S2ChatLayerService implements ChatLayerService { private SemanticParseInfo correctSqlReq(QuerySqlReq querySqlReq, User user) { ChatQueryContext queryCtx = new ChatQueryContext(); - SemanticSchema semanticSchema = schemaService.getSemanticSchema(); + SemanticSchema semanticSchema = schemaService.getSemanticSchema( + Sets.newHashSet(querySqlReq.getDataSetId())); queryCtx.setSemanticSchema(semanticSchema); SemanticParseInfo semanticParseInfo = new SemanticParseInfo(); SqlInfo sqlInfo = new SqlInfo(); @@ -277,7 +269,7 @@ public class S2ChatLayerService implements ChatLayerService { * @return */ private SchemaElementMatch getTimeDimension(Long dataSetId, String dataSetName) { - SchemaElement element = SchemaElement.builder().dataSet(dataSetId).dataSetName(dataSetName) + SchemaElement element = SchemaElement.builder().dataSetId(dataSetId).dataSetName(dataSetName) .type(SchemaElementType.DIMENSION).bizName(TimeDimensionEnum.DAY.getName()).build(); SchemaElementMatch timeDimensionMatch = SchemaElementMatch.builder().element(element) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java index c5d788430..031d8cdf8 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java @@ -82,7 +82,7 @@ import java.util.stream.Collectors; @Slf4j public class S2SemanticLayerService implements SemanticLayerService { - private StatUtils statUtils; + private final StatUtils statUtils; private final QueryUtils queryUtils; private final QueryReqConverter queryReqConverter; private final SemanticSchemaManager semanticSchemaManager; @@ -93,8 +93,8 @@ public class S2SemanticLayerService implements SemanticLayerService { private final KnowledgeBaseService knowledgeBaseService; private final MetricService metricService; private final DimensionService dimensionService; - private QueryCache queryCache = ComponentFactory.getQueryCache(); - private List queryExecutors = ComponentFactory.getQueryExecutors(); + private final QueryCache queryCache = ComponentFactory.getQueryCache(); + private final List queryExecutors = ComponentFactory.getQueryExecutors(); public S2SemanticLayerService( StatUtils statUtils, @@ -322,7 +322,7 @@ public class S2SemanticLayerService implements SemanticLayerService { } private Set getMetrics(EntityInfo modelInfo) { - Set metrics = new LinkedHashSet(); + Set metrics = Sets.newHashSet(); for (DataInfo metricValue : modelInfo.getMetrics()) { SchemaElement metric = new SchemaElement(); BeanUtils.copyProperties(metricValue, metric); @@ -439,7 +439,7 @@ public class S2SemanticLayerService implements SemanticLayerService { if (dataSetSchema == null) { return entityInfo; } - Long dataSetId = dataSetSchema.getDataSet().getDataSet(); + Long dataSetId = dataSetSchema.getDataSet().getDataSetId(); DataSetInfo dataSetInfo = new DataSetInfo(); dataSetInfo.setItemId(dataSetId.intValue()); dataSetInfo.setName(dataSetSchema.getDataSet().getName()); @@ -518,7 +518,7 @@ public class S2SemanticLayerService implements SemanticLayerService { //add filter QueryFilter chatFilter = getQueryFilter(entityInfo); - Set chatFilters = new LinkedHashSet(); + Set chatFilters = Sets.newHashSet(); chatFilters.add(chatFilter); semanticParseInfo.setDimensionFilters(chatFilters); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/yaml/MetricTypeParamsYamlTpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/yaml/MetricTypeParamsYamlTpl.java index 05deab95f..8cec4b7bc 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/yaml/MetricTypeParamsYamlTpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/yaml/MetricTypeParamsYamlTpl.java @@ -1,8 +1,7 @@ package com.tencent.supersonic.headless.server.pojo.yaml; +import com.google.common.collect.Lists; import lombok.Data; -import org.apache.commons.compress.utils.Lists; - import java.util.List; @Data diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/SchemaService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/SchemaService.java index e0811c0e0..a5c2d0603 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/SchemaService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/SchemaService.java @@ -24,6 +24,7 @@ import com.tencent.supersonic.headless.server.pojo.yaml.MetricYamlTpl; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.ExecutionException; public interface SchemaService { @@ -32,6 +33,8 @@ public interface SchemaService { SemanticSchema getSemanticSchema(); + SemanticSchema getSemanticSchema(Set dataSetIds); + SemanticSchemaResp fetchSemanticSchema(SchemaFilterReq schemaFilterReq); List fetchModelSchemaResps(List modelIds); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/RetrieveServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/RetrieveServiceImpl.java index 27c6f5951..d240cbf92 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/RetrieveServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/RetrieveServiceImpl.java @@ -64,7 +64,7 @@ public class RetrieveServiceImpl implements RetrieveService { String queryText = queryNLReq.getQueryText(); // 1.get meta info - SemanticSchema semanticSchemaDb = schemaService.getSemanticSchema(); + SemanticSchema semanticSchemaDb = schemaService.getSemanticSchema(queryNLReq.getDataSetIds()); List metricsDb = semanticSchemaDb.getMetrics(); final Map dataSetIdToName = semanticSchemaDb.getDataSetIdToName(); Map> modelIdToDataSetIds = @@ -228,7 +228,7 @@ public class RetrieveServiceImpl implements RetrieveService { return Lists.newArrayList(); } return metricsDb.stream() - .filter(mapDO -> Objects.nonNull(mapDO) && model.equals(mapDO.getDataSet())) + .filter(mapDO -> Objects.nonNull(mapDO) && model.equals(mapDO.getDataSetId())) .sorted(Comparator.comparing(SchemaElement::getUseCnt).reversed()) .flatMap(entry -> { List result = new ArrayList<>(); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/SchemaServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/SchemaServiceImpl.java index 5bd73e1aa..dbed60883 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/SchemaServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/SchemaServiceImpl.java @@ -3,6 +3,7 @@ package com.tencent.supersonic.headless.server.service.impl; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.pojo.ItemDateResp; import com.tencent.supersonic.common.pojo.ModelRela; @@ -64,6 +65,7 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -140,15 +142,15 @@ public class SchemaServiceImpl implements SchemaService { return fetchDataSetSchema(new DataSetFilterReq(dataSetId)).stream().findFirst().orElse(null); } - private List fetchDataSetSchema(List ids) { + private List fetchDataSetSchema(Set ids) { DataSetFilterReq dataSetFilterReq = new DataSetFilterReq(); - dataSetFilterReq.setDataSetIds(ids); + dataSetFilterReq.setDataSetIds(new ArrayList(ids)); return fetchDataSetSchema(dataSetFilterReq); } @Override public DataSetSchema getDataSetSchema(Long dataSetId) { - List ids = new ArrayList<>(); + Set ids = Sets.newHashSet(); ids.add(dataSetId); List dataSetSchemaResps = fetchDataSetSchema(ids); if (!CollectionUtils.isEmpty(dataSetSchemaResps)) { @@ -162,7 +164,7 @@ public class SchemaServiceImpl implements SchemaService { return null; } - public List getDataSetSchema(List ids) { + public List getDataSetSchema(Set ids) { List domainSchemaList = new ArrayList<>(); for (DataSetSchemaResp resp : fetchDataSetSchema(ids)) { @@ -174,7 +176,12 @@ public class SchemaServiceImpl implements SchemaService { @Override public SemanticSchema getSemanticSchema() { - return new SemanticSchema(getDataSetSchema(new ArrayList<>())); + return new SemanticSchema(getDataSetSchema(Collections.EMPTY_SET)); + } + + @Override + public SemanticSchema getSemanticSchema(Set dataSetIds) { + return new SemanticSchema(getDataSetSchema(dataSetIds)); } public List buildDataSetSchema(DataSetFilterReq filter) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java index e9adb24aa..d2097e431 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java @@ -59,6 +59,9 @@ public class ChatWorkflowEngine { parseResult.setErrorMsg("No semantic queries can be parsed out."); queryCtx.setChatWorkflowState(ChatWorkflowState.FINISHED); } else { + List parseInfos = queryCtx.getCandidateQueries().stream() + .map(SemanticQuery::getParseInfo).collect(Collectors.toList()); + parseResult.setSelectedParses(parseInfos); queryCtx.setChatWorkflowState(ChatWorkflowState.CORRECTING); } break; diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java index e49b1137e..0f693b38d 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java @@ -31,7 +31,7 @@ public class DataSetSchemaBuilder { DataSetSchema dataSetSchema = new DataSetSchema(); dataSetSchema.setQueryConfig(resp.getQueryConfig()); SchemaElement dataSet = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .id(resp.getId()) .name(resp.getName()) @@ -71,7 +71,7 @@ public class DataSetSchemaBuilder { List alias = SchemaItem.getAliasList(metric.getAlias()); if (metric.getIsTag() == 1) { SchemaElement tagToAdd = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .model(metric.getModelId()) .id(metric.getId()) @@ -105,7 +105,7 @@ public class DataSetSchemaBuilder { } if (dim.getIsTag() == 1) { SchemaElement tagToAdd = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .model(dim.getModelId()) .id(dim.getId()) @@ -130,7 +130,7 @@ public class DataSetSchemaBuilder { return null; } return SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .model(dim.getModelId()) .id(dim.getId()) .name(dim.getName()) @@ -155,7 +155,7 @@ public class DataSetSchemaBuilder { } } SchemaElement dimToAdd = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .model(dim.getModelId()) .id(dim.getId()) @@ -189,7 +189,7 @@ public class DataSetSchemaBuilder { } } SchemaElement dimValueToAdd = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .model(dim.getModelId()) .id(dim.getId()) @@ -213,7 +213,7 @@ public class DataSetSchemaBuilder { List alias = SchemaItem.getAliasList(metric.getAlias()); SchemaElement metricToAdd = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .model(metric.getModelId()) .id(metric.getId()) @@ -239,7 +239,7 @@ public class DataSetSchemaBuilder { for (TermResp termResp : resp.getTermResps()) { List alias = termResp.getAlias(); SchemaElement metricToAdd = SchemaElement.builder() - .dataSet(resp.getId()) + .dataSetId(resp.getId()) .dataSetName(resp.getName()) .model(-1L) .id(termResp.getId()) diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java index ad43d002c..89f828e0d 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/BaseTest.java @@ -8,7 +8,7 @@ import com.tencent.supersonic.chat.server.service.ChatQueryService; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.response.ParseResp; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.api.pojo.response.QueryState; import com.tencent.supersonic.util.DataUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java index ac79deb40..83d7d9c12 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java @@ -5,7 +5,7 @@ import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.request.QueryFilter; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.chat.query.rule.metric.MetricFilterQuery; import com.tencent.supersonic.headless.chat.query.rule.metric.MetricGroupByQuery; import com.tencent.supersonic.headless.chat.query.rule.metric.MetricModelQuery; @@ -37,10 +37,7 @@ public class MetricTest extends BaseTest { expectedResult.setQueryMode(MetricFilterQuery.QUERY_MODE); expectedParseInfo.setAggType(NONE); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问用户数")); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); - expectedParseInfo.getDimensionFilters().add(DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L)); @@ -50,9 +47,9 @@ public class MetricTest extends BaseTest { assertQueryResult(expectedResult, actualResult); } - @Test + //@Test public void testMetricDomain() throws Exception { - QueryResult actualResult = submitNewChat("超音数的访问次数", DataUtils.metricAgentId); + QueryResult actualResult = submitNewChat("超音数总访问次数", DataUtils.metricAgentId); QueryResult expectedResult = new QueryResult(); SemanticParseInfo expectedParseInfo = new SemanticParseInfo(); @@ -61,7 +58,6 @@ public class MetricTest extends BaseTest { expectedResult.setQueryMode(MetricModelQuery.QUERY_MODE); expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.RECENT, unit, period, startDay, endDay)); expectedParseInfo.setQueryType(QueryType.METRIC); @@ -80,7 +76,6 @@ public class MetricTest extends BaseTest { expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("部门")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.RECENT, unit, period, startDay, endDay)); @@ -100,7 +95,7 @@ public class MetricTest extends BaseTest { expectedResult.setQueryMode(MetricFilterQuery.QUERY_MODE); expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); + expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("用户")); List list = new ArrayList<>(); list.add("alice"); list.add("lucy"); @@ -125,9 +120,7 @@ public class MetricTest extends BaseTest { expectedResult.setQueryMode(MetricTopNQuery.QUERY_MODE); expectedParseInfo.setAggType(SUM); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问用户数")); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("用户")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(3, DateConf.DateMode.RECENT, "DAY")); @@ -147,7 +140,6 @@ public class MetricTest extends BaseTest { expectedParseInfo.setAggType(SUM); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("部门")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.RECENT, unit, period, startDay, endDay)); @@ -172,7 +164,6 @@ public class MetricTest extends BaseTest { expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensionFilters().add(DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L)); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java index 839aeb8d6..f493d9934 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java @@ -4,7 +4,7 @@ import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.chat.query.rule.metric.MetricFilterQuery; import com.tencent.supersonic.util.DataUtils; import org.junit.jupiter.api.Order; @@ -27,9 +27,7 @@ public class MultiTurnsTest extends BaseTest { expectedResult.setQueryMode(MetricFilterQuery.QUERY_MODE); expectedParseInfo.setAggType(NONE); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问用户数")); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensionFilters().add(DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L)); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/TagTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/TagTest.java index ee7dadac3..dc4e039a3 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/TagTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/TagTest.java @@ -7,7 +7,7 @@ import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; import com.tencent.supersonic.headless.api.pojo.request.QueryFilter; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.headless.chat.query.rule.detail.DetailFilterQuery; import com.tencent.supersonic.util.DataUtils; import org.junit.jupiter.api.Test; diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/evaluation/Text2SQLEval.java b/launchers/standalone/src/test/java/com/tencent/supersonic/evaluation/Text2SQLEval.java index bad4a948d..eaf7f2e4e 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/evaluation/Text2SQLEval.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/evaluation/Text2SQLEval.java @@ -9,7 +9,7 @@ import com.tencent.supersonic.chat.server.agent.AgentToolType; import com.tencent.supersonic.chat.server.agent.MultiTurnConfig; import com.tencent.supersonic.chat.server.agent.RuleParserTool; import com.tencent.supersonic.common.pojo.ChatModelConfig; -import com.tencent.supersonic.headless.api.pojo.response.QueryResult; +import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.util.DataUtils; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Disabled; diff --git a/pom.xml b/pom.xml index 6a2b02609..9c1f9bdc8 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ 7.0.0 4.5.6 2.12.1 - 1.21 + 1.26.0 6.1.26 2.8.0