(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

@@ -45,8 +45,8 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
private final ShowCaseCustomMapper showCaseCustomMapper;
public ChatQueryRepositoryImpl(ChatQueryDOMapper chatQueryDOMapper,
ChatParseMapper chatParseMapper,
ShowCaseCustomMapper showCaseCustomMapper) {
ChatParseMapper chatParseMapper,
ShowCaseCustomMapper showCaseCustomMapper) {
this.chatQueryDOMapper = chatQueryDOMapper;
this.chatParseMapper = chatParseMapper;
this.showCaseCustomMapper = showCaseCustomMapper;
@@ -136,12 +136,13 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
@Override
public List<ChatParseDO> batchSaveParseInfo(ChatContext chatCtx, QueryReq queryReq,
ParseResp parseResult,
List<SemanticParseInfo> candidateParses) {
ParseResp parseResult, List<SemanticParseInfo> candidateParses) {
Long queryId = createChatQuery(parseResult, chatCtx, queryReq);
List<ChatParseDO> chatParseDOList = new ArrayList<>();
getChatParseDO(chatCtx, queryReq, queryId, candidateParses, chatParseDOList);
chatParseMapper.batchSaveParseInfo(chatParseDOList);
if (!CollectionUtils.isEmpty(candidateParses)) {
chatParseMapper.batchSaveParseInfo(chatParseDOList);
}
return chatParseDOList;
}
@@ -153,7 +154,7 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
}
public void getChatParseDO(ChatContext chatCtx, QueryReq queryReq, Long queryId,
List<SemanticParseInfo> parses, List<ChatParseDO> chatParseDOList) {
List<SemanticParseInfo> parses, List<ChatParseDO> chatParseDOList) {
for (int i = 0; i < parses.size(); i++) {
ChatParseDO chatParseDO = new ChatParseDO();
chatParseDO.setChatId(Long.valueOf(chatCtx.getChatId()));

View File

@@ -24,16 +24,16 @@ public class RespBuildProcessor implements ParseResultProcessor {
parseResp.setChatId(queryReq.getChatId());
parseResp.setQueryText(queryReq.getQueryText());
List<SemanticQuery> candidateQueries = queryContext.getCandidateQueries();
ChatService chatService = ContextUtils.getBean(ChatService.class);
if (candidateQueries.size() > 0) {
List<SemanticParseInfo> candidateParses = candidateQueries.stream()
.map(SemanticQuery::getParseInfo).collect(Collectors.toList());
parseResp.setSelectedParses(candidateParses);
parseResp.setState(ParseResp.ParseState.COMPLETED);
ChatService chatService = ContextUtils.getBean(ChatService.class);
chatService.batchAddParse(chatContext, queryReq, parseResp);
} else {
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();
if (semanticQuery instanceof LLMSqlQuery) {
keyPipelineLog.info("s2sql:{}\ncorrectS2SQL:{}\nquerySQL:{}", sqlInfo.getS2SQL(), sqlInfo.getCorrectS2SQL(),
explainSql);
keyPipelineLog.info("\ns2sql:{}\ncorrectS2SQL:{}\nquerySQL:{}", sqlInfo.getS2SQL(),
sqlInfo.getCorrectS2SQL(), explainSql);
}
sqlInfo.setQuerySQL(explainSql);
}

View File

@@ -217,7 +217,15 @@ public class QueryServiceImpl implements QueryService {
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,
String queryText, Long queryId,
String userName, Long chatId) {

View File

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