Commit e51a2e6c authored by 陈立彬's avatar 陈立彬

保留原AI提问接口

parent 012c8d80
......@@ -329,7 +329,67 @@ public class AppChatCompletionService {
* @param request
* @return
*/
public Flux<ServerSentEvent<UserAskResultMobileDto>> userAsk(UserPrincipal userPrincipal, UserQaMobileRequestDto request) {
public UserAskResultMobileDto userAsk(UserPrincipal userPrincipal, UserQaMobileRequestDto request) {
UserAskResultMobileDto result = new UserAskResultMobileDto();
// 获取会话详情
UserQaRequestModel requestModel = new UserQaRequestModel();
requestModel.setChatCompletionId(request.getChatCompletionId());
requestModel.setUserId(userPrincipal.getUserId());
UserChatCompletionResponseModel ccModel = chatCompletionService.userQaDetail(requestModel);
String sessionId = "";
if(Objects.nonNull(ccModel) && StrUtil.isNotEmpty(ccModel.getSessionId())) {
sessionId = ccModel.getSessionId();
}
// 更新会话信息
UserChatCompletionSaveModel saveModel = new UserChatCompletionSaveModel();
saveModel.setUserId(userPrincipal.getUserId());
saveModel.setUserName(userPrincipal.getUserName());
saveModel.setId(request.getChatCompletionId());
saveModel.setLastQuestion(request.getContent());
saveModel.setShopId(userPrincipal.getShopId());
saveModel.setShopName(userPrincipal.getShopName());
// 首次提问
if(Objects.isNull(request.getChatCompletionId()) || (Objects.nonNull(ccModel) && StrUtil.isEmpty(ccModel.getFirstQuestion()))) {
saveModel.setCreateTime(new Date());
saveModel.setFirstQuestion(request.getContent());
}
Integer recordId = chatCompletionService.saveUserQaSession(saveModel);
// 保存问答详情
chatCompletionService.saveUserQaRecord(recordId, 0, request.getContent(), request.getAssistantId());
// 问一下AI
AiChatComplateResultDto complateResultDto = ask4Knowledge(sessionId, userPrincipal.getUserId(), request.getContent(), request.getAssistantId());
if(Objects.nonNull(complateResultDto)) {
String replyContent = complateResultDto.getContent();
// 更新DIFY会话ID
if(StrUtil.isEmpty(sessionId)) {
UserChatCompletionSaveModel updateModel = new UserChatCompletionSaveModel();
updateModel.setId(recordId);
updateModel.setSessionId(sessionId);
chatCompletionService.saveUserQaSession(updateModel);
}
// 保存AI问答详情
chatCompletionService.saveUserQaRecord(recordId, 1, replyContent, request.getAssistantId());
result.setChatCompletionId(recordId);
result.setReplyContent(replyContent);
}
return result;
}
/**
* 用户提问
* @param request
* @return
*/
public Flux<ServerSentEvent<UserAskResultMobileDto>> userAsk4Stream(UserPrincipal userPrincipal, UserQaMobileRequestDto request) {
// 获取会话详情
UserQaRequestModel requestModel = new UserQaRequestModel();
requestModel.setChatCompletionId(request.getChatCompletionId());
......
......@@ -56,11 +56,11 @@ public class ChatCompletionMobileController {
@Operation(summary = "用户提问")
@PostMapping("/ask")
public Flux<ServerSentEvent<UserAskResultMobileDto>> ask(@Parameter(hidden = true) UserPrincipal userPrincipal,
@PostMapping("/ask_stream")
public Flux<ServerSentEvent<UserAskResultMobileDto>> askStream(@Parameter(hidden = true) UserPrincipal userPrincipal,
@RequestBody UserQaMobileRequestDto request) {
request.setContent(commonService.sentenceWordCorrect(request.getContent()));
return chatCompletionService.userAsk(userPrincipal, request);
return chatCompletionService.userAsk4Stream(userPrincipal, request);
}
@Operation(summary = "切换助手")
......@@ -88,4 +88,13 @@ public class ChatCompletionMobileController {
PageResult<UserChatCompletionHistoryMobileDto> pageResult = chatCompletionService.userQaHistoryMobilePaginQuery(userPrincipal, chatCompletionId, pageNo, pageSize);
return ApiResponse.ok(pageResult);
}
@Operation(summary = "用户提问")
@PostMapping("/ask")
public ApiResponse<UserAskResultMobileDto> ask(@Parameter(hidden = true) UserPrincipal userPrincipal,
@RequestBody UserQaMobileRequestDto request) {
request.setContent(commonService.sentenceWordCorrect(request.getContent()));
UserAskResultMobileDto result = chatCompletionService.userAsk(userPrincipal, request);
return ApiResponse.ok(result);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment