开发画像dcc场景
This commit is contained in:
@@ -4,9 +4,8 @@ public enum CategoryEnum {
|
||||
|
||||
ENTERPRISE_WECHAT("enterprise_wechat", "企微记录"),
|
||||
PHONE_VOICE("phone_voice", "语音电话"),
|
||||
PHONE_VOICE_PORTRAIT("phone_voice_portrait", "语音电话,用户画像"),
|
||||
PORTRAIT_ALLIN("portrait_allin", "语音电话,用户画像"),
|
||||
NAMEPLATE_VOICE("nameplate_voice", "铭牌"),
|
||||
|
||||
OTHER("未知", "未知记录"),
|
||||
;
|
||||
private String code;
|
||||
|
||||
@@ -68,6 +68,9 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
@Value("${dify.corpus.telephoneToken}")
|
||||
private String telephoneToken;
|
||||
|
||||
@Value("${dify.corpus.portrait.oneToken}")
|
||||
private String telephoneTokenPortrait;
|
||||
|
||||
@Value("${dify.intelligentCustomer.channel4In1Token}")
|
||||
private String channel4In1Token;
|
||||
@Autowired
|
||||
@@ -156,43 +159,65 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
corpusReportDTO.setRecordId(aicorpusTelephone.getSourceId());
|
||||
corpusReportDTO.setAnalysisScene(2l);
|
||||
// 获取配置
|
||||
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.SMART_ASSISTANT.getCode(), JSONObject.toJSONString(corpusReportDTO), aicorpusTelephone.getAiAnalysisRequestId());
|
||||
log.info("runDify execDifyFlow {}",execDifyFlow);
|
||||
if(null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")){
|
||||
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.SMART_ASSISTANT.getCode(),
|
||||
JSONObject.toJSONString(corpusReportDTO), aicorpusTelephone.getAiAnalysisRequestId());
|
||||
log.info("runDify execDifyFlow 返回 ,总结 {}",execDifyFlow);
|
||||
parseDfiyResult(execDifyFlow, aicorpusTelephone.getSourceId(), formattedDateStartTime, aicorpusTelephone.getAiAnalysisRequestId(),BusinessTypeEnum.SMART_ASSISTANT.getCode());
|
||||
|
||||
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;
|
||||
}
|
||||
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId");
|
||||
Map<String, String> ltoMap = new HashMap();
|
||||
ltoMap.put("analysisRecordId", aiAnalysisRequestId);
|
||||
ltoMap.put("analysisScene", "2");
|
||||
ltoMap.put("recordId", aicorpusTelephone.getSourceId());
|
||||
ltoMap.put("communicateDate", formattedDateStartTime);
|
||||
ltoMap.put("analysisResult", resultStrOne);
|
||||
ltoMap.put("analysisDetail", resultStrTwo);
|
||||
// 发送MQ
|
||||
// 获取配置
|
||||
diFyImageReq.setFlowId(telephoneTokenPortrait);
|
||||
JSONObject execDifyFlowForPortrait = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode(),
|
||||
JSONObject.toJSONString(corpusReportDTO), aicorpusTelephone.getAiAnalysisRequestId());
|
||||
log.info("runDify execDifyFlow 返回 ,客户画像 {}",execDifyFlow);
|
||||
parseDfiyResult(execDifyFlowForPortrait, aicorpusTelephone.getSourceId(), formattedDateStartTime, aicorpusTelephone.getAiAnalysisRequestId(), BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
log.info("send mq {}",ltoMap);
|
||||
private void parseDfiyResult(JSONObject execDifyFlow,String recordId,String communicateDate,
|
||||
String aiAnalysisRequestIdDB,String businessType) {
|
||||
|
||||
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;
|
||||
}
|
||||
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId");
|
||||
Map<String, String> ltoMap = new HashMap();
|
||||
ltoMap.put("analysisRecordId", aiAnalysisRequestId);
|
||||
ltoMap.put("analysisScene", "2");
|
||||
ltoMap.put("recordId",recordId);
|
||||
ltoMap.put("communicateDate", communicateDate);
|
||||
ltoMap.put("analysisResult", resultStrOne);
|
||||
ltoMap.put("analysisDetail", resultStrTwo);
|
||||
// 发送MQ
|
||||
|
||||
|
||||
if (BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode().equals(businessType)){//DCC 客户画像
|
||||
log.info("send mq 电话语料场景,客户画像需求, {}",ltoMap);
|
||||
sendMq( CategoryEnum.PORTRAIT_ALLIN.getCode(), JSONObject.toJSONString(ltoMap));
|
||||
}else if (BusinessTypeEnum.SMART_ASSISTANT.getCode().equals(businessType)){ // dcc 总结
|
||||
log.info("send mq 电话语料场景,总结需求, {}",ltoMap);
|
||||
sendMq( CategoryEnum.PHONE_VOICE.getCode(), JSONObject.toJSONString(ltoMap));
|
||||
try {
|
||||
if(StringUtils.isNotEmpty(aicorpusTelephone.getAiAnalysisRequestId())){
|
||||
AiAnalysisErrors aiAnalysisErrors = new AiAnalysisErrors();
|
||||
aiAnalysisErrors.setAiAnalysisRequestId(aiAnalysisRequestId);
|
||||
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1");
|
||||
aiAnalysisErrorsService.updateAiAnalysisErrors(aiAnalysisErrors);
|
||||
}
|
||||
aiAnalysisRequestLogsService.saveAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(JSONObject.toJSONString(ltoMap)).build());
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.info(" 电话语料处理保存报告异常processItem:{} ", e);
|
||||
try {
|
||||
if(StringUtils.isNotEmpty(aiAnalysisRequestIdDB)){
|
||||
AiAnalysisErrors aiAnalysisErrors = new AiAnalysisErrors();
|
||||
aiAnalysisErrors.setAiAnalysisRequestId(aiAnalysisRequestIdDB);
|
||||
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1");
|
||||
aiAnalysisErrorsService.updateAiAnalysisErrors(aiAnalysisErrors);
|
||||
}
|
||||
aiAnalysisRequestLogsService.saveAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(JSONObject.toJSONString(ltoMap)).build());
|
||||
|
||||
} catch (Exception e) {
|
||||
log.info(" 电话语料处理保存报告异常processItem:{} ", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user