| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.controller.enumerates.AiTypeEnum; |
| | | import cc.mrbird.febs.ai.enumerates.AiTypeEnum; |
| | | import cc.mrbird.febs.ai.entity.AiMemberTalk; |
| | | import cc.mrbird.febs.ai.entity.AiMemberTalkItem; |
| | | import cc.mrbird.febs.ai.entity.AiProductRoleLink; |
| | | import cc.mrbird.febs.ai.mapper.AiMemberTalkMapper; |
| | | import cc.mrbird.febs.ai.req.ai.AiMessage; |
| | | import cc.mrbird.febs.ai.req.ai.AiRequest; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkAnswerDto; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkDto; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; |
| | | import cc.mrbird.febs.ai.req.memberTalk.*; |
| | | import cc.mrbird.febs.ai.res.ai.AiResponse; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkReloadVo; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkVo; |
| | | import cc.mrbird.febs.ai.service.AiMemberTalkItemService; |
| | | import cc.mrbird.febs.ai.service.AiMemberTalkService; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import reactor.core.publisher.Flux; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | apiMemberTalkVo.setType(1); |
| | | apiMemberTalkVo.setContext(aiResponse.getResContext()); |
| | | return new FebsResponse().success().data(apiMemberTalkVo); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse reload(ApiMemberTalkReloadDto dto) { |
| | | |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | ApiMemberTalkReloadVo apiMemberTalkReloadVo = new ApiMemberTalkReloadVo(); |
| | | String memberTalkId = dto.getMemberTalkId(); |
| | | LambdaQueryWrapper<AiMemberTalkItem> queryWrapper = Wrappers.lambdaQuery(AiMemberTalkItem.class); |
| | | queryWrapper.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId); |
| | | queryWrapper.eq(AiMemberTalkItem::getType,AiTypeEnum.QUESTION_ANSWER.getCode()); |
| | | queryWrapper.orderByDesc(AiMemberTalkItem::getCreatedTime); |
| | | queryWrapper.last("limit 1"); |
| | | AiMemberTalkItem byQuery = aiMemberTalkItemService.getByQuery(queryWrapper); |
| | | if (ObjectUtil.isNotNull(byQuery)){ |
| | | apiMemberTalkReloadVo.setContext(byQuery.getContext()); |
| | | apiMemberTalkReloadVo.setMemberTalkId(memberTalkId); |
| | | apiMemberTalkReloadVo.setType(AiTypeEnum.QUESTION_ANSWER.getCode()); |
| | | } |
| | | return new FebsResponse().success().data(apiMemberTalkReloadVo); |
| | | } |
| | | |
| | | @Override |
| | |
| | | dto.setMemberUuid(memberUuid); |
| | | return aiMemberTalkItemService.historyPage(dto); |
| | | } |
| | | |
| | | @Override |
| | | public Flux<FebsResponse> answerStream(String question) { |
| | | |
| | | // String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | return aiService.answerStream(question); |
| | | } |
| | | |
| | | } |