From f9b3ac9ec3a73004d6ba072786e14a8f9e0b890a Mon Sep 17 00:00:00 2001 From: zren25 Date: Fri, 14 Mar 2025 17:45:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=B1=E8=B4=A5=E8=A1=A5?= =?UTF-8?q?=E5=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/analytic/center/job/CorpusFailJob.java | 130 +++++++++--------- .../analytic/center/service/DiFyService.java | 1 + .../center/service/impl/DiFyServiceImpl.java | 11 ++ 3 files changed, 79 insertions(+), 63 deletions(-) diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/job/CorpusFailJob.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/job/CorpusFailJob.java index 310cb07..9792387 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/job/CorpusFailJob.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/job/CorpusFailJob.java @@ -70,75 +70,79 @@ public class CorpusFailJob { aiAnalysisErrorsListlist.stream().forEach(aiAnalysisErrors -> { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisErrors.getAiAnalysisRequestId()); - AiAnalysisRequestLogs oldAiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(queryWrapper); + try { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisErrors.getAiAnalysisRequestId()); + AiAnalysisRequestLogs oldAiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(queryWrapper); - if (null != oldAiAnalysisRequestLogs) { - DiFyReq diFyReq = JSONObject.parseObject(oldAiAnalysisRequestLogs.getDifyRequest(), DiFyReq.class); - CorpusReportDTO corpusReportDTO = JSONObject.parseObject(oldAiAnalysisRequestLogs.getBusinessRequest(), CorpusReportDTO.class); + if (null != oldAiAnalysisRequestLogs) { + DiFyReq diFyReq = JSONObject.parseObject(oldAiAnalysisRequestLogs.getDifyRequest(), DiFyReq.class); + CorpusReportDTO corpusReportDTO = JSONObject.parseObject(oldAiAnalysisRequestLogs.getBusinessRequest(), CorpusReportDTO.class); + + JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyReq); + log.info("runDify execDifyFlow {}",execDifyFlow); + if(null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")){ + String text = execDifyFlow.getJSONObject("outputs").getString("text"); + String resultStrOne = FlowResultSplitUtil.flowOutputTextSplit(text, "任务1", "任务2"); + String resultStrTwo = FlowResultSplitUtil.flowOutputTextSplit(text, "任务2", null); + if (StringUtils.isBlank(resultStrOne) || StringUtils.isBlank(resultStrTwo)) { + log.info("企微语料解析为空,text:{}", text); + return; + } + Map ltoMap = new HashMap<>(); + ltoMap.put("analysisRecordId", execDifyFlow.getString("aiAnalysisRequestId")); + ltoMap.put("analysisScene", corpusReportDTO.getAnalysisScene() + ""); + String tag = ""; + if (corpusReportDTO.getAnalysisScene() == 1) { //企微 + ltoMap.put("unionId", corpusReportDTO.getUnionId()); + ltoMap.put("consultantId", corpusReportDTO.getUserId()); + tag = CategoryEnum.ENTERPRISE_WECHAT.getCode(); + } else { + ltoMap.put("recordId", corpusReportDTO.getUserId()); + tag = CategoryEnum.PHONE_VOICE.getCode(); + } + + ltoMap.put("communicateDate", corpusReportDTO.getCorpusTime()); + ltoMap.put("analysisResult", resultStrOne.replace("#", "")); + ltoMap.put("analysisDetail", resultStrTwo); + // 发送MQ + log.info("send mq {}", ltoMap); + tmTelephoneCorpusService.sendMq(tag, JSONObject.toJSONString(ltoMap)); + try { + // 保存报告 + tmCorpusReportService.saveTmCorpusReport(TmCorpusReport.builder() + .aiAnalysisRequestId(oldAiAnalysisRequestLogs.getAiAnalysisRequestId()) + .corpusType(corpusReportDTO.getAnalysisScene()) + .corpusTime(DateUtil.parseTime(corpusReportDTO.getCorpusTime())) + .userId(corpusReportDTO.getUserId()) + .unionId(corpusReportDTO.getUnionId()) + .reportTitle(resultStrOne.replace("#", "")) + .reportInfo(resultStrTwo) + .isLike(0) + .isDeleted(0) + .version(0) + .createBy("system") + .updateBy("") + .createSqlby("") + .updateSqlby("") + .createTime(new Date()) + .build()); + } catch (Exception e) { + log.info(" 企业语料处理保存报告异常processItem:{} ", e); + } - Object difyoutResult = diFyService.getDiFyObject(diFyReq); - JSONObject execDifyFlow = JSONObject.parseObject(JSON.toJSONString(difyoutResult)).getJSONObject("data"); - log.info("runDify execDifyFlow {}", execDifyFlow); - if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) { - String text = execDifyFlow.getJSONObject("outputs").getString("text"); - String resultStrOne = FlowResultSplitUtil.flowOutputTextSplit(text, "任务1", "任务2"); - String resultStrTwo = FlowResultSplitUtil.flowOutputTextSplit(text, "任务2", null); - if (StringUtils.isBlank(resultStrOne) || StringUtils.isBlank(resultStrTwo)) { - log.info("企微语料解析为空,text:{}", text); - return; } - Map ltoMap = new HashMap<>(); - ltoMap.put("analysisRecordId", execDifyFlow.getString("aiAnalysisRequestId")); - ltoMap.put("analysisScene", corpusReportDTO.getAnalysisScene() + ""); - String tag = ""; - if (corpusReportDTO.getAnalysisScene() == 1) { //企微 - ltoMap.put("unionId", corpusReportDTO.getUnionId()); - ltoMap.put("consultantId", corpusReportDTO.getUserId()); - tag = CategoryEnum.ENTERPRISE_WECHAT.getCode(); - } else { - ltoMap.put("recordId", corpusReportDTO.getUserId()); - tag = CategoryEnum.PHONE_VOICE.getCode(); - } - - ltoMap.put("communicateDate", corpusReportDTO.getCorpusTime()); - ltoMap.put("analysisResult", resultStrOne.replace("#", "")); - ltoMap.put("analysisDetail", resultStrTwo); - // 发送MQ - log.info("send mq {}", ltoMap); - tmTelephoneCorpusService.sendMq(tag, JSONObject.toJSONString(ltoMap)); - try { - // 保存报告 - tmCorpusReportService.saveTmCorpusReport(TmCorpusReport.builder() - .aiAnalysisRequestId(oldAiAnalysisRequestLogs.getAiAnalysisRequestId()) - .corpusType(corpusReportDTO.getAnalysisScene()) - .corpusTime(DateUtil.parseTime(corpusReportDTO.getCorpusTime())) - .userId(corpusReportDTO.getUserId()) - .unionId(corpusReportDTO.getUnionId()) - .reportTitle(resultStrOne.replace("#", "")) - .reportInfo(resultStrTwo) - .isLike(0) - .isDeleted(0) - .version(0) - .createBy("system") - .updateBy("") - .createSqlby("") - .updateSqlby("") - .createTime(new Date()) - .build()); - } catch (Exception e) { - log.info(" 企业语料处理保存报告异常processItem:{} ", e); - } - + oldAiAnalysisRequestLogs.setDifyResponse(JSON.toJSONString(execDifyFlow)); + aiAnalysisRequestLogsService.save(oldAiAnalysisRequestLogs); + aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1); + aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1"); + aiAnalysisErrorsService.save(aiAnalysisErrors); } - oldAiAnalysisRequestLogs.setDifyResponse(JSON.toJSONString(execDifyFlow)); - aiAnalysisRequestLogsService.save(oldAiAnalysisRequestLogs); - aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1); - aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1"); + } catch (Exception e) { + aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("0"); aiAnalysisErrorsService.save(aiAnalysisErrors); } - }); + }); } diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/DiFyService.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/DiFyService.java index c41c2c0..d311549 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/DiFyService.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/DiFyService.java @@ -9,4 +9,5 @@ public interface DiFyService { public Object getDiFyObject(DiFyReq diFyReq); public JSONObject executeDifyFlow(DiFyReq diFyReq, String businessType, String businessData); + public JSONObject executeDifyFlow(DiFyReq diFyReq); } diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DiFyServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DiFyServiceImpl.java index d930a13..4cd4819 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DiFyServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DiFyServiceImpl.java @@ -91,4 +91,15 @@ public class DiFyServiceImpl implements DiFyService{ } } + + @Override + public JSONObject executeDifyFlow(DiFyReq diFyReq) { + Map map = new HashMap<>(); + map.put("inputs",diFyReq.getInputs()); + map.put("response_mode","blocking"); + map.put("user",diFyReq.getUser()); + + JSONObject difyResult = diFyFeign.runWorkflows("Bearer "+diFyReq.getFlowId(),map); + return difyResult; + } }