mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 13:07:32 +00:00
(improvement)(headless)Restructure facade and expose only ChatLayerService and SemanticLayerService.
This commit is contained in:
@@ -48,7 +48,7 @@ import com.tencent.supersonic.headless.chat.query.QueryManager;
|
|||||||
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
||||||
import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMSqlQuery;
|
import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMSqlQuery;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.RetrieveService;
|
import com.tencent.supersonic.headless.server.web.service.RetrieveService;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.sf.jsqlparser.expression.Expression;
|
import net.sf.jsqlparser.expression.Expression;
|
||||||
|
|||||||
@@ -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.request.QuerySqlReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ParseResp;
|
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.ChatLayerService;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.RetrieveService;
|
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -26,9 +25,6 @@ public class ChatQueryApiController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ChatLayerService chatLayerService;
|
private ChatLayerService chatLayerService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private RetrieveService retrieveService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SemanticLayerService semanticLayerService;
|
private SemanticLayerService semanticLayerService;
|
||||||
|
|
||||||
@@ -37,7 +33,7 @@ public class ChatQueryApiController {
|
|||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
HttpServletResponse response) throws Exception {
|
HttpServletResponse response) throws Exception {
|
||||||
queryNLReq.setUser(UserHolder.findUser(request, response));
|
queryNLReq.setUser(UserHolder.findUser(request, response));
|
||||||
return retrieveService.retrieve(queryNLReq);
|
return chatLayerService.retrieve(queryNLReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/chat/map")
|
@PostMapping("/chat/map")
|
||||||
|
|||||||
@@ -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.MapInfoResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MapResp;
|
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.ParseResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/***dd
|
/***dd
|
||||||
* SemanticLayerService for query and search
|
* SemanticLayerService for query and search
|
||||||
@@ -20,6 +23,8 @@ public interface ChatLayerService {
|
|||||||
|
|
||||||
MapInfoResp map(QueryMapReq queryMapReq);
|
MapInfoResp map(QueryMapReq queryMapReq);
|
||||||
|
|
||||||
|
List<SearchResult> retrieve(QueryNLReq queryNLReq);
|
||||||
|
|
||||||
void correct(QuerySqlReq querySqlReq, User user);
|
void correct(QuerySqlReq querySqlReq, User user);
|
||||||
|
|
||||||
SqlEvaluation validate(QuerySqlReq querySqlReq, User user);
|
SqlEvaluation validate(QuerySqlReq querySqlReq, User user);
|
||||||
|
|||||||
@@ -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.MapInfoResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MapResp;
|
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.ParseResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;
|
||||||
import com.tencent.supersonic.headless.chat.ChatQueryContext;
|
import com.tencent.supersonic.headless.chat.ChatQueryContext;
|
||||||
import com.tencent.supersonic.headless.chat.corrector.GrammarCorrector;
|
import com.tencent.supersonic.headless.chat.corrector.GrammarCorrector;
|
||||||
import com.tencent.supersonic.headless.chat.corrector.SchemaCorrector;
|
import com.tencent.supersonic.headless.chat.corrector.SchemaCorrector;
|
||||||
import com.tencent.supersonic.headless.chat.knowledge.builder.BaseWordBuilder;
|
import com.tencent.supersonic.headless.chat.knowledge.builder.BaseWordBuilder;
|
||||||
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
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.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.utils.ChatWorkflowEngine;
|
import com.tencent.supersonic.headless.server.utils.ChatWorkflowEngine;
|
||||||
import com.tencent.supersonic.headless.server.utils.ComponentFactory;
|
import com.tencent.supersonic.headless.server.utils.ComponentFactory;
|
||||||
@@ -56,6 +58,8 @@ public class S2ChatLayerService implements ChatLayerService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DataSetService dataSetService;
|
private DataSetService dataSetService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private RetrieveService retrieveService;
|
||||||
|
@Autowired
|
||||||
private ChatWorkflowEngine chatWorkflowEngine;
|
private ChatWorkflowEngine chatWorkflowEngine;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -127,6 +131,11 @@ public class S2ChatLayerService implements ChatLayerService {
|
|||||||
return semanticParseInfo.getSqlEvaluation();
|
return semanticParseInfo.getSqlEvaluation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SearchResult> retrieve(QueryNLReq queryNLReq) {
|
||||||
|
return retrieveService.retrieve(queryNLReq);
|
||||||
|
}
|
||||||
|
|
||||||
private SemanticParseInfo correctSqlReq(QuerySqlReq querySqlReq, User user) {
|
private SemanticParseInfo correctSqlReq(QuerySqlReq querySqlReq, User user) {
|
||||||
ChatQueryContext queryCtx = new ChatQueryContext();
|
ChatQueryContext queryCtx = new ChatQueryContext();
|
||||||
SemanticSchema semanticSchema = schemaService.getSemanticSchema();
|
SemanticSchema semanticSchema = schemaService.getSemanticSchema();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.server.task;
|
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.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@@ -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 java.util.concurrent.ExecutorService;
|
||||||
import org.apache.arrow.flight.sql.FlightSqlProducer;
|
import org.apache.arrow.flight.sql.FlightSqlProducer;
|
||||||
@@ -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.request.QueryNLReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;
|
import com.tencent.supersonic.headless.api.pojo.response.SearchResult;
|
||||||
@@ -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.Any.pack;
|
||||||
import static com.google.protobuf.ByteString.copyFrom;
|
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.QuerySqlReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
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.facade.service.SemanticLayerService;
|
||||||
import com.tencent.supersonic.headless.server.utils.FlightUtils;
|
import com.tencent.supersonic.headless.server.utils.FlightUtils;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
@@ -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.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
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.MatchText;
|
||||||
import com.tencent.supersonic.headless.chat.mapper.ModelWithSemanticType;
|
import com.tencent.supersonic.headless.chat.mapper.ModelWithSemanticType;
|
||||||
import com.tencent.supersonic.headless.chat.mapper.SearchMatchStrategy;
|
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.DataSetService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
Reference in New Issue
Block a user