getDataSetList(Long domainId) {
- return null;
- }
-
-}
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/semantic/SemanticInterpreter.java b/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/semantic/SemanticInterpreter.java
deleted file mode 100644
index eaac77815..000000000
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/semantic/SemanticInterpreter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.tencent.supersonic.chat.core.query.semantic;
-
-import com.github.pagehelper.PageInfo;
-import com.tencent.supersonic.auth.api.authentication.pojo.User;
-import com.tencent.supersonic.chat.api.pojo.DataSetSchema;
-import com.tencent.supersonic.headless.api.pojo.request.ExplainSqlReq;
-import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
-import com.tencent.supersonic.headless.api.pojo.request.PageMetricReq;
-import com.tencent.supersonic.headless.api.pojo.request.QueryMultiStructReq;
-import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq;
-import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
-import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
-import com.tencent.supersonic.headless.api.pojo.response.DomainResp;
-import com.tencent.supersonic.headless.api.pojo.response.ExplainResp;
-import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
-import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
-import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
-import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
-import com.tencent.supersonic.headless.api.pojo.response.DataSetSchemaResp;
-
-import java.util.List;
-
-/**
- * A semantic layer provides a simplified and consistent dataSet of data from multiple sources.
- * It abstracts away the complexity of the underlying data sources and provides a unified dataSet
- * of the data that is easier to understand and use.
- *
- * The interface defines methods for getting metadata as well as querying data in the semantic layer.
- * Implementations of this interface should provide concrete implementations that interact with the
- * underlying data sources and return results in a consistent format. Or it can be implemented
- * as proxy to a remote semantic service.
- *
- */
-public interface SemanticInterpreter {
-
- SemanticQueryResp queryByStruct(QueryStructReq queryStructReq, User user);
-
- SemanticQueryResp queryByMultiStruct(QueryMultiStructReq queryMultiStructReq, User user);
-
- SemanticQueryResp queryByS2SQL(QuerySqlReq querySQLReq, User user);
-
- List getDataSetSchema();
-
- List getDataSetSchema(List ids);
-
- DataSetSchema getDataSetSchema(Long model, Boolean cacheEnable);
-
- PageInfo getDimensionPage(PageDimensionReq pageDimensionReq);
-
- PageInfo getMetricPage(PageMetricReq pageDimensionReq, User user);
-
- List getDomainList(User user);
-
- ExplainResp explain(ExplainSqlReq explainSqlReq, User user) throws Exception;
-
- List fetchDataSetSchema(List ids, Boolean cacheEnable);
-
- List getDataSetList(Long domainId);
-
- List getDomainDataSetTree();
-
-}
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/utils/ComponentFactory.java b/chat/core/src/main/java/com/tencent/supersonic/chat/core/utils/ComponentFactory.java
deleted file mode 100644
index e3b3e842e..000000000
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/utils/ComponentFactory.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.tencent.supersonic.chat.core.utils;
-
-import com.tencent.supersonic.chat.core.parser.JavaLLMProxy;
-import com.tencent.supersonic.chat.core.parser.LLMProxy;
-import com.tencent.supersonic.chat.core.parser.sql.llm.DataSetResolver;
-import com.tencent.supersonic.chat.core.query.semantic.SemanticInterpreter;
-import com.tencent.supersonic.common.util.ContextUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.core.io.support.SpringFactoriesLoader;
-
-import java.util.Map;
-import java.util.Objects;
-
-@Slf4j
-public class ComponentFactory {
-
- private static SemanticInterpreter semanticInterpreter;
- private static LLMProxy llmProxy;
- private static DataSetResolver modelResolver;
-
- public static SemanticInterpreter getSemanticLayer() {
- if (Objects.isNull(semanticInterpreter)) {
- semanticInterpreter = init(SemanticInterpreter.class);
- }
- return semanticInterpreter;
- }
-
- public static LLMProxy getLLMProxy() {
- //1.Preferentially retrieve from environment variables
- String llmProxyEnv = System.getenv("llmProxy");
- if (StringUtils.isNotBlank(llmProxyEnv)) {
- Map implementations = ContextUtils.getBeansOfType(LLMProxy.class);
- llmProxy = implementations.entrySet().stream()
- .filter(entry -> entry.getKey().equalsIgnoreCase(llmProxyEnv))
- .map(Map.Entry::getValue)
- .findFirst()
- .orElse(null);
- }
- //2.default JavaLLMProxy
- if (Objects.isNull(llmProxy)) {
- llmProxy = ContextUtils.getBean(JavaLLMProxy.class);
- }
- log.info("llmProxy:{}", llmProxy);
- return llmProxy;
- }
-
- public static DataSetResolver getModelResolver() {
- if (Objects.isNull(modelResolver)) {
- modelResolver = init(DataSetResolver.class);
- }
- return modelResolver;
- }
-
- private static T init(Class factoryType) {
- return SpringFactoriesLoader.loadFactories(factoryType,
- Thread.currentThread().getContextClassLoader()).get(0);
- }
-}
\ No newline at end of file
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/utils/SimilarQueryManager.java b/chat/core/src/main/java/com/tencent/supersonic/chat/core/utils/SimilarQueryManager.java
deleted file mode 100644
index 892061ed3..000000000
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/utils/SimilarQueryManager.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package com.tencent.supersonic.chat.core.utils;
-
-import com.google.common.collect.Lists;
-import com.tencent.supersonic.chat.api.pojo.request.SimilarQueryReq;
-import com.tencent.supersonic.chat.api.pojo.response.SimilarQueryRecallResp;
-import com.tencent.supersonic.common.config.EmbeddingConfig;
-import com.tencent.supersonic.common.util.ComponentFactory;
-import com.tencent.supersonic.common.util.embedding.EmbeddingQuery;
-import com.tencent.supersonic.common.util.embedding.Retrieval;
-import com.tencent.supersonic.common.util.embedding.RetrieveQuery;
-import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
-import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.util.Strings;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.util.UriComponentsBuilder;
-
-import java.net.URI;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-
-@Slf4j
-@Component
-public class SimilarQueryManager {
-
- private EmbeddingConfig embeddingConfig;
-
- private S2EmbeddingStore s2EmbeddingStore = ComponentFactory.getS2EmbeddingStore();
-
-
- public SimilarQueryManager(EmbeddingConfig embeddingConfig) {
- this.embeddingConfig = embeddingConfig;
- }
-
- public void saveSimilarQuery(SimilarQueryReq similarQueryReq) {
- if (StringUtils.isBlank(embeddingConfig.getUrl())) {
- return;
- }
- String queryText = similarQueryReq.getQueryText();
- try {
- String uniqueId = generateUniqueId(similarQueryReq.getQueryId(), similarQueryReq.getParseId());
- EmbeddingQuery embeddingQuery = new EmbeddingQuery();
- embeddingQuery.setQueryId(uniqueId);
- embeddingQuery.setQuery(queryText);
-
- Map metaData = new HashMap<>();
- metaData.put("modelId", similarQueryReq.getDataSetId());
- metaData.put("agentId", similarQueryReq.getAgentId());
- embeddingQuery.setMetadata(metaData);
- String solvedQueryCollection = embeddingConfig.getSolvedQueryCollection();
- s2EmbeddingStore.addQuery(solvedQueryCollection, Lists.newArrayList(embeddingQuery));
- } catch (Exception e) {
- log.warn("save history question to embedding failed, queryText:{}", queryText, e);
- }
- }
-
- public List recallSimilarQuery(String queryText, Integer agentId) {
- if (StringUtils.isBlank(embeddingConfig.getUrl())) {
- return Lists.newArrayList();
- }
- List similarQueryRecallResps = Lists.newArrayList();
- try {
- String solvedQueryCollection = embeddingConfig.getSolvedQueryCollection();
- int solvedQueryResultNum = embeddingConfig.getSolvedQueryResultNum();
-
- Map filterCondition = new HashMap<>();
- filterCondition.put("agentId", String.valueOf(agentId));
- RetrieveQuery retrieveQuery = RetrieveQuery.builder()
- .queryTextsList(Lists.newArrayList(queryText))
- .filterCondition(filterCondition)
- .build();
- List resultList = s2EmbeddingStore.retrieveQuery(solvedQueryCollection, retrieveQuery,
- solvedQueryResultNum);
-
- log.info("[embedding] recognize result body:{}", resultList);
- Set querySet = new HashSet<>();
- if (CollectionUtils.isNotEmpty(resultList)) {
- for (RetrieveQueryResult retrieveQueryResult : resultList) {
- List retrievals = retrieveQueryResult.getRetrieval();
- for (Retrieval retrieval : retrievals) {
- if (queryText.equalsIgnoreCase(retrieval.getQuery())) {
- continue;
- }
- if (querySet.contains(retrieval.getQuery())) {
- continue;
- }
- String id = retrieval.getId();
- SimilarQueryRecallResp similarQueryRecallResp = SimilarQueryRecallResp.builder()
- .queryText(retrieval.getQuery())
- .queryId(getQueryId(id)).parseId(getParseId(id))
- .build();
- similarQueryRecallResps.add(similarQueryRecallResp);
- querySet.add(retrieval.getQuery());
- }
- }
- }
-
- } catch (Exception e) {
- log.warn("recall similar solved query failed, queryText:{}", queryText);
- }
- return similarQueryRecallResps;
- }
-
- private String generateUniqueId(Long queryId, Integer parseId) {
- String uniqueId = queryId + String.valueOf(parseId);
- if (parseId < 10) {
- uniqueId = queryId + String.format("0%s", parseId);
- }
- return uniqueId;
- }
-
- private Long getQueryId(String uniqueId) {
- return Long.parseLong(uniqueId) / 100;
- }
-
- private Integer getParseId(String uniqueId) {
- return Integer.parseInt(uniqueId) % 100;
- }
-
- private ResponseEntity doRequest(String path, String jsonBody) {
- if (Strings.isEmpty(embeddingConfig.getUrl())) {
- return ResponseEntity.of(Optional.empty());
- }
- String url = embeddingConfig.getUrl() + path;
- try {
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_JSON);
- headers.setLocation(URI.create(url));
- URI requestUrl = UriComponentsBuilder
- .fromHttpUrl(url).build().encode().toUri();
- HttpEntity entity = new HttpEntity<>(jsonBody, headers);
- log.info("[embedding] request body :{}, url:{}", jsonBody, url);
- RestTemplate restTemplate = new RestTemplate();
- ResponseEntity responseEntity = restTemplate.exchange(requestUrl,
- HttpMethod.POST, entity, new ParameterizedTypeReference() {
- });
- log.info("[embedding] result body:{}", responseEntity);
- return responseEntity;
- } catch (Exception e) {
- log.warn("connect to embedding service failed, url:{}", url);
- }
- return ResponseEntity.of(Optional.empty());
- }
-
-}
diff --git a/chat/pom.xml b/chat/pom.xml
index 46eae4dee..c4704c08b 100644
--- a/chat/pom.xml
+++ b/chat/pom.xml
@@ -6,7 +6,6 @@
pom
api
- core
server
diff --git a/chat/server/pom.xml b/chat/server/pom.xml
index 2e7062e18..6ea7874bf 100644
--- a/chat/server/pom.xml
+++ b/chat/server/pom.xml
@@ -11,19 +11,10 @@
chat-server
-
- org.springframework
- spring-context
-
org.projectlombok
lombok
-
- com.tencent.supersonic
- common
- ${project.version}
-
com.tencent.supersonic
auth-api
@@ -36,13 +27,7 @@
com.tencent.supersonic
- headless-core
- ${project.version}
- compile
-
-
- com.tencent.supersonic
- chat-core
+ headless-server
${project.version}
compile
@@ -51,12 +36,6 @@
junit
test
-
- org.mockito
- mockito-inline
- ${mockito-inline.version}
- test
-
\ No newline at end of file
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/Agent.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/Agent.java
similarity index 90%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/Agent.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/Agent.java
index f32e3a460..0b81f4057 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/Agent.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/Agent.java
@@ -1,8 +1,9 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import com.tencent.supersonic.common.pojo.RecordInfo;
import lombok.Data;
import org.springframework.util.CollectionUtils;
@@ -66,7 +67,11 @@ public class Agent extends RecordInfo {
}
public Set getDataSetIds() {
- return getDataSetIds(null);
+ Set dataSetIds = getDataSetIds(null);
+ if (containsAllModel(dataSetIds)) {
+ return Sets.newHashSet();
+ }
+ return dataSetIds;
}
public Set getDataSetIds(AgentToolType agentToolType) {
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentConfig.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentConfig.java
similarity index 84%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentConfig.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentConfig.java
index b736888dc..eb460d56d 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentConfig.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentConfig.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentTool.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentTool.java
similarity index 82%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentTool.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentTool.java
index e1918a6e3..16daab2cf 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentTool.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentTool.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentToolType.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentToolType.java
similarity index 92%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentToolType.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentToolType.java
index 4b4244f7f..8a74be690 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/AgentToolType.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/AgentToolType.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import java.util.HashMap;
import java.util.Map;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/LLMParserTool.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/LLMParserTool.java
similarity index 74%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/LLMParserTool.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/LLMParserTool.java
index 686c5a0cc..a582f4475 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/LLMParserTool.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/LLMParserTool.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import lombok.Data;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/NL2SQLTool.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/NL2SQLTool.java
similarity index 82%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/NL2SQLTool.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/NL2SQLTool.java
index 4758b4422..23df168d2 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/NL2SQLTool.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/NL2SQLTool.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import lombok.AllArgsConstructor;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/PluginTool.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/PluginTool.java
similarity index 72%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/PluginTool.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/PluginTool.java
index 6dfd73a44..485332eff 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/PluginTool.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/PluginTool.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import lombok.Data;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/RuleParserTool.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/RuleParserTool.java
similarity index 88%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/RuleParserTool.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/RuleParserTool.java
index 687e9fece..37dc7d4f7 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/agent/RuleParserTool.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/agent/RuleParserTool.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.agent;
+package com.tencent.supersonic.chat.server.agent;
import lombok.Data;
diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/dataobject/DimValueDO.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/dataobject/DimValueDO.java
index 2818e57e3..21f63dcc6 100644
--- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/dataobject/DimValueDO.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/dataobject/DimValueDO.java
@@ -1,14 +1,14 @@
package com.tencent.supersonic.chat.server.persistence.dataobject;
-import com.tencent.supersonic.chat.core.config.DefaultMetric;
-import com.tencent.supersonic.chat.core.config.Dim4Dict;
-import java.util.ArrayList;
-import java.util.List;
-
+import com.tencent.supersonic.headless.core.config.DefaultMetric;
+import com.tencent.supersonic.headless.core.config.Dim4Dict;
import lombok.Data;
import lombok.ToString;
+import java.util.ArrayList;
+import java.util.List;
+
@Data
@ToString
diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatContextRepository.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatContextRepository.java
index 58c6beb8d..6417194b8 100644
--- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatContextRepository.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatContextRepository.java
@@ -1,7 +1,6 @@
package com.tencent.supersonic.chat.server.persistence.repository;
-
-import com.tencent.supersonic.chat.core.pojo.ChatContext;
+import com.tencent.supersonic.headless.core.pojo.ChatContext;
public interface ChatContextRepository {
diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java
index 271075257..dda1aea8b 100644
--- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/ChatQueryRepository.java
@@ -1,14 +1,14 @@
package com.tencent.supersonic.chat.server.persistence.repository;
import com.github.pagehelper.PageInfo;
-import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo;
+import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq;
import com.tencent.supersonic.chat.api.pojo.request.PageQueryInfoReq;
-import com.tencent.supersonic.chat.api.pojo.response.ParseResp;
-import com.tencent.supersonic.chat.api.pojo.response.QueryResp;
-import com.tencent.supersonic.chat.core.pojo.ChatContext;
-import com.tencent.supersonic.chat.core.pojo.QueryContext;
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.QueryResp;
+
import java.util.List;
public interface ChatQueryRepository {
@@ -25,8 +25,8 @@ public interface ChatQueryRepository {
int updateChatQuery(ChatQueryDO chatQueryDO);
- List batchSaveParseInfo(ChatContext chatCtx, QueryContext queryContext,
- ParseResp parseResult, List candidateParses);
+ List batchSaveParseInfo(ChatParseReq chatParseReq, ParseResp parseResult,
+ List candidateParses);
ChatParseDO getParseInfo(Long questionId, int parseId);
diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/StatisticsRepository.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/StatisticsRepository.java
deleted file mode 100644
index ea4431c45..000000000
--- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/StatisticsRepository.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tencent.supersonic.chat.server.persistence.repository;
-
-
-import com.tencent.supersonic.chat.server.persistence.dataobject.StatisticsDO;
-
-import java.util.List;
-
-public interface StatisticsRepository {
-
- void batchSaveStatistics(List list);
-}
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 240c58bf2..77eccb1a2 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
@@ -1,16 +1,9 @@
package com.tencent.supersonic.chat.server.persistence.repository.impl;
-import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
-import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo;
+import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq;
import com.tencent.supersonic.chat.api.pojo.request.PageQueryInfoReq;
-import com.tencent.supersonic.chat.api.pojo.response.ParseResp;
-import com.tencent.supersonic.chat.api.pojo.response.QueryResp;
-import com.tencent.supersonic.chat.api.pojo.response.QueryResult;
-import com.tencent.supersonic.chat.api.pojo.response.SimilarQueryRecallResp;
-import com.tencent.supersonic.chat.core.pojo.ChatContext;
-import com.tencent.supersonic.chat.core.pojo.QueryContext;
import com.tencent.supersonic.chat.server.persistence.dataobject.ChatParseDO;
import com.tencent.supersonic.chat.server.persistence.dataobject.ChatQueryDO;
import com.tencent.supersonic.chat.server.persistence.dataobject.ChatQueryDOExample;
@@ -21,11 +14,10 @@ import com.tencent.supersonic.chat.server.persistence.mapper.custom.ShowCaseCust
import com.tencent.supersonic.chat.server.persistence.repository.ChatQueryRepository;
import com.tencent.supersonic.common.util.JsonUtil;
import com.tencent.supersonic.common.util.PageUtils;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
+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.QueryResp;
+import com.tencent.supersonic.headless.api.pojo.response.QueryResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -33,6 +25,12 @@ import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
@Repository
@Primary
@Slf4j
@@ -108,21 +106,16 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
queryResult.setQueryId(chatQueryDO.getQuestionId());
queryResp.setQueryResult(queryResult);
}
- if (StringUtils.isNotBlank(chatQueryDO.getSimilarQueries())) {
- List similarQueries = JSONObject.parseArray(chatQueryDO.getSimilarQueries(),
- SimilarQueryRecallResp.class);
- queryResp.setSimilarQueries(similarQueries);
- }
return queryResp;
}
- public Long createChatQuery(ParseResp parseResult, ChatContext chatCtx, QueryContext queryContext) {
+ public Long createChatQuery(ParseResp parseResult, ChatParseReq chatParseReq) {
ChatQueryDO chatQueryDO = new ChatQueryDO();
- chatQueryDO.setChatId(Long.valueOf(chatCtx.getChatId()));
+ chatQueryDO.setChatId(Long.valueOf(chatParseReq.getChatId()));
chatQueryDO.setCreateTime(new java.util.Date());
- chatQueryDO.setUserName(queryContext.getUser().getName());
- chatQueryDO.setQueryText(queryContext.getQueryText());
- chatQueryDO.setAgentId(queryContext.getAgentId());
+ chatQueryDO.setUserName(chatParseReq.getUser().getName());
+ chatQueryDO.setQueryText(chatParseReq.getQueryText());
+ chatQueryDO.setAgentId(chatParseReq.getAgentId());
chatQueryDO.setQueryResult("");
try {
chatQueryDOMapper.insert(chatQueryDO);
@@ -135,24 +128,24 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
}
@Override
- public List batchSaveParseInfo(ChatContext chatCtx, QueryContext queryContext,
+ public List batchSaveParseInfo(ChatParseReq chatParseReq,
ParseResp parseResult, List candidateParses) {
- Long queryId = createChatQuery(parseResult, chatCtx, queryContext);
+ Long queryId = createChatQuery(parseResult, chatParseReq);
List chatParseDOList = new ArrayList<>();
- getChatParseDO(chatCtx, queryContext, queryId, candidateParses, chatParseDOList);
+ getChatParseDO(chatParseReq, queryId, candidateParses, chatParseDOList);
if (!CollectionUtils.isEmpty(candidateParses)) {
chatParseMapper.batchSaveParseInfo(chatParseDOList);
}
return chatParseDOList;
}
- public void getChatParseDO(ChatContext chatCtx, QueryContext queryContext, Long queryId,
+ public void getChatParseDO(ChatParseReq chatParseReq, Long queryId,
List parses, List chatParseDOList) {
for (int i = 0; i < parses.size(); i++) {
ChatParseDO chatParseDO = new ChatParseDO();
- chatParseDO.setChatId(Long.valueOf(chatCtx.getChatId()));
+ chatParseDO.setChatId(Long.valueOf(chatParseReq.getChatId()));
chatParseDO.setQuestionId(queryId);
- chatParseDO.setQueryText(queryContext.getQueryText());
+ chatParseDO.setQueryText(chatParseReq.getQueryText());
chatParseDO.setParseInfo(JsonUtil.toString(parses.get(i)));
chatParseDO.setIsCandidate(1);
if (i == 0) {
@@ -160,7 +153,7 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
}
chatParseDO.setParseId(parses.get(i).getId());
chatParseDO.setCreateTime(new java.util.Date());
- chatParseDO.setUserName(queryContext.getUser().getName());
+ chatParseDO.setUserName(chatParseReq.getUser().getName());
chatParseDOList.add(chatParseDO);
}
}
diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/StatisticsRepositoryImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/StatisticsRepositoryImpl.java
deleted file mode 100644
index 8bbcc742a..000000000
--- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/StatisticsRepositoryImpl.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.tencent.supersonic.chat.server.persistence.repository.impl;
-
-import com.tencent.supersonic.chat.server.persistence.dataobject.StatisticsDO;
-import com.tencent.supersonic.chat.server.persistence.mapper.StatisticsMapper;
-import com.tencent.supersonic.chat.server.persistence.repository.StatisticsRepository;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-@Primary
-@Slf4j
-public class StatisticsRepositoryImpl implements StatisticsRepository {
-
- private final StatisticsMapper statisticsMapper;
-
- public StatisticsRepositoryImpl(StatisticsMapper statisticsMapper) {
- this.statisticsMapper = statisticsMapper;
- }
-
- public void batchSaveStatistics(List list) {
- statisticsMapper.batchSaveStatistics(list);
- }
-
-}
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/ParseMode.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/ParseMode.java
similarity index 55%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/ParseMode.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/ParseMode.java
index e5b339cc4..628cf4904 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/parser/plugin/ParseMode.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/ParseMode.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.parser.plugin;
+package com.tencent.supersonic.chat.server.plugin;
public enum ParseMode {
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/Plugin.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/Plugin.java
similarity index 92%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/Plugin.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/Plugin.java
index 06fc40579..85f1234fe 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/Plugin.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/Plugin.java
@@ -1,9 +1,8 @@
-package com.tencent.supersonic.chat.core.plugin;
+package com.tencent.supersonic.chat.server.plugin;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
-import com.tencent.supersonic.chat.core.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/core/plugin/PluginManager.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginManager.java
similarity index 87%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginManager.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginManager.java
index 576da5196..de6ed99aa 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginManager.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginManager.java
@@ -1,31 +1,36 @@
-package com.tencent.supersonic.chat.core.plugin;
+package com.tencent.supersonic.chat.server.plugin;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import com.tencent.supersonic.headless.api.pojo.SchemaElement;
-import com.tencent.supersonic.chat.api.pojo.SchemaElementMatch;
-import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
-import com.tencent.supersonic.chat.api.pojo.SchemaMapInfo;
-import com.tencent.supersonic.chat.core.agent.Agent;
-import com.tencent.supersonic.chat.core.agent.AgentToolType;
-import com.tencent.supersonic.chat.core.agent.PluginTool;
-import com.tencent.supersonic.chat.core.plugin.event.PluginAddEvent;
-import com.tencent.supersonic.chat.core.plugin.event.PluginDelEvent;
-import com.tencent.supersonic.chat.core.plugin.event.PluginUpdateEvent;
-import com.tencent.supersonic.chat.core.pojo.QueryContext;
-import com.tencent.supersonic.chat.core.query.plugin.ParamOption;
-import com.tencent.supersonic.chat.core.query.plugin.WebBase;
+import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq;
+import com.tencent.supersonic.chat.server.agent.Agent;
+import com.tencent.supersonic.chat.server.agent.AgentToolType;
+import com.tencent.supersonic.chat.server.agent.PluginTool;
+import com.tencent.supersonic.chat.server.plugin.build.ParamOption;
+import com.tencent.supersonic.chat.server.plugin.build.WebBase;
+import com.tencent.supersonic.chat.server.plugin.event.PluginAddEvent;
+import com.tencent.supersonic.chat.server.plugin.event.PluginDelEvent;
+import com.tencent.supersonic.chat.server.plugin.event.PluginUpdateEvent;
+import com.tencent.supersonic.chat.server.service.AgentService;
+import com.tencent.supersonic.chat.server.service.PluginService;
import com.tencent.supersonic.common.config.EmbeddingConfig;
import com.tencent.supersonic.common.util.ComponentFactory;
+import com.tencent.supersonic.common.util.ContextUtils;
import com.tencent.supersonic.common.util.embedding.EmbeddingQuery;
import com.tencent.supersonic.common.util.embedding.Retrieval;
import com.tencent.supersonic.common.util.embedding.RetrieveQuery;
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
+import com.tencent.supersonic.headless.api.pojo.SchemaElement;
+import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch;
+import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
+import com.tencent.supersonic.headless.api.pojo.SchemaMapInfo;
+import com.tencent.supersonic.headless.core.pojo.QueryContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@@ -43,21 +48,18 @@ import java.util.stream.Collectors;
@Component
public class PluginManager {
+ @Autowired
private EmbeddingConfig embeddingConfig;
private S2EmbeddingStore s2EmbeddingStore = ComponentFactory.getS2EmbeddingStore();
- public PluginManager(EmbeddingConfig embeddingConfig) {
- this.embeddingConfig = embeddingConfig;
- }
+ public static List getPluginAgentCanSupport(ChatParseReq chatParseReq) {
+ PluginService pluginService = ContextUtils.getBean(PluginService.class);
+ AgentService agentService = ContextUtils.getBean(AgentService.class);
+ Agent agent = agentService.getAgent(chatParseReq.getAgentId());
- public static List getPluginAgentCanSupport(QueryContext queryContext) {
- List plugins = queryContext.getPluginList();
- if (Objects.isNull(queryContext.getAgent())) {
- return plugins;
- }
- Agent agent = queryContext.getAgent();
- if (agent == null) {
+ List plugins = pluginService.getPluginList();
+ if (Objects.isNull(agent)) {
return plugins;
}
List pluginIds = getPluginTools(agent).stream().map(PluginTool::getPlugins)
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseConfig.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginParseConfig.java
similarity index 71%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseConfig.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginParseConfig.java
index c02a6dde6..ace38a4ba 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseConfig.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginParseConfig.java
@@ -1,15 +1,14 @@
-package com.tencent.supersonic.chat.core.plugin;
+package com.tencent.supersonic.chat.server.plugin;
-import com.tencent.supersonic.chat.core.parser.plugin.function.Parameters;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
import java.io.Serializable;
import java.util.List;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
@Data
@Builder
@@ -18,8 +17,6 @@ import lombok.ToString;
@NoArgsConstructor
public class PluginParseConfig implements Serializable {
- public Parameters parameters;
-
public List examples;
private String name;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginParseResult.java
similarity index 60%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginParseResult.java
index 81bc467c8..8cb7b2170 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginParseResult.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginParseResult.java
@@ -1,6 +1,6 @@
-package com.tencent.supersonic.chat.core.plugin;
+package com.tencent.supersonic.chat.server.plugin;
-import com.tencent.supersonic.chat.api.pojo.request.QueryFilters;
+import com.tencent.supersonic.headless.api.pojo.request.QueryFilters;
import lombok.Data;
@Data
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginRecallResult.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginRecallResult.java
similarity index 87%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginRecallResult.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginRecallResult.java
index 91b257977..f44402d80 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/plugin/PluginRecallResult.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/PluginRecallResult.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.plugin;
+package com.tencent.supersonic.chat.server.plugin;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/ParamOption.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/ParamOption.java
similarity index 90%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/ParamOption.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/ParamOption.java
index ea1b7f386..d85f3331b 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/ParamOption.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/ParamOption.java
@@ -1,4 +1,4 @@
-package com.tencent.supersonic.chat.core.query.plugin;
+package com.tencent.supersonic.chat.server.plugin.build;
import lombok.Data;
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/PluginSemanticQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java
similarity index 88%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/PluginSemanticQuery.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java
index 17df377e6..f23647e7b 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/PluginSemanticQuery.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/PluginSemanticQuery.java
@@ -1,16 +1,17 @@
-package com.tencent.supersonic.chat.core.query.plugin;
+package com.tencent.supersonic.chat.server.plugin.build;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
-import com.tencent.supersonic.chat.api.pojo.SchemaElementMatch;
+import com.tencent.supersonic.chat.server.plugin.PluginParseResult;
+import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch;
import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
-import com.tencent.supersonic.chat.api.pojo.SemanticSchema;
-import com.tencent.supersonic.chat.api.pojo.request.QueryFilter;
-import com.tencent.supersonic.chat.api.pojo.request.QueryFilters;
-import com.tencent.supersonic.chat.core.plugin.PluginParseResult;
-import com.tencent.supersonic.chat.core.query.BaseSemanticQuery;
+import com.tencent.supersonic.headless.api.pojo.SemanticSchema;
+import com.tencent.supersonic.headless.api.pojo.request.QueryFilter;
+import com.tencent.supersonic.headless.api.pojo.request.QueryFilters;
+import com.tencent.supersonic.headless.core.chat.query.BaseSemanticQuery;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
+
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -18,11 +19,6 @@ import java.util.Map;
@Slf4j
public abstract class PluginSemanticQuery extends BaseSemanticQuery {
- @Override
- public String explain(User user) {
- return null;
- }
-
@Override
public void initS2Sql(SemanticSchema semanticSchema, User user) {
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/WebBase.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/WebBase.java
similarity index 83%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/WebBase.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/WebBase.java
index 98cec1529..86e65201d 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/WebBase.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/WebBase.java
@@ -1,7 +1,8 @@
-package com.tencent.supersonic.chat.core.query.plugin;
+package com.tencent.supersonic.chat.server.plugin.build;
import com.google.common.collect.Lists;
import lombok.Data;
+
import java.util.List;
@Data
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
new file mode 100644
index 000000000..12cabed9d
--- /dev/null
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageQuery.java
@@ -0,0 +1,46 @@
+package com.tencent.supersonic.chat.server.plugin.build.webpage;
+
+import com.tencent.supersonic.chat.server.plugin.Plugin;
+import com.tencent.supersonic.chat.server.plugin.PluginParseResult;
+import com.tencent.supersonic.chat.server.plugin.build.PluginSemanticQuery;
+import com.tencent.supersonic.chat.server.plugin.build.WebBase;
+import com.tencent.supersonic.common.util.JsonUtil;
+import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
+import com.tencent.supersonic.headless.core.chat.query.QueryManager;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.calcite.sql.parser.SqlParseException;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class WebPageQuery extends PluginSemanticQuery {
+
+ public static String QUERY_MODE = "WEB_PAGE";
+
+ public WebPageQuery() {
+ QueryManager.register(this);
+ }
+
+ @Override
+ public String getQueryMode() {
+ return QUERY_MODE;
+ }
+
+ @Override
+ public SemanticQueryReq buildSemanticQueryReq() throws SqlParseException {
+ return null;
+ }
+
+ protected WebPageResp buildResponse(PluginParseResult pluginParseResult) {
+ Plugin plugin = pluginParseResult.getPlugin();
+ WebPageResp webPageResponse = new WebPageResp();
+ webPageResponse.setName(plugin.getName());
+ webPageResponse.setPluginId(plugin.getId());
+ webPageResponse.setPluginType(plugin.getType());
+ WebBase webPage = JsonUtil.toObject(plugin.getConfig(), WebBase.class);
+ WebBase webBase = fillWebBaseResult(webPage, pluginParseResult);
+ webPageResponse.setWebPage(webBase);
+ return webPageResponse;
+ }
+
+}
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/webpage/WebPageResp.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageResp.java
similarity index 67%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/webpage/WebPageResp.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageResp.java
index 5084c536c..67db6508d 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/webpage/WebPageResp.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webpage/WebPageResp.java
@@ -1,9 +1,12 @@
-package com.tencent.supersonic.chat.core.query.plugin.webpage;
+package com.tencent.supersonic.chat.server.plugin.build.webpage;
-import com.tencent.supersonic.chat.core.query.plugin.WebBase;
+
+import com.tencent.supersonic.chat.server.plugin.build.WebBase;
import lombok.Data;
+
import java.util.List;
+
@Data
public class WebPageResp {
diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/webservice/WebServiceQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java
similarity index 55%
rename from chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/webservice/WebServiceQuery.java
rename to chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java
index 7ebde63e9..cb479bd5b 100644
--- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/query/plugin/webservice/WebServiceQuery.java
+++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java
@@ -1,19 +1,15 @@
-package com.tencent.supersonic.chat.core.query.plugin.webservice;
+package com.tencent.supersonic.chat.server.plugin.build.webservice;
import com.alibaba.fastjson.JSON;
-import com.tencent.supersonic.auth.api.authentication.pojo.User;
-import com.tencent.supersonic.chat.api.pojo.response.QueryResult;
-import com.tencent.supersonic.chat.api.pojo.response.QueryState;
-import com.tencent.supersonic.chat.core.plugin.Plugin;
-import com.tencent.supersonic.chat.core.plugin.PluginParseResult;
-import com.tencent.supersonic.chat.core.query.QueryManager;
-import com.tencent.supersonic.chat.core.query.plugin.ParamOption;
-import com.tencent.supersonic.chat.core.query.plugin.PluginSemanticQuery;
-import com.tencent.supersonic.chat.core.query.plugin.WebBase;
-import com.tencent.supersonic.common.pojo.Constants;
-import com.tencent.supersonic.common.pojo.QueryColumn;
+import com.tencent.supersonic.chat.server.plugin.Plugin;
+import com.tencent.supersonic.chat.server.plugin.PluginParseResult;
+import com.tencent.supersonic.chat.server.plugin.build.ParamOption;
+import com.tencent.supersonic.chat.server.plugin.build.PluginSemanticQuery;
+import com.tencent.supersonic.chat.server.plugin.build.WebBase;
import com.tencent.supersonic.common.util.ContextUtils;
import com.tencent.supersonic.common.util.JsonUtil;
+import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
+import com.tencent.supersonic.headless.core.chat.query.QueryManager;
import lombok.extern.slf4j.Slf4j;
import org.apache.calcite.sql.parser.SqlParseException;
import org.springframework.http.HttpEntity;
@@ -24,6 +20,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
+
import java.net.URI;
import java.util.HashMap;
import java.util.List;
@@ -48,26 +45,8 @@ public class WebServiceQuery extends PluginSemanticQuery {
}
@Override
- public QueryResult execute(User user) throws SqlParseException {
- QueryResult queryResult = new QueryResult();
- queryResult.setQueryMode(QUERY_MODE);
- Map properties = parseInfo.getProperties();
- PluginParseResult pluginParseResult = JsonUtil.toObject(
- JsonUtil.toString(properties.get(Constants.CONTEXT)), PluginParseResult.class);
- 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.
- log.info("webServiceResponse result:{}", JsonUtil.toString(object));
- try {
- Map data = JsonUtil.toMap(JsonUtil.toString(object), String.class, Object.class);
- queryResult.setQueryResults((List