(improvement)(chat) Fixed the problem that the agent's enableSearch setting does not take effect and avoid getting mapinfo when searching (#1277)

Co-authored-by: lxwcodemonkey
This commit is contained in:
LXW
2024-06-28 21:37:02 +08:00
committed by GitHub
parent af0fe6d1b1
commit a1083a92c2

View File

@@ -1,5 +1,6 @@
package com.tencent.supersonic.chat.server.service.impl; package com.tencent.supersonic.chat.server.service.impl;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq; import com.tencent.supersonic.chat.api.pojo.request.ChatExecuteReq;
import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq; import com.tencent.supersonic.chat.api.pojo.request.ChatParseReq;
@@ -55,6 +56,10 @@ public class ChatServiceImpl implements ChatService {
@Override @Override
public List<SearchResult> search(ChatParseReq chatParseReq) { public List<SearchResult> search(ChatParseReq chatParseReq) {
ChatParseContext chatParseContext = buildParseContext(chatParseReq); ChatParseContext chatParseContext = buildParseContext(chatParseReq);
Agent agent = chatParseContext.getAgent();
if (!agent.enableSearch()) {
return Lists.newArrayList();
}
QueryReq queryReq = QueryReqConverter.buildText2SqlQueryReq(chatParseContext); QueryReq queryReq = QueryReqConverter.buildText2SqlQueryReq(chatParseContext);
return retrieveService.retrieve(queryReq); return retrieveService.retrieve(queryReq);
} }
@@ -64,6 +69,7 @@ public class ChatServiceImpl implements ChatService {
ParseResp parseResp = new ParseResp(chatParseReq.getChatId(), chatParseReq.getQueryText()); ParseResp parseResp = new ParseResp(chatParseReq.getChatId(), chatParseReq.getQueryText());
chatManageService.createChatQuery(chatParseReq, parseResp); chatManageService.createChatQuery(chatParseReq, parseResp);
ChatParseContext chatParseContext = buildParseContext(chatParseReq); ChatParseContext chatParseContext = buildParseContext(chatParseReq);
supplyMapInfo(chatParseContext);
for (ChatParser chatParser : chatParsers) { for (ChatParser chatParser : chatParsers) {
chatParser.parse(chatParseContext, parseResp); chatParser.parse(chatParseContext, parseResp);
} }
@@ -127,10 +133,13 @@ public class ChatServiceImpl implements ChatService {
BeanMapper.mapper(chatParseReq, chatParseContext); BeanMapper.mapper(chatParseReq, chatParseContext);
Agent agent = agentService.getAgent(chatParseReq.getAgentId()); Agent agent = agentService.getAgent(chatParseReq.getAgentId());
chatParseContext.setAgent(agent); chatParseContext.setAgent(agent);
return chatParseContext;
}
private void supplyMapInfo(ChatParseContext chatParseContext) {
QueryReq queryReq = QueryReqConverter.buildText2SqlQueryReq(chatParseContext); QueryReq queryReq = QueryReqConverter.buildText2SqlQueryReq(chatParseContext);
MapResp mapResp = chatQueryService.performMapping(queryReq); MapResp mapResp = chatQueryService.performMapping(queryReq);
chatParseContext.setMapInfo(mapResp.getMapInfo()); chatParseContext.setMapInfo(mapResp.getMapInfo());
return chatParseContext;
} }
private ChatExecuteContext buildExecuteContext(ChatExecuteReq chatExecuteReq) { private ChatExecuteContext buildExecuteContext(ChatExecuteReq chatExecuteReq) {