mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 05:43:51 +00:00
[improvement][headless-chat]Incorporate Request into Context objects, removing unnecessary copy.
This commit is contained in:
@@ -93,19 +93,6 @@ public class S2ChatLayerService implements ChatLayerService {
|
||||
return parseResult;
|
||||
}
|
||||
|
||||
private ChatQueryContext buildChatQueryContext(QueryNLReq queryNLReq) {
|
||||
SemanticSchema semanticSchema = schemaService.getSemanticSchema(queryNLReq.getDataSetIds());
|
||||
Map<Long, List<Long>> modelIdToDataSetIds = dataSetService.getModelIdToDataSetIds();
|
||||
ChatQueryContext queryCtx = ChatQueryContext.builder()
|
||||
.queryFilters(queryNLReq.getQueryFilters()).semanticSchema(semanticSchema)
|
||||
.candidateQueries(new ArrayList<>()).mapInfo(new SchemaMapInfo())
|
||||
.modelIdToDataSetIds(modelIdToDataSetIds).text2SQLType(queryNLReq.getText2SQLType())
|
||||
.mapModeEnum(queryNLReq.getMapModeEnum()).dataSetIds(queryNLReq.getDataSetIds())
|
||||
.build();
|
||||
BeanUtils.copyProperties(queryNLReq, queryCtx);
|
||||
return queryCtx;
|
||||
}
|
||||
|
||||
public void correct(QuerySqlReq querySqlReq, User user) {
|
||||
SemanticParseInfo semanticParseInfo = correctSqlReq(querySqlReq, user);
|
||||
querySqlReq.setSql(semanticParseInfo.getSqlInfo().getCorrectedS2SQL());
|
||||
@@ -122,6 +109,15 @@ public class S2ChatLayerService implements ChatLayerService {
|
||||
return retrieveService.retrieve(queryNLReq);
|
||||
}
|
||||
|
||||
private ChatQueryContext buildChatQueryContext(QueryNLReq queryNLReq) {
|
||||
ChatQueryContext queryCtx = new ChatQueryContext(queryNLReq);
|
||||
SemanticSchema semanticSchema = schemaService.getSemanticSchema(queryNLReq.getDataSetIds());
|
||||
Map<Long, List<Long>> modelIdToDataSetIds = dataSetService.getModelIdToDataSetIds();
|
||||
queryCtx.setSemanticSchema(semanticSchema);
|
||||
queryCtx.setModelIdToDataSetIds(modelIdToDataSetIds);
|
||||
return queryCtx;
|
||||
}
|
||||
|
||||
private SemanticParseInfo correctSqlReq(QuerySqlReq querySqlReq, User user) {
|
||||
ChatQueryContext queryCtx = new ChatQueryContext();
|
||||
SemanticSchema semanticSchema =
|
||||
|
||||
@@ -26,7 +26,7 @@ public class EntityInfoProcessor implements ResultProcessor {
|
||||
DataSetSchema dataSetSchema =
|
||||
semanticService.getDataSetSchema(parseInfo.getDataSetId());
|
||||
EntityInfo entityInfo = semanticService.getEntityInfo(parseInfo, dataSetSchema,
|
||||
chatQueryContext.getUser());
|
||||
chatQueryContext.getRequest().getUser());
|
||||
parseInfo.setEntityInfo(entityInfo);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.tencent.supersonic.headless.server.service.RetrieveService;
|
||||
import com.tencent.supersonic.headless.server.service.SchemaService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -75,8 +74,7 @@ public class RetrieveServiceImpl implements RetrieveService {
|
||||
log.debug("originals terms: {}", originals);
|
||||
Set<Long> dataSetIds = queryNLReq.getDataSetIds();
|
||||
|
||||
ChatQueryContext chatQueryContext = new ChatQueryContext();
|
||||
BeanUtils.copyProperties(queryNLReq, chatQueryContext);
|
||||
ChatQueryContext chatQueryContext = new ChatQueryContext(queryNLReq);
|
||||
chatQueryContext.setModelIdToDataSetIds(dataSetService.getModelIdToDataSetIds());
|
||||
|
||||
Map<MatchText, List<HanlpMapResult>> regTextMap =
|
||||
|
||||
@@ -140,7 +140,7 @@ public class ChatWorkflowEngine {
|
||||
SemanticLayerService queryService =
|
||||
ContextUtils.getBean(SemanticLayerService.class);
|
||||
SemanticTranslateResp explain =
|
||||
queryService.translate(semanticQueryReq, queryCtx.getUser());
|
||||
queryService.translate(semanticQueryReq, queryCtx.getRequest().getUser());
|
||||
parseInfo.getSqlInfo().setQuerySQL(explain.getQuerySQL());
|
||||
if (StringUtils.isNotBlank(explain.getErrMsg())) {
|
||||
errorMsg.add(explain.getErrMsg());
|
||||
|
||||
Reference in New Issue
Block a user