(improvement)(chat) After a failed query, the absence of a returned queryId causes the recommendation question call to fail. (#562)

This commit is contained in:
lexluo09
2023-12-21 22:10:48 +08:00
committed by GitHub
parent fa38e37be3
commit 0a1f446fb8
5 changed files with 21 additions and 12 deletions

View File

@@ -136,12 +136,13 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
@Override @Override
public List<ChatParseDO> batchSaveParseInfo(ChatContext chatCtx, QueryReq queryReq, public List<ChatParseDO> batchSaveParseInfo(ChatContext chatCtx, QueryReq queryReq,
ParseResp parseResult, ParseResp parseResult, List<SemanticParseInfo> candidateParses) {
List<SemanticParseInfo> candidateParses) {
Long queryId = createChatQuery(parseResult, chatCtx, queryReq); Long queryId = createChatQuery(parseResult, chatCtx, queryReq);
List<ChatParseDO> chatParseDOList = new ArrayList<>(); List<ChatParseDO> chatParseDOList = new ArrayList<>();
getChatParseDO(chatCtx, queryReq, queryId, candidateParses, chatParseDOList); getChatParseDO(chatCtx, queryReq, queryId, candidateParses, chatParseDOList);
if (!CollectionUtils.isEmpty(candidateParses)) {
chatParseMapper.batchSaveParseInfo(chatParseDOList); chatParseMapper.batchSaveParseInfo(chatParseDOList);
}
return chatParseDOList; return chatParseDOList;
} }

View File

@@ -24,16 +24,16 @@ public class RespBuildProcessor implements ParseResultProcessor {
parseResp.setChatId(queryReq.getChatId()); parseResp.setChatId(queryReq.getChatId());
parseResp.setQueryText(queryReq.getQueryText()); parseResp.setQueryText(queryReq.getQueryText());
List<SemanticQuery> candidateQueries = queryContext.getCandidateQueries(); List<SemanticQuery> candidateQueries = queryContext.getCandidateQueries();
ChatService chatService = ContextUtils.getBean(ChatService.class);
if (candidateQueries.size() > 0) { if (candidateQueries.size() > 0) {
List<SemanticParseInfo> candidateParses = candidateQueries.stream() List<SemanticParseInfo> candidateParses = candidateQueries.stream()
.map(SemanticQuery::getParseInfo).collect(Collectors.toList()); .map(SemanticQuery::getParseInfo).collect(Collectors.toList());
parseResp.setSelectedParses(candidateParses); parseResp.setSelectedParses(candidateParses);
parseResp.setState(ParseResp.ParseState.COMPLETED); parseResp.setState(ParseResp.ParseState.COMPLETED);
ChatService chatService = ContextUtils.getBean(ChatService.class);
chatService.batchAddParse(chatContext, queryReq, parseResp);
} else { } else {
parseResp.setState(ParseResp.ParseState.FAILED); parseResp.setState(ParseResp.ParseState.FAILED);
} }
chatService.batchAddParse(chatContext, queryReq, parseResp);
} }
} }

View File

@@ -60,8 +60,8 @@ public class SqlInfoProcessor implements ParseResultProcessor {
} }
SqlInfo sqlInfo = parseInfo.getSqlInfo(); SqlInfo sqlInfo = parseInfo.getSqlInfo();
if (semanticQuery instanceof LLMSqlQuery) { if (semanticQuery instanceof LLMSqlQuery) {
keyPipelineLog.info("s2sql:{}\ncorrectS2SQL:{}\nquerySQL:{}", sqlInfo.getS2SQL(), sqlInfo.getCorrectS2SQL(), keyPipelineLog.info("\ns2sql:{}\ncorrectS2SQL:{}\nquerySQL:{}", sqlInfo.getS2SQL(),
explainSql); sqlInfo.getCorrectS2SQL(), explainSql);
} }
sqlInfo.setQuerySQL(explainSql); sqlInfo.setQuerySQL(explainSql);
} }

View File

@@ -217,7 +217,15 @@ public class QueryServiceImpl implements QueryService {
return queryResult; return queryResult;
} }
// save time cost data /**
* save time cost data
*
* @param timeCostDOList
* @param queryText
* @param queryId
* @param userName
* @param chatId
*/
private void saveTimeCostInfo(List<StatisticsDO> timeCostDOList, private void saveTimeCostInfo(List<StatisticsDO> timeCostDOList,
String queryText, Long queryId, String queryText, Long queryId,
String userName, Long chatId) { String userName, Long chatId) {

View File

@@ -49,7 +49,7 @@ s2:
chat-model: chat-model:
provider: open_ai provider: open_ai
openai: openai:
api-key: sk api-key: api_key
model-name: gpt-3.5-turbo-16k model-name: gpt-3.5-turbo-16k
temperature: 0.0 temperature: 0.0
timeout: PT60S timeout: PT60S