(improvement)(headless)Restructure facade and expose only ChatLayerService and SemanticLayerService.

This commit is contained in:
jerryjzhang
2024-07-16 17:41:20 +08:00
parent 35892f2344
commit 1c0b8f8161
9 changed files with 23 additions and 13 deletions

View File

@@ -7,7 +7,6 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryNLReq;
import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq;
import com.tencent.supersonic.headless.api.pojo.response.ParseResp;
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
import com.tencent.supersonic.headless.server.facade.service.RetrieveService;
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,9 +25,6 @@ public class ChatQueryApiController {
@Autowired
private ChatLayerService chatLayerService;
@Autowired
private RetrieveService retrieveService;
@Autowired
private SemanticLayerService semanticLayerService;
@@ -37,7 +33,7 @@ public class ChatQueryApiController {
HttpServletRequest request,
HttpServletResponse response) throws Exception {
queryNLReq.setUser(UserHolder.findUser(request, response));
return retrieveService.retrieve(queryNLReq);
return chatLayerService.retrieve(queryNLReq);
}
@PostMapping("/chat/map")

View File

@@ -8,6 +8,9 @@ import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq;
import com.tencent.supersonic.headless.api.pojo.response.MapInfoResp;
import com.tencent.supersonic.headless.api.pojo.response.MapResp;
import com.tencent.supersonic.headless.api.pojo.response.ParseResp;
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;
import java.util.List;
/***dd
* SemanticLayerService for query and search
@@ -20,6 +23,8 @@ public interface ChatLayerService {
MapInfoResp map(QueryMapReq queryMapReq);
List<SearchResult> retrieve(QueryNLReq queryNLReq);
void correct(QuerySqlReq querySqlReq, User user);
SqlEvaluation validate(QuerySqlReq querySqlReq, User user);

View File

@@ -21,12 +21,14 @@ import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
import com.tencent.supersonic.headless.api.pojo.response.MapInfoResp;
import com.tencent.supersonic.headless.api.pojo.response.MapResp;
import com.tencent.supersonic.headless.api.pojo.response.ParseResp;
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;
import com.tencent.supersonic.headless.chat.ChatQueryContext;
import com.tencent.supersonic.headless.chat.corrector.GrammarCorrector;
import com.tencent.supersonic.headless.chat.corrector.SchemaCorrector;
import com.tencent.supersonic.headless.chat.knowledge.builder.BaseWordBuilder;
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
import com.tencent.supersonic.headless.server.web.service.RetrieveService;
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
import com.tencent.supersonic.headless.server.utils.ChatWorkflowEngine;
import com.tencent.supersonic.headless.server.utils.ComponentFactory;
@@ -56,6 +58,8 @@ public class S2ChatLayerService implements ChatLayerService {
@Autowired
private DataSetService dataSetService;
@Autowired
private RetrieveService retrieveService;
@Autowired
private ChatWorkflowEngine chatWorkflowEngine;
@Override
@@ -127,6 +131,11 @@ public class S2ChatLayerService implements ChatLayerService {
return semanticParseInfo.getSqlEvaluation();
}
@Override
public List<SearchResult> retrieve(QueryNLReq queryNLReq) {
return retrieveService.retrieve(queryNLReq);
}
private SemanticParseInfo correctSqlReq(QuerySqlReq querySqlReq, User user) {
ChatQueryContext queryCtx = new ChatQueryContext();
SemanticSchema semanticSchema = schemaService.getSemanticSchema();

View File

@@ -1,6 +1,6 @@
package com.tencent.supersonic.headless.server.task;
import com.tencent.supersonic.headless.server.facade.service.FlightService;
import com.tencent.supersonic.headless.server.web.service.FlightService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import lombok.extern.slf4j.Slf4j;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.headless.server.facade.service;
package com.tencent.supersonic.headless.server.web.service;
import java.util.concurrent.ExecutorService;
import org.apache.arrow.flight.sql.FlightSqlProducer;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.headless.server.facade.service;
package com.tencent.supersonic.headless.server.web.service;
import com.tencent.supersonic.headless.api.pojo.request.QueryNLReq;
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.headless.server.facade.service.impl;
package com.tencent.supersonic.headless.server.web.service.impl;
import static com.google.protobuf.Any.pack;
import static com.google.protobuf.ByteString.copyFrom;
@@ -20,7 +20,7 @@ import com.tencent.supersonic.headless.api.pojo.Param;
import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq;
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
import com.tencent.supersonic.headless.server.facade.service.FlightService;
import com.tencent.supersonic.headless.server.web.service.FlightService;
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
import com.tencent.supersonic.headless.server.utils.FlightUtils;
import java.nio.charset.StandardCharsets;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.headless.server.facade.service.impl;
package com.tencent.supersonic.headless.server.web.service.impl;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
@@ -21,7 +21,7 @@ import com.tencent.supersonic.headless.chat.knowledge.helper.NatureHelper;
import com.tencent.supersonic.headless.chat.mapper.MatchText;
import com.tencent.supersonic.headless.chat.mapper.ModelWithSemanticType;
import com.tencent.supersonic.headless.chat.mapper.SearchMatchStrategy;
import com.tencent.supersonic.headless.server.facade.service.RetrieveService;
import com.tencent.supersonic.headless.server.web.service.RetrieveService;
import com.tencent.supersonic.headless.server.web.service.DataSetService;
import com.tencent.supersonic.headless.server.web.service.SchemaService;
import lombok.extern.slf4j.Slf4j;