| | |
| | | if(ObjectUtil.isNull(aiProductRoleLink)){ |
| | | throw new FebsException("产品AI陪练不存在"); |
| | | } |
| | | String companyId = aiProductRoleLink.getCompanyId(); |
| | | |
| | | Date nowTime = new Date(); |
| | | LambdaQueryWrapper<AiMemberTalk> query = Wrappers.lambdaQuery(AiMemberTalk.class); |
| | |
| | | query.last("limit 1"); |
| | | AiMemberTalk aiMemberTalk = this.getByQuery(query); |
| | | if (ObjectUtil.isNull(aiMemberTalk)){ |
| | | aiMemberTalk = this.add(memberUuid,productId,nowTime); |
| | | aiMemberTalk = this.add(memberUuid,companyId,productId,nowTime); |
| | | } |
| | | |
| | | List<AiMessage> aiMessageDtoList = aiMemberTalkItemService.getQuestionUpDownContext(aiMemberTalk.getId(),AiTypeEnum.QUESTION.getCode()); |
| | | |
| | | AiResponse aiResponse = aiService.start(aiMessageDtoList,AiTypeEnum.QUESTION.getCode(),aiProductRoleLink.getProductRoleId(),AiTypeEnum.QUESTION.getName(), null); |
| | | if(aiResponse.getCode().equals("200")){ |
| | | aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),1,aiResponse.getResContext(),nowTime); |
| | | this.updateTimeUpdate(nowTime,aiMemberTalk.getId()); |
| | | }else{ |
| | | throw new FebsException(aiResponse.getDescription()); |
| | | } |
| | | |
| | | ApiMemberTalkVo apiMemberTalkVo = new ApiMemberTalkVo(); |
| | | apiMemberTalkVo.setMemberTalkId(aiMemberTalk.getId()); |
| | | apiMemberTalkVo.setType(1); |
| | | apiMemberTalkVo.setContext(aiResponse.getResContext()); |
| | | if(aiResponse.getCode().equals("200")){ |
| | | AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 1, aiResponse.getResContext(), nowTime); |
| | | apiMemberTalkVo.setMemberTalkItemId(aiMemberTalkItem.getId()); |
| | | this.updateTimeUpdate(nowTime,aiMemberTalk.getId()); |
| | | }else{ |
| | | throw new FebsException(aiResponse.getDescription()); |
| | | } |
| | | return new FebsResponse().success().data(apiMemberTalkVo); |
| | | } |
| | | |
| | |
| | | callback.accept(aiResponse); |
| | | return; |
| | | } |
| | | String companyId = aiProductRoleLink.getCompanyId(); |
| | | |
| | | // 构造AI请求 |
| | | AiRequest aiRequest = new AiRequest(); |
| | |
| | | query.last("limit 1"); |
| | | AiMemberTalk aiMemberTalk = this.getByQuery(query); |
| | | if (ObjectUtil.isNull(aiMemberTalk)) { |
| | | aiMemberTalk = this.add(memberUuid, productId, nowTime); |
| | | aiMemberTalk = this.add(memberUuid,companyId, productId, nowTime); |
| | | } |
| | | try { |
| | | if (aiResponse.getCode().equals("200")) { |
| | | // 如果是最终结果(包含报告) |
| | | if (aiResponse.getReport() != null) { |
| | | // 保存完整响应到数据库 |
| | | aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(), 1, aiResponse.getResContext(), nowTime); |
| | | aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 1, aiResponse.getResContext(), nowTime); |
| | | this.updateTimeUpdate(nowTime, aiMemberTalk.getId()); |
| | | |
| | | callback.accept(aiResponse); |
| | |
| | | throw new FebsException("产品AI陪练对话不存在"); |
| | | } |
| | | |
| | | String companyId = aiMemberTalk.getCompanyId(); |
| | | |
| | | LambdaQueryWrapper<AiProductRoleLink> productLinkQuery = Wrappers.lambdaQuery(AiProductRoleLink.class); |
| | | productLinkQuery.eq(AiProductRoleLink::getProductId,aiMemberTalk.getProductId()); |
| | | productLinkQuery.last("limit 1"); |
| | |
| | | memberTalkItemQuery.orderByDesc(AiMemberTalkItem::getCreatedTime); |
| | | memberTalkItemQuery.last("limit 1"); |
| | | AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.getByQuery(memberTalkItemQuery); |
| | | aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),2,reqContext,new Date()); |
| | | aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),companyId,2,reqContext,new Date()); |
| | | |
| | | String format = StrUtil.format(ANSWER_FORMAT, aiMemberTalkItem.getContext(), reqContext); |
| | | log.info("format:{}",format); |
| | | // AiResponse aiResponse = aiService.start(aiProductRoleLink.getProductRoleId(), format); |
| | | |
| | | |
| | | ApiMemberTalkVo apiMemberTalkVo = new ApiMemberTalkVo(); |
| | | apiMemberTalkVo.setMemberTalkId(aiMemberTalk.getId()); |
| | | apiMemberTalkVo.setType(3); |
| | | List<AiMessage> aiMessageDtoList = aiMemberTalkItemService.getQuestionUpDownContext(aiMemberTalk.getId(),AiTypeEnum.ANSWER.getCode()); |
| | | AiResponse aiResponse = aiService.start(aiMessageDtoList,AiTypeEnum.ANSWER.getCode(),aiProductRoleLink.getProductRoleId(), reqContext,aiMemberTalkItem.getContext()); |
| | | String context = null; |
| | |
| | | if ("null".equals( context)){ |
| | | context = aiResponse.getResContext(); |
| | | } |
| | | aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),3, context,nowTime); |
| | | AiMemberTalkItem talkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 3, context, nowTime); |
| | | this.updateTimeUpdate(nowTime,aiMemberTalk.getId()); |
| | | |
| | | |
| | | apiMemberTalkVo.setContext(context); |
| | | apiMemberTalkVo.setMemberTalkItemId(talkItem.getId()); |
| | | }else{ |
| | | throw new FebsException(aiResponse.getDescription()); |
| | | } |
| | | ApiMemberTalkVo apiMemberTalkVo = new ApiMemberTalkVo(); |
| | | apiMemberTalkVo.setMemberTalkId(aiMemberTalk.getId()); |
| | | apiMemberTalkVo.setType(3); |
| | | apiMemberTalkVo.setContext(context); |
| | | return new FebsResponse().success().data(apiMemberTalkVo); |
| | | } |
| | | @Override |
| | | public AiMemberTalk add(String memberUuid, String productId, Date nowTime) { |
| | | public AiMemberTalk add(String memberUuid,String companyId, String productId, Date nowTime) { |
| | | AiMemberTalk aiMemberTalk = new AiMemberTalk(); |
| | | aiMemberTalk.setId(UUID.getSimpleUUIDString()); |
| | | aiMemberTalk.setCompanyId(companyId); |
| | | aiMemberTalk.setCreatedTime(nowTime); |
| | | aiMemberTalk.setMemberId(memberUuid); |
| | | aiMemberTalk.setProductId(productId); |
| | |
| | | |
| | | @Override |
| | | public FebsResponse historyPage(ApiMemberTalkItemPageDto dto) { |
| | | |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | dto.setMemberUuid(memberUuid); |
| | | return aiMemberTalkItemService.historyPage(dto); |
| | | return new FebsResponse().success().data(aiMemberTalkItemService.historyPage(dto)); |
| | | } |
| | | |
| | | @Override |