Compare commits
10 Commits
4acd6ce540
...
dev-featur
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ae9330b1a | ||
|
|
5326a6f431 | ||
|
|
887709db51 | ||
|
|
77551cf0c8 | ||
|
|
7777da8d0e | ||
|
|
3cbcbd5a54 | ||
|
|
7fc35dafa7 | ||
|
|
519bd877e1 | ||
|
|
370acd0d29 | ||
|
|
a054245783 |
@@ -23,7 +23,6 @@ import com.volvo.ai.analytic.center.mq.CorpusQuestionProducer;
|
||||
import com.volvo.ai.analytic.center.service.*;
|
||||
import com.volvo.ai.analytic.center.utils.AiAnalysisUtils;
|
||||
import com.volvo.ai.analytic.center.utils.ConstantStr;
|
||||
import com.volvo.ai.analytic.center.utils.FlowResultSplitUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -107,10 +106,12 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
public void saveTelephoneCorpus(TmTelephoneCorpus tmTelephoneCorpus) {
|
||||
this.save(tmTelephoneCorpus);
|
||||
}
|
||||
|
||||
private String communicateDateStr = "communicateDate";
|
||||
private String outputsStr="outputs";
|
||||
private String aiAnalysisRequestIdStr = "aiAnalysisRequestId";
|
||||
@Override
|
||||
public void runTelephoneCorpusDify(AicorpusTelephoneDTO aicorpusTelephone) {
|
||||
|
||||
try {
|
||||
if (null != aicorpusTelephone) {
|
||||
|
||||
List<DataMaskingRule> maskingRuleItems = dataMaskingRuleService.getDataMaskingRuleListByApplicationChannel(BusinessTypeEnum.SMART_ASSISTANT.getCode());
|
||||
@@ -123,12 +124,11 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
diFyImageReq.setUser(ConstantStr.corpus_user);
|
||||
|
||||
|
||||
|
||||
JSONObject jsonObject = JSONObject.parseObject(aicorpusTelephone.getDisplay());
|
||||
|
||||
log.info("电话语料内容:{}", jsonObject.toString());
|
||||
inputMap.put("chat", aicorpusTelephone.getDisplay());
|
||||
JSONArray segments = jsonObject.getJSONArray("segments");
|
||||
|
||||
log.info("电话语料内容segments:{}", segments.toString());
|
||||
// 遍历 segments
|
||||
StringBuffer chatList = new StringBuffer();
|
||||
segments.stream()
|
||||
@@ -158,6 +158,9 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
|
||||
inputMap.put("chat", chatList.toString());
|
||||
inputMap.put("model", getCarModelList());
|
||||
inputMap.put("recordId", aicorpusTelephone.getSourceId());
|
||||
inputMap.put("version", 2);
|
||||
|
||||
diFyImageReq.setInputs(inputMap);
|
||||
CorpusReportDTO corpusReportDTO = new CorpusReportDTO();
|
||||
corpusReportDTO.setCorpusTime(formattedDateStartTime);
|
||||
@@ -192,12 +195,13 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
long startTime2 = System.currentTimeMillis();
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
log.info("铭牌语料可用许可授权数,总结和分类场景={}", semaphore.availablePermits());
|
||||
log.info("铭牌语料可用许可授权数,客户画像场景={}", semaphore.availablePermits());
|
||||
Thread.sleep(2000);
|
||||
// 获取许可 - 如果没有可用许可会阻塞等待
|
||||
semaphore.acquire();
|
||||
// 创建新的DiFyReq对象以避免线程安全问题
|
||||
inputMap.put("businessId", aicorpusTelephone.getSourceId());
|
||||
inputMap.put("communicateDate",aicorpusTelephone.getTranscribeTime());
|
||||
inputMap.put(communicateDateStr, aicorpusTelephone.getTranscribeTime());
|
||||
inputMap.put("analysisScene", "2");
|
||||
diFyImageReq.setInputs(inputMap);
|
||||
|
||||
@@ -222,36 +226,26 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
//第二个业务场景, 结束
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("runTelephoneCorpusDify error:{}", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void parseDfiyResult(JSONObject execDifyFlow,String recordId,String communicateDate,
|
||||
String aiAnalysisRequestIdDB,String businessType) {
|
||||
log.info("dcc语料 parseDfiyResult ,businessType: {} execDifyFlow: {}", businessType,execDifyFlow);
|
||||
log.info("dcc语料 parseDfiyResult ,businessType: {} execDifyFlow: {}, recordId: {},communicateDate: {}", businessType,execDifyFlow,recordId,communicateDate);
|
||||
try {
|
||||
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);
|
||||
JSONObject text = execDifyFlow.getJSONObject(outputsStr);
|
||||
// 发送MQ
|
||||
if (BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode().equals(businessType)){//DCC 客户画像
|
||||
log.info("send mq 电话语料场景,客户画像需求, {}",ltoMap);
|
||||
sendMq( CategoryEnum.PORTRAIT_ALLIN.getCode(), JSONObject.toJSONString(ltoMap));
|
||||
log.info("send mq 电话语料场景,客户画像需求, {}",text);
|
||||
sendMq( CategoryEnum.PORTRAIT_ALLIN.getCode(), text.toJSONString());
|
||||
|
||||
}else{ // dcc 总结
|
||||
log.info("send mq 电话语料场景,总结需求, {}",ltoMap);
|
||||
sendMq( CategoryEnum.PHONE_VOICE.getCode(), JSONObject.toJSONString(ltoMap));
|
||||
log.info("send mq 电话语料场景,总结需求, {}",text);
|
||||
sendMq( CategoryEnum.PHONE_VOICE.getCode(), text.toJSONString());
|
||||
}
|
||||
try {
|
||||
if(StringUtils.isNotEmpty(aiAnalysisRequestIdDB)){
|
||||
@@ -260,10 +254,10 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1");
|
||||
aiAnalysisErrorsService.updateAiAnalysisErrors(aiAnalysisErrors);
|
||||
}
|
||||
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(JSONObject.toJSONString(ltoMap)).build());
|
||||
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString(aiAnalysisRequestIdStr)).businessResponse(text.toJSONString()).build());
|
||||
|
||||
} catch (Exception e) {
|
||||
log.info(" 电话语料处理保存报告异常processItem:{} ", e);
|
||||
log.info(" 电话语料处理保存报告异常processItem:{} ", e.getMessage());
|
||||
}
|
||||
}else {
|
||||
log.info("dcc语料 parseDfiyResult 非正常状态");
|
||||
@@ -346,7 +340,7 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
String newAiAnalysisRequestId = StringUtils.isEmpty(oldAiAnalysisRequestId)? AiAnalysisUtils.getAiAnalysisRequestId(BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode()):
|
||||
oldAiAnalysisRequestId;
|
||||
|
||||
inputMap.put("aiAnalysisRequestId",newAiAnalysisRequestId);
|
||||
inputMap.put(aiAnalysisRequestIdStr,newAiAnalysisRequestId);
|
||||
diFyImageReq.setInputs(inputMap);
|
||||
CorpusReportDTO corpusReportDTO = new CorpusReportDTO();
|
||||
corpusReportDTO.setRecordId(aicorpusTelephone.getSourceId());
|
||||
@@ -356,9 +350,9 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
// 获取配置
|
||||
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode(), JSONObject.toJSONString(corpusReportDTO),newAiAnalysisRequestId );
|
||||
log.info("runDify智能客服4IN1 {}",execDifyFlow);
|
||||
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId");
|
||||
String aiAnalysisRequestId = execDifyFlow.getString(aiAnalysisRequestIdStr);
|
||||
if(null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")){
|
||||
JSONObject outputsJson = execDifyFlow.getJSONObject("outputs");
|
||||
JSONObject outputsJson = execDifyFlow.getJSONObject(outputsStr);
|
||||
String message = JSONObject.toJSONString(outputsJson);
|
||||
log.info("send 4IN1mq {}",message);
|
||||
intelligentCustomerService.sendMq(message);
|
||||
@@ -368,7 +362,7 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1");
|
||||
aiAnalysisErrorsService.updateAiAnalysisErrors(aiAnalysisErrors);
|
||||
}
|
||||
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(message).build());
|
||||
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString(aiAnalysisRequestIdStr)).businessResponse(message).build());
|
||||
|
||||
}
|
||||
|
||||
@@ -402,7 +396,7 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
|
||||
@Override
|
||||
public void sendMq(String tag, String message) {
|
||||
log.info("RocketMQ主题和标签: "+topic+":"+ tag);
|
||||
log.info("RocketMQ主题和标签: "+topic+":"+ tag + message);
|
||||
rocketMqTemplate.asyncSend(topic+":"+ tag, MessageBuilder.withPayload(message).build(),
|
||||
new SendCallback() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user