From d76216a2ec22d857f630ab5cf47a62382f9424d0 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Wed, 29 Nov 2023 17:34:59 +0800 Subject: [PATCH] [improvement][chat]Refactor certain packages to make code cleaner --- .../chat/agent/DataAnalyticsTool.java | 2 +- .../chat/corrector/SchemaCorrector.java | 2 +- .../chat/corrector/WhereCorrector.java | 4 +-- .../chat/parser/QueryTypeParser.java | 7 ++--- .../chat/parser/SatisfactionChecker.java | 4 +-- .../analytics/MetricAnalyzeParser.java | 6 ++-- .../{llm => }/analytics/MetricOption.java | 2 +- .../chat/parser/{ => plugin}/ParseMode.java | 3 +- ...Parser.java => EmbeddingRecallParser.java} | 6 ++-- ...dingResp.java => RecallRetrievalResp.java} | 2 +- ...sedParser.java => FunctionCallParser.java} | 8 ++--- .../chat/parser/rule/RuleBasedParser.java | 30 ------------------- .../llm}/HeuristicModelResolver.java | 2 +- .../s2sql => sql/llm}/LLMRequestService.java | 8 ++--- .../s2sql => sql/llm}/LLMResponseService.java | 6 ++-- .../llm/LLMSqlParser.java} | 6 ++-- .../s2sql => sql/llm}/ModelMatchResult.java | 2 +- .../{llm/s2sql => sql/llm}/ModelResolver.java | 2 +- .../{llm/s2sql => sql/llm}/ParseResult.java | 2 +- .../llm/S2SqlDateHelper.java} | 4 +-- .../{ => sql}/rule/AgentCheckParser.java | 2 +- .../{ => sql}/rule/AggregateTypeParser.java | 2 +- .../{ => sql}/rule/ContextInheritParser.java | 2 +- .../rule/RuleSqlParser.java} | 17 ++++++++--- .../{ => sql}/rule/TimeRangeParser.java | 2 +- .../supersonic/chat/plugin/Plugin.java | 2 +- .../supersonic/chat/plugin/PluginManager.java | 12 ++++---- .../chat/processor/EntityInfoProcessor.java | 10 +++++-- .../chat/processor/MetricCheckProcessor.java | 4 +-- .../chat/processor/ParseInfoProcessor.java | 9 ++++-- ...ocessor.java => ParseResultProcessor.java} | 4 +-- .../chat/processor/QueryRankProcessor.java | 7 +++-- .../chat/processor/RespBuildProcessor.java | 5 +++- .../chat/processor/SqlInfoProcessor.java | 6 +++- .../chat/processor/TimeCostProcessor.java | 5 +++- .../EntityInfoQueryResponder.java | 13 ++++---- .../{responder => query}/QueryResponder.java | 7 +++-- .../SimilarMetricQueryResponder.java | 7 +++-- .../chat/query/llm/LLMSemanticQuery.java | 6 ---- .../LLMAnswerReq.java | 2 +- .../LLMAnswerResp.java | 2 +- .../MetricAnalyzeQuery.java} | 6 ++-- .../{S2SQLQuery.java => LLMSqlQuery.java} | 4 +-- .../query/plugin/webpage/WebPageQuery.java | 6 ++-- ...{WebPageResponse.java => WebPageResp.java} | 2 +- .../plugin/webservice/WebServiceQuery.java | 6 ++-- ...rviceResponse.java => WebServiceResp.java} | 2 +- .../chat/rest/KnowledgeController.java | 4 +-- ...edgeService.java => KnowledgeService.java} | 2 +- .../impl/ChatKnowledgeServiceImpl.java | 4 +-- .../chat/service/impl/QueryServiceImpl.java | 14 ++++----- .../chat/utils/ComponentFactory.java | 12 ++++---- .../chat/utils/SolvedQueryManager.java | 10 +++---- .../parser/TimeRangeParserTest.java | 2 +- .../aggregate/AggregateTypeParserTest.java | 2 +- .../llm/s2sql/LLMResponseServiceTest.java | 1 + .../main/resources/META-INF/spring.factories | 18 +++++------ .../main/resources/META-INF/spring.factories | 20 ++++++------- .../integration/MetricInterpretTest.java | 2 +- .../integration/MockConfiguration.java | 4 +-- .../integration/plugin/BasePluginTest.java | 4 +-- .../tencent/supersonic/util/DataUtils.java | 2 +- .../test/resources/META-INF/spring.factories | 18 +++++------ 63 files changed, 189 insertions(+), 190 deletions(-) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm => }/analytics/MetricAnalyzeParser.java (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm => }/analytics/MetricOption.java (76%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{ => plugin}/ParseMode.java (56%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/{EmbeddingBasedParser.java => EmbeddingRecallParser.java} (94%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/{EmbeddingResp.java => RecallRetrievalResp.java} (84%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/{FunctionBasedParser.java => FunctionCallParser.java} (95%) delete mode 100644 chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/RuleBasedParser.java rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql => sql/llm}/HeuristicModelResolver.java (99%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql => sql/llm}/LLMRequestService.java (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql => sql/llm}/LLMResponseService.java (94%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql/LLMS2SQLParser.java => sql/llm/LLMSqlParser.java} (94%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql => sql/llm}/ModelMatchResult.java (70%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql => sql/llm}/ModelResolver.java (83%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql => sql/llm}/ParseResult.java (93%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{llm/s2sql/S2SQLDateHelper.java => sql/llm/S2SqlDateHelper.java} (95%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{ => sql}/rule/AgentCheckParser.java (98%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{ => sql}/rule/AggregateTypeParser.java (98%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{ => sql}/rule/ContextInheritParser.java (99%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{rule/QueryModeParser.java => sql/rule/RuleSqlParser.java} (70%) rename chat/core/src/main/java/com/tencent/supersonic/chat/parser/{ => sql}/rule/TimeRangeParser.java (99%) rename chat/core/src/main/java/com/tencent/supersonic/chat/processor/{ResponseProcessor.java => ParseResultProcessor.java} (73%) rename chat/core/src/main/java/com/tencent/supersonic/chat/{responder => query}/EntityInfoQueryResponder.java (69%) rename chat/core/src/main/java/com/tencent/supersonic/chat/{responder => query}/QueryResponder.java (50%) rename chat/core/src/main/java/com/tencent/supersonic/chat/{responder => query}/SimilarMetricQueryResponder.java (93%) rename chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/{interpret => analytics}/LLMAnswerReq.java (68%) rename chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/{interpret => analytics}/LLMAnswerResp.java (63%) rename chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/{interpret/MetricInterpretQuery.java => analytics/MetricAnalyzeQuery.java} (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/{S2SQLQuery.java => LLMSqlQuery.java} (97%) rename chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/{WebPageResponse.java => WebPageResp.java} (92%) rename chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/{WebServiceResponse.java => WebServiceResp.java} (85%) rename chat/core/src/main/java/com/tencent/supersonic/chat/service/{ChatKnowledgeService.java => KnowledgeService.java} (96%) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/agent/DataAnalyticsTool.java b/chat/core/src/main/java/com/tencent/supersonic/chat/agent/DataAnalyticsTool.java index a31643668..39327492e 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/agent/DataAnalyticsTool.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/agent/DataAnalyticsTool.java @@ -1,6 +1,6 @@ package com.tencent.supersonic.chat.agent; -import com.tencent.supersonic.chat.parser.llm.analytics.MetricOption; +import com.tencent.supersonic.chat.parser.analytics.MetricOption; import lombok.Data; import java.util.List; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/SchemaCorrector.java b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/SchemaCorrector.java index b164ab2ec..b5798d1d2 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/SchemaCorrector.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/SchemaCorrector.java @@ -3,7 +3,7 @@ package com.tencent.supersonic.chat.corrector; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.QueryReq; import com.tencent.supersonic.chat.api.pojo.response.SqlInfo; -import com.tencent.supersonic.chat.parser.llm.s2sql.ParseResult; +import com.tencent.supersonic.chat.parser.sql.llm.ParseResult; import com.tencent.supersonic.chat.query.llm.s2sql.LLMReq.ElementValue; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.util.JsonUtil; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java index 6c5388685..bf04def30 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/WhereCorrector.java @@ -6,7 +6,7 @@ import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.SemanticSchema; import com.tencent.supersonic.chat.api.pojo.request.QueryFilters; import com.tencent.supersonic.chat.api.pojo.request.QueryReq; -import com.tencent.supersonic.chat.parser.llm.s2sql.S2SQLDateHelper; +import com.tencent.supersonic.chat.parser.sql.llm.S2SqlDateHelper; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum; import com.tencent.supersonic.common.util.ContextUtils; @@ -76,7 +76,7 @@ public class WhereCorrector extends BaseSemanticCorrector { String correctS2SQL = semanticParseInfo.getSqlInfo().getCorrectS2SQL(); List whereFields = SqlParserSelectHelper.getWhereFields(correctS2SQL); if (CollectionUtils.isEmpty(whereFields) || !TimeDimensionEnum.containsZhTimeDimension(whereFields)) { - String currentDate = S2SQLDateHelper.getReferenceDate(semanticParseInfo.getModelId()); + String currentDate = S2SqlDateHelper.getReferenceDate(semanticParseInfo.getModelId()); if (StringUtils.isNotBlank(currentDate)) { correctS2SQL = SqlParserAddHelper.addParenthesisToWhere(correctS2SQL); correctS2SQL = SqlParserAddHelper.addWhere( diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/QueryTypeParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/QueryTypeParser.java index 852dd0b67..fdec994ae 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/QueryTypeParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/QueryTypeParser.java @@ -9,7 +9,7 @@ import com.tencent.supersonic.chat.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.SemanticSchema; import com.tencent.supersonic.chat.api.pojo.response.SqlInfo; -import com.tencent.supersonic.chat.query.llm.s2sql.S2SQLQuery; +import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery; import com.tencent.supersonic.chat.query.rule.RuleSemanticQuery; import com.tencent.supersonic.chat.service.SemanticService; import com.tencent.supersonic.common.pojo.QueryType; @@ -26,8 +26,7 @@ import java.util.Set; import java.util.stream.Collectors; /** - * Query type parser, determine if the query is a metric query, an entity query, - * or another type of query. + * QueryTypeParser resolves query type as either METRIC or TAG, or OTHER. */ @Slf4j public class QueryTypeParser implements SemanticParser { @@ -55,7 +54,7 @@ public class QueryTypeParser implements SemanticParser { } //1. entity queryType Set modelIds = parseInfo.getModel().getModelIds(); - if (semanticQuery instanceof RuleSemanticQuery || semanticQuery instanceof S2SQLQuery) { + if (semanticQuery instanceof RuleSemanticQuery || semanticQuery instanceof LLMSqlQuery) { //If all the fields in the SELECT statement are of tag type. List selectFields = SqlParserSelectHelper.getSelectFields(sqlInfo.getS2SQL()); SemanticService semanticService = ContextUtils.getBean(SemanticService.class); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/SatisfactionChecker.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/SatisfactionChecker.java index 2290d5440..b3cb12f2c 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/SatisfactionChecker.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/SatisfactionChecker.java @@ -5,7 +5,7 @@ import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.config.OptimizationConfig; -import com.tencent.supersonic.chat.query.llm.s2sql.S2SQLQuery; +import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery; import com.tencent.supersonic.common.util.ContextUtils; import lombok.extern.slf4j.Slf4j; @@ -20,7 +20,7 @@ public class SatisfactionChecker { // check all the parse info in candidate public static boolean check(QueryContext queryContext) { for (SemanticQuery query : queryContext.getCandidateQueries()) { - if (query.getQueryMode().equals(S2SQLQuery.QUERY_MODE)) { + if (query.getQueryMode().equals(LLMSqlQuery.QUERY_MODE)) { continue; } if (checkThreshold(queryContext.getRequest().getQueryText(), query.getParseInfo())) { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/analytics/MetricAnalyzeParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/analytics/MetricAnalyzeParser.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/analytics/MetricAnalyzeParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/analytics/MetricAnalyzeParser.java index 941816efa..f29a0ad63 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/analytics/MetricAnalyzeParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/analytics/MetricAnalyzeParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.analytics; +package com.tencent.supersonic.chat.parser.analytics; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Sets; @@ -17,7 +17,7 @@ import com.tencent.supersonic.chat.api.pojo.request.QueryReq; import com.tencent.supersonic.chat.parser.SatisfactionChecker; import com.tencent.supersonic.chat.query.QueryManager; import com.tencent.supersonic.chat.query.llm.LLMSemanticQuery; -import com.tencent.supersonic.chat.query.llm.interpret.MetricInterpretQuery; +import com.tencent.supersonic.chat.query.llm.analytics.MetricAnalyzeQuery; import com.tencent.supersonic.chat.service.AgentService; import com.tencent.supersonic.chat.service.SemanticService; import com.tencent.supersonic.common.pojo.DateConf; @@ -69,7 +69,7 @@ public class MetricAnalyzeParser implements SemanticParser { private void buildQuery(Long modelId, QueryContext queryContext, List metricIds, List schemaElementMatches, String toolName) { - LLMSemanticQuery metricInterpretQuery = QueryManager.createLLMQuery(MetricInterpretQuery.QUERY_MODE); + LLMSemanticQuery metricInterpretQuery = QueryManager.createLLMQuery(MetricAnalyzeQuery.QUERY_MODE); Set metrics = getMetrics(metricIds, modelId); SemanticParseInfo semanticParseInfo = buildSemanticParseInfo(modelId, queryContext.getRequest(), metrics, schemaElementMatches, toolName); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/analytics/MetricOption.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/analytics/MetricOption.java similarity index 76% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/analytics/MetricOption.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/analytics/MetricOption.java index a13e85f4e..80302abfb 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/analytics/MetricOption.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/analytics/MetricOption.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.analytics; +package com.tencent.supersonic.chat.parser.analytics; import lombok.AllArgsConstructor; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/ParseMode.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/ParseMode.java similarity index 56% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/ParseMode.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/ParseMode.java index d40c3d86f..e8c51b47f 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/ParseMode.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/ParseMode.java @@ -1,8 +1,7 @@ -package com.tencent.supersonic.chat.parser; +package com.tencent.supersonic.chat.parser.plugin; public enum ParseMode { - RULE, EMBEDDING_RECALL, FUNCTION_CALL; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingRecallParser.java similarity index 94% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingRecallParser.java index 0c95959da..0ce8732c9 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingRecallParser.java @@ -4,7 +4,7 @@ import com.google.common.collect.Lists; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.parser.PythonLLMProxy; import com.tencent.supersonic.chat.parser.LLMProxy; -import com.tencent.supersonic.chat.parser.ParseMode; +import com.tencent.supersonic.chat.parser.plugin.ParseMode; import com.tencent.supersonic.chat.parser.plugin.PluginParser; import com.tencent.supersonic.chat.plugin.Plugin; import com.tencent.supersonic.chat.plugin.PluginManager; @@ -23,7 +23,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.springframework.util.CollectionUtils; @Slf4j -public class EmbeddingBasedParser extends PluginParser { +public class EmbeddingRecallParser extends PluginParser { protected LLMProxy llmInterpreter = ComponentFactory.getLLMProxy(); @@ -71,7 +71,7 @@ public class EmbeddingBasedParser extends PluginParser { public List embeddingRecall(String embeddingText) { try { PluginManager pluginManager = ContextUtils.getBean(PluginManager.class); - EmbeddingResp embeddingResp = pluginManager.recognize(embeddingText); + RecallRetrievalResp embeddingResp = pluginManager.recognize(embeddingText); List embeddingRetrievals = embeddingResp.getRetrieval(); if (!CollectionUtils.isEmpty(embeddingRetrievals)) { embeddingRetrievals = embeddingRetrievals.stream().sorted(Comparator.comparingDouble(o -> diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingResp.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/RecallRetrievalResp.java similarity index 84% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingResp.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/RecallRetrievalResp.java index a73453446..2556be086 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingResp.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/RecallRetrievalResp.java @@ -6,7 +6,7 @@ import lombok.Data; import java.util.List; @Data -public class EmbeddingResp { +public class RecallRetrievalResp { private String query; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionCallParser.java similarity index 95% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionCallParser.java index 8c11c101e..3a07151b4 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionCallParser.java @@ -3,13 +3,13 @@ package com.tencent.supersonic.chat.parser.plugin.function; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.parser.PythonLLMProxy; import com.tencent.supersonic.chat.parser.LLMProxy; -import com.tencent.supersonic.chat.parser.ParseMode; +import com.tencent.supersonic.chat.parser.plugin.ParseMode; import com.tencent.supersonic.chat.parser.plugin.PluginParser; import com.tencent.supersonic.chat.plugin.Plugin; import com.tencent.supersonic.chat.plugin.PluginManager; import com.tencent.supersonic.chat.plugin.PluginParseConfig; import com.tencent.supersonic.chat.plugin.PluginRecallResult; -import com.tencent.supersonic.chat.query.llm.s2sql.S2SQLQuery; +import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery; import com.tencent.supersonic.chat.service.PluginService; import com.tencent.supersonic.chat.utils.ComponentFactory; import com.tencent.supersonic.common.util.ContextUtils; @@ -25,7 +25,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.springframework.util.CollectionUtils; @Slf4j -public class FunctionBasedParser extends PluginParser { +public class FunctionCallParser extends PluginParser { protected LLMProxy llmInterpreter = ComponentFactory.getLLMProxy(); @@ -97,7 +97,7 @@ public class FunctionBasedParser extends PluginParser { log.info("user decide Model:{}", modelId); List plugins = getPluginList(queryContext); List functionDOList = plugins.stream().filter(plugin -> { - if (S2SQLQuery.QUERY_MODE.equalsIgnoreCase(plugin.getType())) { + if (LLMSqlQuery.QUERY_MODE.equalsIgnoreCase(plugin.getType())) { return false; } if (plugin.getParseModeConfig() == null) { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/RuleBasedParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/RuleBasedParser.java deleted file mode 100644 index d2e82cbb1..000000000 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/RuleBasedParser.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.tencent.supersonic.chat.parser.rule; - -import com.tencent.supersonic.chat.api.component.SemanticParser; -import com.tencent.supersonic.chat.api.pojo.ChatContext; -import com.tencent.supersonic.chat.api.pojo.QueryContext; -import lombok.extern.slf4j.Slf4j; - -import java.util.Arrays; -import java.util.List; - -/** - * RuleBasedParser acts as a container that incorporates a group of - * rule-based semantic parsers. - */ -@Slf4j -public class RuleBasedParser implements SemanticParser { - - private static List ruleParsers = Arrays.asList( - new QueryModeParser(), - new ContextInheritParser(), - new AgentCheckParser(), - new TimeRangeParser(), - new AggregateTypeParser() - ); - - @Override - public void parse(QueryContext queryContext, ChatContext chatContext) { - ruleParsers.stream().forEach(p -> p.parse(queryContext, chatContext)); - } -} diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/HeuristicModelResolver.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/HeuristicModelResolver.java similarity index 99% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/HeuristicModelResolver.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/HeuristicModelResolver.java index 17259ab20..20187f1d4 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/HeuristicModelResolver.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/HeuristicModelResolver.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.ChatContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMRequestService.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMRequestService.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMRequestService.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMRequestService.java index 4016a899a..46265a287 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMRequestService.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMRequestService.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.agent.AgentToolType; import com.tencent.supersonic.chat.agent.NL2SQLTool; @@ -63,11 +63,11 @@ public class LLMRequestService { public boolean check(QueryContext queryCtx) { QueryReq request = queryCtx.getRequest(); if (StringUtils.isEmpty(llmParserConfig.getUrl())) { - log.info("llm parser url is empty, skip {} , llmParserConfig:{}", LLMS2SQLParser.class, llmParserConfig); + log.info("llm parser url is empty, skip {} , llmParserConfig:{}", LLMSqlParser.class, llmParserConfig); return true; } if (SatisfactionChecker.check(queryCtx)) { - log.info("skip {}, queryText:{}", LLMS2SQLParser.class, request.getQueryText()); + log.info("skip {}, queryText:{}", LLMSqlParser.class, request.getQueryText()); return true; } return false; @@ -134,7 +134,7 @@ public class LLMRequestService { } llmReq.setLinking(linking); - String currentDate = S2SQLDateHelper.getReferenceDate(firstModelId); + String currentDate = S2SqlDateHelper.getReferenceDate(firstModelId); if (StringUtils.isEmpty(currentDate)) { currentDate = DateUtils.getBeforeDate(0); } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseService.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMResponseService.java similarity index 94% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseService.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMResponseService.java index 1843332e1..f706523f5 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseService.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMResponseService.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.agent.NL2SQLTool; import com.tencent.supersonic.chat.api.pojo.QueryContext; @@ -6,7 +6,7 @@ import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.query.QueryManager; import com.tencent.supersonic.chat.query.llm.LLMSemanticQuery; import com.tencent.supersonic.chat.query.llm.s2sql.LLMResp; -import com.tencent.supersonic.chat.query.llm.s2sql.S2SQLQuery; +import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.util.jsqlparser.SqlParserEqualHelper; import lombok.extern.slf4j.Slf4j; @@ -25,7 +25,7 @@ public class LLMResponseService { if (Objects.isNull(weight)) { weight = 0D; } - LLMSemanticQuery semanticQuery = QueryManager.createLLMQuery(S2SQLQuery.QUERY_MODE); + LLMSemanticQuery semanticQuery = QueryManager.createLLMQuery(LLMSqlQuery.QUERY_MODE); SemanticParseInfo parseInfo = semanticQuery.getParseInfo(); parseInfo.setModel(parseResult.getModelCluster()); NL2SQLTool commonAgentTool = parseResult.getCommonAgentTool(); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMS2SQLParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMSqlParser.java similarity index 94% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMS2SQLParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMSqlParser.java index 5b2db2c00..4987f3bf3 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMS2SQLParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/LLMSqlParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.agent.NL2SQLTool; import com.tencent.supersonic.chat.api.component.SemanticParser; @@ -21,7 +21,7 @@ import java.util.Map; import java.util.Objects; @Slf4j -public class LLMS2SQLParser implements SemanticParser { +public class LLMSqlParser implements SemanticParser { @Override public void parse(QueryContext queryCtx, ChatContext chatCtx) { @@ -41,7 +41,7 @@ public class LLMS2SQLParser implements SemanticParser { //3.get agent tool and determine whether to skip this parser. NL2SQLTool commonAgentTool = requestService.getParserTool(request, modelCluster.getModelIds()); if (Objects.isNull(commonAgentTool)) { - log.info("no tool in this agent, skip {}", LLMS2SQLParser.class); + log.info("no tool in this agent, skip {}", LLMSqlParser.class); return; } //4.construct a request, call the API for the large model, and retrieve the results. diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ModelMatchResult.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ModelMatchResult.java similarity index 70% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ModelMatchResult.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ModelMatchResult.java index 56b41b77b..9da966920 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ModelMatchResult.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ModelMatchResult.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import lombok.Data; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ModelResolver.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ModelResolver.java similarity index 83% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ModelResolver.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ModelResolver.java index 58c995fc9..ff9e5de64 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ModelResolver.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ModelResolver.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.api.pojo.ChatContext; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ParseResult.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ParseResult.java similarity index 93% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ParseResult.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ParseResult.java index d7aec0ec9..b40f544b1 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/ParseResult.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/ParseResult.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.agent.NL2SQLTool; import com.tencent.supersonic.chat.api.pojo.request.QueryReq; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/S2SQLDateHelper.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/S2SqlDateHelper.java similarity index 95% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/S2SQLDateHelper.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/S2SqlDateHelper.java index 0230d2192..1f32823ee 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/llm/s2sql/S2SQLDateHelper.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/llm/S2SqlDateHelper.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.llm.s2sql; +package com.tencent.supersonic.chat.parser.sql.llm; import com.tencent.supersonic.chat.api.pojo.request.ChatConfigFilter; import com.tencent.supersonic.chat.api.pojo.request.ChatDefaultConfigReq; @@ -11,7 +11,7 @@ import java.util.List; import java.util.Objects; import org.apache.commons.collections.CollectionUtils; -public class S2SQLDateHelper { +public class S2SqlDateHelper { public static String getReferenceDate(Long modelId) { String defaultDate = DateUtils.getBeforeDate(0); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/AgentCheckParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/AgentCheckParser.java similarity index 98% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/AgentCheckParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/AgentCheckParser.java index 3daa975f2..84b7c9327 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/AgentCheckParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/AgentCheckParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.rule; +package com.tencent.supersonic.chat.parser.sql.rule; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/AggregateTypeParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/AggregateTypeParser.java similarity index 98% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/AggregateTypeParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/AggregateTypeParser.java index 8172be750..68c05813b 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/AggregateTypeParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/AggregateTypeParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.rule; +package com.tencent.supersonic.chat.parser.sql.rule; import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.AVG; import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.COUNT; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/ContextInheritParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/ContextInheritParser.java similarity index 99% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/ContextInheritParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/ContextInheritParser.java index 27c493a96..21024f416 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/ContextInheritParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/ContextInheritParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.rule; +package com.tencent.supersonic.chat.parser.sql.rule; import com.tencent.supersonic.chat.api.component.SemanticParser; import com.tencent.supersonic.chat.api.component.SemanticQuery; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/QueryModeParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/RuleSqlParser.java similarity index 70% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/QueryModeParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/RuleSqlParser.java index b8435776b..55c7e1a8f 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/QueryModeParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/RuleSqlParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.rule; +package com.tencent.supersonic.chat.parser.sql.rule; import com.tencent.supersonic.chat.api.component.SemanticParser; import com.tencent.supersonic.chat.api.pojo.ChatContext; @@ -8,14 +8,22 @@ import com.tencent.supersonic.chat.api.pojo.SchemaModelClusterMapInfo; import com.tencent.supersonic.chat.query.rule.RuleSemanticQuery; import lombok.extern.slf4j.Slf4j; +import java.util.Arrays; import java.util.List; /** - * QueryModeParser resolves a specific query mode according to co-appearance + * RuleSqlParser resolves a specific SemanticQuery according to co-appearance * of certain schema element types. */ @Slf4j -public class QueryModeParser implements SemanticParser { +public class RuleSqlParser implements SemanticParser { + + private static List auxiliaryParsers = Arrays.asList( + new ContextInheritParser(), + new AgentCheckParser(), + new TimeRangeParser(), + new AggregateTypeParser() + ); @Override public void parse(QueryContext queryContext, ChatContext chatContext) { @@ -29,6 +37,7 @@ public class QueryModeParser implements SemanticParser { queryContext.getCandidateQueries().add(query); } } - } + auxiliaryParsers.stream().forEach(p -> p.parse(queryContext, chatContext)); + } } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/TimeRangeParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/TimeRangeParser.java similarity index 99% rename from chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/TimeRangeParser.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/TimeRangeParser.java index 4024c96ea..bc38c89ee 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/rule/TimeRangeParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/sql/rule/TimeRangeParser.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.parser.rule; +package com.tencent.supersonic.chat.parser.sql.rule; import com.tencent.supersonic.chat.api.component.SemanticParser; import com.tencent.supersonic.chat.api.component.SemanticQuery; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/Plugin.java b/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/Plugin.java index c82980567..5b5a18c60 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/Plugin.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/Plugin.java @@ -3,7 +3,7 @@ package com.tencent.supersonic.chat.plugin; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; -import com.tencent.supersonic.chat.parser.ParseMode; +import com.tencent.supersonic.chat.parser.plugin.ParseMode; import com.tencent.supersonic.common.pojo.RecordInfo; import lombok.Data; import org.apache.commons.collections.CollectionUtils; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/PluginManager.java b/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/PluginManager.java index f029fae66..88da9ed57 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/PluginManager.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/plugin/PluginManager.java @@ -12,7 +12,7 @@ import com.tencent.supersonic.chat.agent.Agent; import com.tencent.supersonic.chat.agent.AgentToolType; import com.tencent.supersonic.chat.agent.PluginTool; import com.tencent.supersonic.common.config.EmbeddingConfig; -import com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingResp; +import com.tencent.supersonic.chat.parser.plugin.embedding.RecallRetrievalResp; import com.tencent.supersonic.chat.parser.plugin.embedding.RecallRetrieval; import com.tencent.supersonic.chat.plugin.event.PluginAddEvent; import com.tencent.supersonic.chat.plugin.event.PluginDelEvent; @@ -165,7 +165,7 @@ public class PluginManager { requestEmbeddingPluginAdd(convert(plugins)); } - public EmbeddingResp recognize(String embeddingText) { + public RecallRetrievalResp recognize(String embeddingText) { String url = embeddingConfig.getUrl() + embeddingConfig.getRecognizePath() + "?n_results=" + embeddingConfig.getNResult(); HttpHeaders headers = new HttpHeaders(); @@ -176,14 +176,14 @@ public class PluginManager { String jsonBody = JSONObject.toJSONString(Lists.newArrayList(embeddingText)); HttpEntity entity = new HttpEntity<>(jsonBody, headers); log.info("[embedding] request body:{}, url:{}", jsonBody, url); - ResponseEntity> embeddingResponseEntity = + ResponseEntity> embeddingResponseEntity = restTemplate.exchange(requestUrl, HttpMethod.POST, entity, - new ParameterizedTypeReference>() { + new ParameterizedTypeReference>() { }); log.info("[embedding] recognize result body:{}", embeddingResponseEntity); - List embeddingResps = embeddingResponseEntity.getBody(); + List embeddingResps = embeddingResponseEntity.getBody(); if (CollectionUtils.isNotEmpty(embeddingResps)) { - for (EmbeddingResp embeddingResp : embeddingResps) { + for (RecallRetrievalResp embeddingResp : embeddingResps) { List embeddingRetrievals = embeddingResp.getRetrieval(); for (RecallRetrieval embeddingRetrieval : embeddingRetrievals) { embeddingRetrieval.setId(getPluginIdFromEmbeddingId(embeddingRetrieval.getId())); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java index 69f254f5e..1d1b47d42 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/EntityInfoProcessor.java @@ -8,7 +8,7 @@ import com.tencent.supersonic.chat.api.pojo.request.QueryReq; import com.tencent.supersonic.chat.api.pojo.response.EntityInfo; import com.tencent.supersonic.chat.api.pojo.response.ParseResp; import com.tencent.supersonic.chat.query.QueryManager; -import com.tencent.supersonic.chat.query.llm.interpret.MetricInterpretQuery; +import com.tencent.supersonic.chat.query.llm.analytics.MetricAnalyzeQuery; import com.tencent.supersonic.chat.service.SemanticService; import com.tencent.supersonic.common.util.ContextUtils; import org.springframework.util.CollectionUtils; @@ -16,7 +16,11 @@ import org.springframework.util.CollectionUtils; import java.util.List; import java.util.stream.Collectors; -public class EntityInfoProcessor implements ResponseProcessor { +/** + * EntityInfoProcessor fills core attributes of an entity so that + * users get to know which entity is parsed out. + */ +public class EntityInfoProcessor implements ParseResultProcessor { @Override public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) { @@ -30,7 +34,7 @@ public class EntityInfoProcessor implements ResponseProcessor { selectedParses.forEach(parseInfo -> { String queryMode = parseInfo.getQueryMode(); if (QueryManager.containsPluginQuery(queryMode) - || MetricInterpretQuery.QUERY_MODE.equalsIgnoreCase(queryMode)) { + || MetricAnalyzeQuery.QUERY_MODE.equalsIgnoreCase(queryMode)) { return; } //1. set entity info diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java index 8cae5b081..1db5acba1 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/MetricCheckProcessor.java @@ -27,10 +27,10 @@ import java.util.Set; import java.util.stream.Collectors; /** - * MetricCheckProcessor used to verify whether the dimensions + * MetricCheckProcessor verifies whether the dimensions * involved in the query in metric mode can drill down on the metric. */ -public class MetricCheckProcessor implements ResponseProcessor { +public class MetricCheckProcessor implements ParseResultProcessor { @Override public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java index 8f766a41b..6c1277063 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseInfoProcessor.java @@ -33,10 +33,11 @@ import java.util.Set; import java.util.stream.Collectors; /** - * update parse info from correct sql - */ + * ParseInfoProcessor extracts structured info from S2SQL so that + * users get to know the details. + **/ @Slf4j -public class ParseInfoProcessor implements ResponseProcessor { +public class ParseInfoProcessor implements ParseResultProcessor { @Override public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) { @@ -71,6 +72,7 @@ public class ParseInfoProcessor implements ResponseProcessor { } catch (Exception e) { log.error("set dateInfo error :", e); } + //set filter Set modelIds = parseInfo.getModel().getModelIds(); try { @@ -80,6 +82,7 @@ public class ParseInfoProcessor implements ResponseProcessor { } catch (Exception e) { log.error("set dimensionFilter error :", e); } + SemanticSchema semanticSchema = ContextUtils.getBean(SchemaService.class).getSemanticSchema(); if (Objects.isNull(semanticSchema)) { return; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResponseProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseResultProcessor.java similarity index 73% rename from chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResponseProcessor.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseResultProcessor.java index c53432551..6b8c55cac 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ResponseProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/ParseResultProcessor.java @@ -4,9 +4,9 @@ import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.api.pojo.response.ParseResp; /** - * A response processor wraps things up before responding to users. + * A ParseResultProcessor wraps things up before returning results to users. */ -public interface ResponseProcessor { +public interface ParseResultProcessor { void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java index 1899f1a7a..2edc53ae1 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/QueryRankProcessor.java @@ -15,10 +15,11 @@ import java.util.List; import java.util.stream.Collectors; /** - * Rank queries by score. - */ + * QueryRankProcessor ranks candidate parsing results based on + * a heuristic scoring algorithm and then takes topN. + **/ @Slf4j -public class QueryRankProcessor implements ResponseProcessor { +public class QueryRankProcessor implements ParseResultProcessor { private static final int candidateTopSize = 5; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java index a73ce238e..b5c04cce4 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/RespBuildProcessor.java @@ -12,8 +12,11 @@ import lombok.extern.slf4j.Slf4j; import java.util.List; import java.util.stream.Collectors; +/** + * RespBuildProcessor fill response object with parsing results. + **/ @Slf4j -public class RespBuildProcessor implements ResponseProcessor { +public class RespBuildProcessor implements ParseResultProcessor { @Override public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java index bd39261ba..6ea5ff2e1 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/SqlInfoProcessor.java @@ -13,7 +13,11 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -public class SqlInfoProcessor implements ResponseProcessor { +/** + * SqlInfoProcessor adds S2SQL to the parsing results so that + * technical users could verify SQL by themselves. + **/ +public class SqlInfoProcessor implements ParseResultProcessor { @Override public void process(ParseResp parseResp, QueryContext queryContext, ChatContext chatContext) { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java index fe22cedd6..aa5118367 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/processor/TimeCostProcessor.java @@ -5,8 +5,11 @@ import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.api.pojo.response.ParseResp; import lombok.extern.slf4j.Slf4j; +/** + * TimeCostProcessor adds time cost of parsing. + **/ @Slf4j -public class TimeCostProcessor implements ResponseProcessor { +public class TimeCostProcessor implements ParseResultProcessor { @Override diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/EntityInfoQueryResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/EntityInfoQueryResponder.java similarity index 69% rename from chat/core/src/main/java/com/tencent/supersonic/chat/responder/EntityInfoQueryResponder.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/EntityInfoQueryResponder.java index 1b673d6e2..1ae6d0118 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/EntityInfoQueryResponder.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/EntityInfoQueryResponder.java @@ -1,25 +1,28 @@ -package com.tencent.supersonic.chat.responder; +package com.tencent.supersonic.chat.query; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.ExecuteQueryReq; import com.tencent.supersonic.chat.api.pojo.response.EntityInfo; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; -import com.tencent.supersonic.chat.query.QueryManager; -import com.tencent.supersonic.chat.query.llm.interpret.MetricInterpretQuery; +import com.tencent.supersonic.chat.query.llm.analytics.MetricAnalyzeQuery; import com.tencent.supersonic.chat.service.SemanticService; import com.tencent.supersonic.common.util.ContextUtils; +/** + * EntityInfoQueryResponder fills core attributes of an entity so that + * users get to know which entity is returned. + */ public class EntityInfoQueryResponder implements QueryResponder { @Override - public void fillResponse(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { + public void fillInfo(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { if (semanticParseInfo == null) { return; } String queryMode = semanticParseInfo.getQueryMode(); if (QueryManager.containsPluginQuery(queryMode) - || MetricInterpretQuery.QUERY_MODE.equalsIgnoreCase(queryMode)) { + || MetricAnalyzeQuery.QUERY_MODE.equalsIgnoreCase(queryMode)) { return; } SemanticService semanticService = ContextUtils.getBean(SemanticService.class); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/QueryResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java similarity index 50% rename from chat/core/src/main/java/com/tencent/supersonic/chat/responder/QueryResponder.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java index 4dd5b3980..0c89726ff 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/QueryResponder.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/QueryResponder.java @@ -1,11 +1,14 @@ -package com.tencent.supersonic.chat.responder; +package com.tencent.supersonic.chat.query; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.ExecuteQueryReq; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; +/** + * A query responder fill some auxiliary information into query results. + */ public interface QueryResponder { - void fillResponse(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq); + void fillInfo(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq); } \ No newline at end of file diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/SimilarMetricQueryResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/SimilarMetricQueryResponder.java similarity index 93% rename from chat/core/src/main/java/com/tencent/supersonic/chat/responder/SimilarMetricQueryResponder.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/SimilarMetricQueryResponder.java index abf16a074..3f3a0e616 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/SimilarMetricQueryResponder.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/SimilarMetricQueryResponder.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.responder; +package com.tencent.supersonic.chat.query; import com.alibaba.fastjson.JSONObject; import com.tencent.supersonic.chat.api.pojo.SchemaElement; @@ -22,12 +22,15 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +/** + * SimilarMetricQueryResponder fills recommended metrics based on embedding similarity. + */ public class SimilarMetricQueryResponder implements QueryResponder { private static final int METRIC_RECOMMEND_SIZE = 5; @Override - public void fillResponse(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { + public void fillInfo(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { fillSimilarMetric(queryResult.getChatContext()); } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/LLMSemanticQuery.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/LLMSemanticQuery.java index 3fcb0be8b..283b774ff 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/LLMSemanticQuery.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/LLMSemanticQuery.java @@ -1,14 +1,8 @@ package com.tencent.supersonic.chat.query.llm; -import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.chat.query.BaseSemanticQuery; import lombok.extern.slf4j.Slf4j; @Slf4j public abstract class LLMSemanticQuery extends BaseSemanticQuery { - - @Override - public void initS2Sql(User user) { - - } } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/LLMAnswerReq.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/LLMAnswerReq.java similarity index 68% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/LLMAnswerReq.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/LLMAnswerReq.java index abeee4320..27723d3c5 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/LLMAnswerReq.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/LLMAnswerReq.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.query.llm.interpret; +package com.tencent.supersonic.chat.query.llm.analytics; import lombok.Data; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/LLMAnswerResp.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/LLMAnswerResp.java similarity index 63% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/LLMAnswerResp.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/LLMAnswerResp.java index e54130739..bce185a30 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/LLMAnswerResp.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/LLMAnswerResp.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.query.llm.interpret; +package com.tencent.supersonic.chat.query.llm.analytics; import lombok.Data; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/MetricInterpretQuery.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/MetricAnalyzeQuery.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/MetricInterpretQuery.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/MetricAnalyzeQuery.java index a1c397ec7..d6323ef88 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/interpret/MetricInterpretQuery.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/analytics/MetricAnalyzeQuery.java @@ -1,4 +1,4 @@ -package com.tencent.supersonic.chat.query.llm.interpret; +package com.tencent.supersonic.chat.query.llm.analytics; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; @@ -36,13 +36,13 @@ import org.springframework.util.CollectionUtils; @Slf4j @Component -public class MetricInterpretQuery extends LLMSemanticQuery { +public class MetricAnalyzeQuery extends LLMSemanticQuery { public static final String QUERY_MODE = "METRIC_INTERPRET"; - public MetricInterpretQuery() { + public MetricAnalyzeQuery() { QueryManager.register(this); } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/S2SQLQuery.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/LLMSqlQuery.java similarity index 97% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/S2SQLQuery.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/LLMSqlQuery.java index 87a2de53b..29f98a119 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/S2SQLQuery.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/llm/s2sql/LLMSqlQuery.java @@ -22,12 +22,12 @@ import java.util.Objects; @Slf4j @Component -public class S2SQLQuery extends LLMSemanticQuery { +public class LLMSqlQuery extends LLMSemanticQuery { public static final String QUERY_MODE = "LLM_S2SQL"; protected SemanticInterpreter semanticInterpreter = ComponentFactory.getSemanticLayer(); - public S2SQLQuery() { + public LLMSqlQuery() { QueryManager.register(this); } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageQuery.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageQuery.java index 6cf8143e4..8b61d9045 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageQuery.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageQuery.java @@ -48,15 +48,15 @@ public class WebPageQuery extends PluginSemanticQuery { Map properties = parseInfo.getProperties(); PluginParseResult pluginParseResult = JsonUtil.toObject(JsonUtil.toString(properties.get(Constants.CONTEXT)), PluginParseResult.class); - WebPageResponse webPageResponse = buildResponse(pluginParseResult); + WebPageResp webPageResponse = buildResponse(pluginParseResult); queryResult.setResponse(webPageResponse); queryResult.setQueryState(QueryState.SUCCESS); return queryResult; } - protected WebPageResponse buildResponse(PluginParseResult pluginParseResult) { + protected WebPageResp buildResponse(PluginParseResult pluginParseResult) { Plugin plugin = pluginParseResult.getPlugin(); - WebPageResponse webPageResponse = new WebPageResponse(); + WebPageResp webPageResponse = new WebPageResp(); webPageResponse.setName(plugin.getName()); webPageResponse.setPluginId(plugin.getId()); webPageResponse.setPluginType(plugin.getType()); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageResponse.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageResp.java similarity index 92% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageResponse.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageResp.java index cda73c496..dff378dab 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageResponse.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webpage/WebPageResp.java @@ -5,7 +5,7 @@ import lombok.Data; import java.util.List; @Data -public class WebPageResponse { +public class WebPageResp { private Long pluginId; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceQuery.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceQuery.java index c8d75016e..9664bd049 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceQuery.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceQuery.java @@ -56,7 +56,7 @@ public class WebServiceQuery extends PluginSemanticQuery { Map properties = parseInfo.getProperties(); PluginParseResult pluginParseResult = JsonUtil.toObject( JsonUtil.toString(properties.get(Constants.CONTEXT)), PluginParseResult.class); - WebServiceResponse webServiceResponse = buildResponse(pluginParseResult); + WebServiceResp webServiceResponse = buildResponse(pluginParseResult); Object object = webServiceResponse.getResult(); // in order to show webServiceQuery result int frontend conveniently, // webServiceResponse result format is consistent with queryByStruct result. @@ -72,8 +72,8 @@ public class WebServiceQuery extends PluginSemanticQuery { return queryResult; } - protected WebServiceResponse buildResponse(PluginParseResult pluginParseResult) { - WebServiceResponse webServiceResponse = new WebServiceResponse(); + protected WebServiceResp buildResponse(PluginParseResult pluginParseResult) { + WebServiceResp webServiceResponse = new WebServiceResp(); Plugin plugin = pluginParseResult.getPlugin(); WebBase webBase = JsonUtil.toObject(plugin.getConfig(), WebBase.class); webServiceResponse.setWebBase(webBase); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceResponse.java b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceResp.java similarity index 85% rename from chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceResponse.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceResp.java index bab6c3c7f..6ff9a377a 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceResponse.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/query/plugin/webservice/WebServiceResp.java @@ -5,7 +5,7 @@ import lombok.Data; @Data -public class WebServiceResponse { +public class WebServiceResp { private WebBase webBase; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/rest/KnowledgeController.java b/chat/core/src/main/java/com/tencent/supersonic/chat/rest/KnowledgeController.java index a46f53108..c748477b5 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/rest/KnowledgeController.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/rest/KnowledgeController.java @@ -5,7 +5,7 @@ import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.auth.api.authentication.utils.UserHolder; import com.tencent.supersonic.chat.api.pojo.request.DictLatestTaskReq; import com.tencent.supersonic.chat.api.pojo.response.DictLatestTaskResp; -import com.tencent.supersonic.chat.service.ChatKnowledgeService; +import com.tencent.supersonic.chat.service.KnowledgeService; import com.tencent.supersonic.knowledge.listener.ApplicationStartedListener; import com.tencent.supersonic.chat.api.pojo.request.DictTaskFilterReq; import com.tencent.supersonic.knowledge.dictionary.DimValue2DictCommand; @@ -30,7 +30,7 @@ import org.springframework.web.bind.annotation.PutMapping; public class KnowledgeController { @Autowired - private ChatKnowledgeService knowledgeService; + private KnowledgeService knowledgeService; @Autowired private ApplicationStartedListener applicationStartedListener; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/ChatKnowledgeService.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/KnowledgeService.java similarity index 96% rename from chat/core/src/main/java/com/tencent/supersonic/chat/service/ChatKnowledgeService.java rename to chat/core/src/main/java/com/tencent/supersonic/chat/service/KnowledgeService.java index c57b1d3e9..ea441a9b1 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/ChatKnowledgeService.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/KnowledgeService.java @@ -10,7 +10,7 @@ import com.tencent.supersonic.knowledge.dictionary.DimValueDictInfo; import java.util.List; -public interface ChatKnowledgeService { +public interface KnowledgeService { Long addDictTask(DimValue2DictCommand dimValue2DictCommend, User user); Long deleteDictTask(DimValue2DictCommand dimValue2DictCommend, User user); diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatKnowledgeServiceImpl.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatKnowledgeServiceImpl.java index eccdb5fb5..cdd35f41d 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatKnowledgeServiceImpl.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/ChatKnowledgeServiceImpl.java @@ -6,7 +6,7 @@ import com.tencent.supersonic.chat.api.pojo.response.DictLatestTaskResp; import com.tencent.supersonic.chat.config.DefaultMetric; import com.tencent.supersonic.chat.config.Dim4Dict; import com.tencent.supersonic.chat.persistence.dataobject.DimValueDO; -import com.tencent.supersonic.chat.service.ChatKnowledgeService; +import com.tencent.supersonic.chat.service.KnowledgeService; import com.tencent.supersonic.chat.utils.DictMetaHelper; import com.tencent.supersonic.chat.utils.DictQueryHelper; import com.tencent.supersonic.common.pojo.Constants; @@ -42,7 +42,7 @@ import java.util.HashMap; @Slf4j @Service -public class ChatKnowledgeServiceImpl implements ChatKnowledgeService { +public class ChatKnowledgeServiceImpl implements KnowledgeService { private final DictMetaHelper metaUtils; private final DictQueryHelper dictQueryHelper; diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java index cd2756f96..ff4710058 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java @@ -28,11 +28,11 @@ import com.tencent.supersonic.chat.persistence.dataobject.ChatParseDO; import com.tencent.supersonic.chat.persistence.dataobject.ChatQueryDO; import com.tencent.supersonic.chat.persistence.dataobject.CostType; import com.tencent.supersonic.chat.persistence.dataobject.StatisticsDO; -import com.tencent.supersonic.chat.processor.ResponseProcessor; +import com.tencent.supersonic.chat.processor.ParseResultProcessor; import com.tencent.supersonic.chat.query.QueryManager; -import com.tencent.supersonic.chat.query.llm.s2sql.S2SQLQuery; +import com.tencent.supersonic.chat.query.llm.s2sql.LLMSqlQuery; import com.tencent.supersonic.chat.query.rule.RuleSemanticQuery; -import com.tencent.supersonic.chat.responder.QueryResponder; +import com.tencent.supersonic.chat.query.QueryResponder; import com.tencent.supersonic.chat.service.ChatService; import com.tencent.supersonic.chat.service.QueryService; import com.tencent.supersonic.chat.service.SemanticService; @@ -111,7 +111,7 @@ public class QueryServiceImpl implements QueryService { private List schemaMappers = ComponentFactory.getSchemaMappers(); private List semanticParsers = ComponentFactory.getSemanticParsers(); - private List responseProcessors = ComponentFactory.getPostProcessors(); + private List responseProcessors = ComponentFactory.getPostProcessors(); private List executeResponders = ComponentFactory.getExecuteResponders(); private List semanticCorrectors = ComponentFactory.getSemanticCorrectors(); @@ -208,7 +208,7 @@ public class QueryServiceImpl implements QueryService { chatCtx.setQueryText(queryReq.getQueryText()); chatCtx.setUser(queryReq.getUser().getName()); for (QueryResponder executeResponder : executeResponders) { - executeResponder.fillResponse(queryResult, parseInfo, queryReq); + executeResponder.fillInfo(queryResult, parseInfo, queryReq); } chatService.updateQuery(queryReq.getQueryId(), queryResult, chatCtx); } else { @@ -277,7 +277,7 @@ public class QueryServiceImpl implements QueryService { //replace metrics log.info("llm begin replace metrics!"); replaceMetrics(parseInfo, metrics); - } else if (S2SQLQuery.QUERY_MODE.equals(parseInfo.getQueryMode())) { + } else if (LLMSqlQuery.QUERY_MODE.equals(parseInfo.getQueryMode())) { log.info("llm begin revise filters!"); String correctorSql = reviseCorrectS2SQL(queryData, parseInfo); parseInfo.getSqlInfo().setCorrectS2SQL(correctorSql); @@ -536,7 +536,7 @@ public class QueryServiceImpl implements QueryService { private SemanticParseInfo getSemanticParseInfo(QueryDataReq queryData, ChatParseDO chatParseDO) { SemanticParseInfo parseInfo = JsonUtil.toObject(chatParseDO.getParseInfo(), SemanticParseInfo.class); - if (S2SQLQuery.QUERY_MODE.equals(parseInfo.getQueryMode())) { + if (LLMSqlQuery.QUERY_MODE.equals(parseInfo.getQueryMode())) { return parseInfo; } if (CollectionUtils.isNotEmpty(queryData.getDimensions())) { diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java index 14f2ba3e8..3ac663f83 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/ComponentFactory.java @@ -5,9 +5,9 @@ import com.tencent.supersonic.chat.api.component.SemanticCorrector; import com.tencent.supersonic.chat.api.component.SemanticInterpreter; import com.tencent.supersonic.chat.api.component.SemanticParser; import com.tencent.supersonic.chat.parser.LLMProxy; -import com.tencent.supersonic.chat.parser.llm.s2sql.ModelResolver; -import com.tencent.supersonic.chat.processor.ResponseProcessor; -import com.tencent.supersonic.chat.responder.QueryResponder; +import com.tencent.supersonic.chat.parser.sql.llm.ModelResolver; +import com.tencent.supersonic.chat.processor.ParseResultProcessor; +import com.tencent.supersonic.chat.query.QueryResponder; import org.apache.commons.collections.CollectionUtils; import org.springframework.core.io.support.SpringFactoriesLoader; import java.util.ArrayList; @@ -22,7 +22,7 @@ public class ComponentFactory { private static SemanticInterpreter semanticInterpreter; private static LLMProxy llmProxy; - private static List responseProcessors = new ArrayList<>(); + private static List responseProcessors = new ArrayList<>(); private static List executeResponders = new ArrayList<>(); private static ModelResolver modelResolver; @@ -39,8 +39,8 @@ public class ComponentFactory { semanticCorrectors) : semanticCorrectors; } - public static List getPostProcessors() { - return CollectionUtils.isEmpty(responseProcessors) ? init(ResponseProcessor.class, + public static List getPostProcessors() { + return CollectionUtils.isEmpty(responseProcessors) ? init(ParseResultProcessor.class, responseProcessors) : responseProcessors; } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/SolvedQueryManager.java b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/SolvedQueryManager.java index 45af0f6b5..c2a9eed36 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/SolvedQueryManager.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/SolvedQueryManager.java @@ -6,7 +6,7 @@ import com.google.common.collect.Lists; import com.tencent.supersonic.chat.api.pojo.request.SolvedQueryReq; import com.tencent.supersonic.chat.api.pojo.response.SolvedQueryRecallResp; import com.tencent.supersonic.common.config.EmbeddingConfig; -import com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingResp; +import com.tencent.supersonic.chat.parser.plugin.embedding.RecallRetrievalResp; import com.tencent.supersonic.chat.parser.plugin.embedding.RecallRetrieval; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -82,15 +82,15 @@ public class SolvedQueryManager { HttpEntity entity = new HttpEntity<>(jsonBody, headers); log.info("[embedding] request body:{}, url:{}", jsonBody, url); RestTemplate restTemplate = new RestTemplate(); - ResponseEntity> embeddingResponseEntity = + ResponseEntity> embeddingResponseEntity = restTemplate.exchange(requestUrl, HttpMethod.POST, entity, - new ParameterizedTypeReference>() { + new ParameterizedTypeReference>() { }); log.info("[embedding] recognize result body:{}", embeddingResponseEntity); - List embeddingResps = embeddingResponseEntity.getBody(); + List embeddingResps = embeddingResponseEntity.getBody(); Set querySet = new HashSet<>(); if (CollectionUtils.isNotEmpty(embeddingResps)) { - for (EmbeddingResp embeddingResp : embeddingResps) { + for (RecallRetrievalResp embeddingResp : embeddingResps) { List embeddingRetrievals = embeddingResp.getRetrieval(); for (RecallRetrieval embeddingRetrieval : embeddingRetrievals) { if (queryText.equalsIgnoreCase(embeddingRetrieval.getQuery())) { diff --git a/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/TimeRangeParserTest.java b/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/TimeRangeParserTest.java index f4e136a1c..3a129bffd 100644 --- a/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/TimeRangeParserTest.java +++ b/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/TimeRangeParserTest.java @@ -3,7 +3,7 @@ package com.tencent.supersonic.chat.application.parser; import com.tencent.supersonic.chat.api.pojo.ChatContext; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.api.pojo.request.QueryReq; -import com.tencent.supersonic.chat.parser.rule.TimeRangeParser; +import com.tencent.supersonic.chat.parser.sql.rule.TimeRangeParser; import org.junit.jupiter.api.Test; diff --git a/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/aggregate/AggregateTypeParserTest.java b/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/aggregate/AggregateTypeParserTest.java index 2677ef2e8..f56082ad3 100644 --- a/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/aggregate/AggregateTypeParserTest.java +++ b/chat/core/src/test/java/com/tencent/supersonic/chat/application/parser/aggregate/AggregateTypeParserTest.java @@ -2,7 +2,7 @@ package com.tencent.supersonic.chat.application.parser.aggregate; import static org.junit.Assert.assertEquals; -import com.tencent.supersonic.chat.parser.rule.AggregateTypeParser; +import com.tencent.supersonic.chat.parser.sql.rule.AggregateTypeParser; import com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum; import org.junit.jupiter.api.Test; diff --git a/chat/core/src/test/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseServiceTest.java b/chat/core/src/test/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseServiceTest.java index c42911962..c25e6fd7f 100644 --- a/chat/core/src/test/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseServiceTest.java +++ b/chat/core/src/test/java/com/tencent/supersonic/chat/parser/llm/s2sql/LLMResponseServiceTest.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.chat.parser.llm.s2sql; +import com.tencent.supersonic.chat.parser.sql.llm.LLMResponseService; import com.tencent.supersonic.chat.query.llm.s2sql.LLMResp; import java.util.HashMap; import java.util.Map; diff --git a/launchers/chat/src/main/resources/META-INF/spring.factories b/launchers/chat/src/main/resources/META-INF/spring.factories index 2f4c24a2c..00514558b 100644 --- a/launchers/chat/src/main/resources/META-INF/spring.factories +++ b/launchers/chat/src/main/resources/META-INF/spring.factories @@ -6,10 +6,10 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\ com.tencent.supersonic.chat.mapper.EntityMapper com.tencent.supersonic.chat.api.component.SemanticParser=\ - com.tencent.supersonic.chat.parser.rule.RuleBasedParser, \ - com.tencent.supersonic.chat.parser.llm.s2sql.LLMS2SQLParser, \ - com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingBasedParser, \ - com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser, \ + com.tencent.supersonic.chat.parser.sql.rule.RuleSqlParser, \ + com.tencent.supersonic.chat.parser.sql.llm.LLMSqlParser, \ + com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingRecallParser, \ + com.tencent.supersonic.chat.parser.plugin.function.FunctionCallParser, \ com.tencent.supersonic.chat.parser.QueryTypeParser com.tencent.supersonic.chat.api.component.SemanticCorrector=\ @@ -25,8 +25,8 @@ com.tencent.supersonic.chat.parser.LLMProxy=\ com.tencent.supersonic.chat.api.component.SemanticInterpreter=\ com.tencent.supersonic.knowledge.semantic.RemoteSemanticInterpreter -com.tencent.supersonic.chat.parser.llm.s2sql.ModelResolver=\ - com.tencent.supersonic.chat.parser.llm.s2sql.HeuristicModelResolver +com.tencent.supersonic.chat.parser.sql.llm.ModelResolver=\ + com.tencent.supersonic.chat.parser.sql.llm.HeuristicModelResolver com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor @@ -43,6 +43,6 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\ com.tencent.supersonic.chat.postprocessor.TimeCostPostProcessor, \ com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor -com.tencent.supersonic.chat.responder.QueryResponder=\ - com.tencent.supersonic.chat.responder.EntityInfoQueryResponder, \ - com.tencent.supersonic.chat.responder.SimilarMetricQueryResponder \ No newline at end of file +com.tencent.supersonic.chat.query.QueryResponder=\ + com.tencent.supersonic.chat.query.EntityInfoQueryResponder, \ + com.tencent.supersonic.chat.query.SimilarMetricQueryResponder \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/META-INF/spring.factories b/launchers/standalone/src/main/resources/META-INF/spring.factories index c229b6e49..513a4feb6 100644 --- a/launchers/standalone/src/main/resources/META-INF/spring.factories +++ b/launchers/standalone/src/main/resources/META-INF/spring.factories @@ -7,10 +7,10 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\ com.tencent.supersonic.chat.mapper.ModelClusterMapper com.tencent.supersonic.chat.api.component.SemanticParser=\ - com.tencent.supersonic.chat.parser.rule.RuleBasedParser, \ - com.tencent.supersonic.chat.parser.llm.s2sql.LLMS2SQLParser, \ - com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingBasedParser, \ - com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser, \ + com.tencent.supersonic.chat.parser.sql.rule.RuleSqlParser, \ + com.tencent.supersonic.chat.parser.sql.llm.LLMSqlParser, \ + com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingRecallParser, \ + com.tencent.supersonic.chat.parser.plugin.function.FunctionCallParser, \ com.tencent.supersonic.chat.parser.QueryTypeParser com.tencent.supersonic.chat.api.component.SemanticCorrector=\ @@ -21,7 +21,7 @@ com.tencent.supersonic.chat.api.component.SemanticCorrector=\ com.tencent.supersonic.chat.corrector.HavingCorrector, \ com.tencent.supersonic.chat.corrector.FromCorrector -com.tencent.supersonic.chat.processor.ResponseProcessor=\ +com.tencent.supersonic.chat.processor.ParseResultProcessor=\ com.tencent.supersonic.chat.processor.MetricCheckProcessor, \ com.tencent.supersonic.chat.processor.ParseInfoProcessor, \ com.tencent.supersonic.chat.processor.QueryRankProcessor, \ @@ -36,8 +36,8 @@ com.tencent.supersonic.chat.parser.LLMProxy=\ com.tencent.supersonic.chat.api.component.SemanticInterpreter=\ com.tencent.supersonic.knowledge.semantic.LocalSemanticInterpreter -com.tencent.supersonic.chat.parser.llm.s2sql.ModelResolver=\ - com.tencent.supersonic.chat.parser.llm.s2sql.HeuristicModelResolver +com.tencent.supersonic.chat.parser.sql.llm.ModelResolver=\ + com.tencent.supersonic.chat.parser.sql.llm.HeuristicModelResolver com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor @@ -45,6 +45,6 @@ com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\ com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor -com.tencent.supersonic.chat.responder.QueryResponder=\ - com.tencent.supersonic.chat.responder.EntityInfoQueryResponder, \ - com.tencent.supersonic.chat.responder.SimilarMetricQueryResponder \ No newline at end of file +com.tencent.supersonic.chat.query.QueryResponder=\ + com.tencent.supersonic.chat.query.EntityInfoQueryResponder, \ + com.tencent.supersonic.chat.query.SimilarMetricQueryResponder \ No newline at end of file diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricInterpretTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricInterpretTest.java index 15e9656a7..e4342b819 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricInterpretTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricInterpretTest.java @@ -8,7 +8,7 @@ import com.tencent.supersonic.chat.api.pojo.response.ParseResp; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.common.config.EmbeddingConfig; import com.tencent.supersonic.chat.plugin.PluginManager; -import com.tencent.supersonic.chat.query.llm.interpret.LLMAnswerResp; +import com.tencent.supersonic.chat.query.llm.analytics.LLMAnswerResp; import com.tencent.supersonic.chat.service.AgentService; import com.tencent.supersonic.chat.service.QueryService; import com.tencent.supersonic.util.DataUtils; diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MockConfiguration.java b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MockConfiguration.java index 09a8aa349..999b0788d 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MockConfiguration.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MockConfiguration.java @@ -3,7 +3,7 @@ package com.tencent.supersonic.integration; import com.google.common.collect.Lists; import com.tencent.supersonic.common.config.EmbeddingConfig; -import com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingResp; +import com.tencent.supersonic.chat.parser.plugin.embedding.RecallRetrievalResp; import com.tencent.supersonic.chat.parser.plugin.embedding.RecallRetrieval; import com.tencent.supersonic.chat.plugin.PluginManager; import com.tencent.supersonic.chat.service.AgentService; @@ -20,7 +20,7 @@ import static org.mockito.Mockito.when; public class MockConfiguration { public static void mockEmbeddingRecognize(PluginManager pluginManager, String text, String id) { - EmbeddingResp embeddingResp = new EmbeddingResp(); + RecallRetrievalResp embeddingResp = new RecallRetrievalResp(); RecallRetrieval embeddingRetrieval = new RecallRetrieval(); embeddingRetrieval.setId(id); embeddingRetrieval.setPresetId(id); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/plugin/BasePluginTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/plugin/BasePluginTest.java index 1993ed8d6..c1949ec0c 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/plugin/BasePluginTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/plugin/BasePluginTest.java @@ -5,7 +5,7 @@ import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.api.pojo.response.QueryState; import com.tencent.supersonic.chat.query.plugin.WebBaseResult; import com.tencent.supersonic.chat.query.plugin.webpage.WebPageQuery; -import com.tencent.supersonic.chat.query.plugin.webpage.WebPageResponse; +import com.tencent.supersonic.chat.query.plugin.webpage.WebPageResp; import lombok.extern.slf4j.Slf4j; import org.junit.Assert; import org.junit.runner.RunWith; @@ -22,7 +22,7 @@ public class BasePluginTest { protected void assertPluginRecognizeResult(QueryResult queryResult) { Assert.assertEquals(queryResult.getQueryState(), QueryState.SUCCESS); Assert.assertEquals(queryResult.getQueryMode(), WebPageQuery.QUERY_MODE); - WebPageResponse webPageResponse = (WebPageResponse) queryResult.getResponse(); + WebPageResp webPageResponse = (WebPageResp) queryResult.getResponse(); WebBaseResult webPage = webPageResponse.getWebPage(); Assert.assertEquals(webPage.getUrl(), "www.yourbi.com"); Assert.assertEquals(1, webPage.getParams().size()); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java b/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java index caf6ec50a..b248597bd 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java @@ -13,7 +13,7 @@ import com.tencent.supersonic.chat.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.SchemaElementType; import com.tencent.supersonic.chat.api.pojo.request.QueryFilter; import com.tencent.supersonic.chat.api.pojo.request.QueryReq; -import com.tencent.supersonic.chat.parser.llm.analytics.MetricOption; +import com.tencent.supersonic.chat.parser.analytics.MetricOption; import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; diff --git a/launchers/standalone/src/test/resources/META-INF/spring.factories b/launchers/standalone/src/test/resources/META-INF/spring.factories index 8b6e2fc3b..01bcc8a05 100644 --- a/launchers/standalone/src/test/resources/META-INF/spring.factories +++ b/launchers/standalone/src/test/resources/META-INF/spring.factories @@ -7,10 +7,10 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\ com.tencent.supersonic.chat.mapper.ModelClusterMapper com.tencent.supersonic.chat.api.component.SemanticParser=\ - com.tencent.supersonic.chat.parser.rule.RuleBasedParser, \ - com.tencent.supersonic.chat.parser.llm.s2sql.LLMS2SQLParser, \ - com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingBasedParser, \ - com.tencent.supersonic.chat.parser.plugin.function.FunctionBasedParser, \ + com.tencent.supersonic.chat.parser.sql.rule.RuleSqlParser, \ + com.tencent.supersonic.chat.parser.sql.llm.LLMSqlParser, \ + com.tencent.supersonic.chat.parser.plugin.embedding.EmbeddingRecallParser, \ + com.tencent.supersonic.chat.parser.plugin.function.FunctionCallParser, \ com.tencent.supersonic.chat.parser.QueryTypeParser com.tencent.supersonic.chat.api.component.SemanticCorrector=\ @@ -23,8 +23,8 @@ com.tencent.supersonic.chat.api.component.SemanticCorrector=\ com.tencent.supersonic.chat.api.component.SemanticInterpreter=\ com.tencent.supersonic.knowledge.semantic.LocalSemanticInterpreter -com.tencent.supersonic.chat.parser.llm.s2sql.ModelResolver=\ - com.tencent.supersonic.chat.parser.llm.s2sql.HeuristicModelResolver +com.tencent.supersonic.chat.parser.sql.llm.ModelResolver=\ + com.tencent.supersonic.chat.parser.sql.llm.HeuristicModelResolver com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\ com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor @@ -42,6 +42,6 @@ com.tencent.supersonic.chat.postprocessor.PostProcessor=\ com.tencent.supersonic.chat.postprocessor.RespBuildPostProcessor -com.tencent.supersonic.chat.responder.QueryResponder=\ - com.tencent.supersonic.chat.responder.EntityInfoQueryResponder, \ - com.tencent.supersonic.chat.responder.SimilarMetricQueryResponder \ No newline at end of file +com.tencent.supersonic.chat.query.QueryResponder=\ + com.tencent.supersonic.chat.query.EntityInfoQueryResponder, \ + com.tencent.supersonic.chat.query.SimilarMetricQueryResponder \ No newline at end of file