This commit is contained in:
刘亚洲
2025-06-26 00:53:14 +08:00
parent ffbe62ef76
commit e4f93e684a
11 changed files with 243 additions and 61 deletions

View File

@@ -4,6 +4,8 @@ public class Constant {
public static final String CHANNEL_DCC = "Channel_Dcc";
public static final String CHANNEL_4IN1 = "Channel_4in1";
public static final String DISPLAY_STATUS = "FINISHED";
public static final String INTELLIGENT_CUSTOMER_4IN1 = "INTELLIGENT_CUSTOMER_4IN1";

View File

@@ -12,7 +12,7 @@ public enum BusinessTypeEnum {
SMART_ASSISTANT("SMART_ASSISTANT", "智能助手-DCC"),
SMART_ASSISTANT_QIWEI("SMART_ASSISTANT_QIWEI", "智能助手-企微"),
INTELLIGENT_CUSTOMER("INTELLIGENT_CUSTOMER_4IN1", "智能客服-4合一"),
SMART_ASSISTANT_4IN1("SMART_ASSISTANT_4IN1", "智能客服-4In1"),
//索赔检核
CLAIM_VERIFICATION("CLAIM_VERIFICATION", "索赔检核流程"),
CLAIM_VERIFICATION_FILE_ANALYSIS("99001", "索赔检核文件分析"),

View File

@@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.client.RestTemplate;
@@ -18,6 +19,7 @@ import com.volvo.common.feign.annotation.EnableVolvoFeignClients;
@MapperScan({"com.volvo.ai.analytic.center.mapper"})
@EnableDiscoveryClient
@EnableRetry
@EnableAsync
public class AiAnalyticCenterServiceApplication {
public static void main(String[] args) {

View File

@@ -3,6 +3,7 @@ package com.volvo.ai.analytic.center.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.volvo.ai.analytic.center.dto.PageDto;
import com.volvo.ai.analytic.center.dto.corpus.AicorpusTelephoneDTO;
import com.volvo.ai.analytic.center.dto.corpus.CorpusReportDTO;
@@ -11,12 +12,10 @@ import com.volvo.ai.analytic.center.entity.AiAnalysisErrors;
import com.volvo.ai.analytic.center.entity.AiAnalysisRequestLogs;
import com.volvo.ai.analytic.center.enums.BusinessTypeEnum;
import com.volvo.ai.analytic.center.enums.CategoryEnum;
import com.volvo.ai.analytic.center.feign.DiFyFeign;
import com.volvo.ai.analytic.center.mapper.AiAnalysisRequestLogsMapper;
import com.volvo.ai.analytic.center.mapper.TmTelephoneCorpusMapper;
import com.volvo.ai.analytic.center.service.AiAnalysisErrorsService;
import com.volvo.ai.analytic.center.service.AiAnalysisRequestLogsService;
import com.volvo.ai.analytic.center.service.DiFyService;
import com.volvo.ai.analytic.center.service.TmTelephoneCorpusService;
import com.volvo.ai.analytic.center.service.*;
import com.volvo.ai.analytic.center.utils.FlowResultSplitUtil;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
@@ -34,6 +33,8 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -69,9 +70,16 @@ public class CorpusFailJob {
private String dccMqTipic;
@Value("${rocketmq.consumer.intelligentCustomer.topic}")
private String intelligentCustomerTipic;
@Value("${rocketmq.producer.intelligentCustomer.topic}")
private String intelligentCustomerProducerTopic;
@Autowired
private TmTelephoneCorpusMapper tmTelephoneCorpusMapper;
@Autowired
private DiFyFeign diFyFeign;
/**
* 企微语料处理
@@ -235,4 +243,95 @@ public class CorpusFailJob {
}
}
}
/**
* 智能客服-电话场景-四合一 一分钟一次
*/
@XxlJob("intelligentCustomer4in1MobileFailTask")
@PostMapping("intelligentCustomer4in1MobileFailTask")
public void intelligentCustomer4in1MobileFailTask() {
log.info(" intelligentCustomer4in1MobileFailTask 解析失败重试处理");
Integer total = aiAnalysisErrorsService.queryCountAnalysisErrorList(Collections.singletonList(BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode()));
log.info("intelligentCustomer4in1MobileFailTask 语料解析失败重试处理数据量:{}", total);
int totalPages = PageDto.getTotalPages(total, pageSize);
log.info("intelligentCustomer4in1MobileFailTask 语料解析失败重试处理数据量:{},总页数:{}", total, totalPages);
for (int i = 1; i <= totalPages; i++) {
int offset = (i - 1) * pageSize;
List<AiAnalysisErrors> aiAnalysisErrorsListlist = aiAnalysisErrorsService.queryAnalysisErrorList(
Collections.singletonList(BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode()), offset, pageSize);
if (CollectionUtils.isNotEmpty(aiAnalysisErrorsListlist)) {
log.info("intelligentCustomer4in1MobileFailTask语料解析失败重试处理 size:{}", aiAnalysisErrorsListlist.size());
aiAnalysisErrorsListlist.forEach(aiAnalysisErrors -> {
try {
log.info("intelligentCustomer4in1MobileFailTask aiAnalysisRequestLogs-id:{}", aiAnalysisErrors.getAiAnalysisRequestId());
String aiAnalysisRequestId = aiAnalysisErrors.getAiAnalysisRequestId();
LambdaQueryWrapper<AiAnalysisRequestLogs> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisRequestId);
AiAnalysisRequestLogs aiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(queryWrapper);
log.info("intelligentCustomer4in1MobileFailTask aiAnalysisRequestLogs:{}", aiAnalysisRequestLogs);
if (null != aiAnalysisRequestLogs) {
String difyRequest = aiAnalysisRequestLogs.getDifyRequest();
log.info("intelligentCustomer4in1MobileFailTask aiAnalysisRequestLogs difyRequest:{}", aiAnalysisRequestLogs);
DiFyReq diFyReq = JSON.parseObject(difyRequest, DiFyReq.class);
Map<String, Object> map = new HashMap<>();
map.put("inputs", diFyReq.getInputs());
map.put("response_mode", "blocking");
map.put("user", diFyReq.getUser());
log.info("intelligentCustomer4in1MobileFailTask execDifyFlow dify request data:{}", map);
JSONObject difyResult = diFyFeign.runWorkflows("Bearer " + diFyReq.getFlowId(), map);
JSONObject data = difyResult.getJSONObject("data");
log.info("intelligentCustomer4in1MobileFailTask execDifyFlow dify response aiID:{} , data:{}", aiAnalysisRequestId, data);
data.put("aiAnalysisRequestId", aiAnalysisRequestId);
if (data.get("status").equals("succeeded")) {
JSONObject outputsJson = data.getJSONObject("outputs");
String message = JSONObject.toJSONString(outputsJson);
log.info("intelligentCustomer4in1MobileFailTask send 4IN1mq {}", message);
rocketMqTemplate.asyncSend(intelligentCustomerProducerTopic, MessageBuilder.withPayload(message).build(), new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
log.info(" intelligentCustomer4in1MobileFailTask 失败补偿 发送MQ成功 消息体:{}", message);
}
@Override
public void onException(Throwable e) {
log.error("intelligentCustomer4in1MobileFailTask 失败补偿 送MQ异常 消息体:{}, 异常:", message, e);
}
}, 10000);
AiAnalysisErrors aiAnalysisErrors1 = new AiAnalysisErrors();
aiAnalysisErrors1.setAiAnalysisRequestId(aiAnalysisRequestId);
aiAnalysisErrors1.setAiAnalysisErrorHandlingStatus("1");
aiAnalysisErrorsService.updateAiAnalysisErrors(aiAnalysisErrors1);
aiAnalysisRequestLogsService.saveAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder()
.aiAnalysisRequestId(data.getString("aiAnalysisRequestId"))
.businessResponse(message)
.difyResponse(data.toJSONString())
.build());
} else {
log.info("intelligentCustomer4in1MobileFailTask execDifyFlow failed, aiAnalysisRequestId:{} , data:{}", aiAnalysisRequestId,
data);
String errorMsg = data.getString("error");
aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1);
aiAnalysisErrors.setUpdateBy("xxlJob");
aiAnalysisErrors.setUpdateTime(new Date());
aiAnalysisErrors.setAiAnalysisErrorMessage(errorMsg.length() > 1000 ? errorMsg.substring(0, 1000) : errorMsg);
LambdaUpdateWrapper<AiAnalysisErrors> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisRequestId);
aiAnalysisErrorsService.update(aiAnalysisErrors,updateWrapper);
}
}
} catch (Exception e) {
log.info("intelligentCustomer4in1MobileFailTask 语料解析失败补偿异常:{}", e);
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("0");
aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1);
updateAiAnalysisErrors(aiAnalysisErrors, aiAnalysisErrors.getAiAnalysisRequestId());
}
});
}
}
}
}

View File

@@ -1,10 +1,11 @@
package com.volvo.ai.analytic.center.mq;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.volvo.ai.analytic.center.constant.Constant;
import com.volvo.ai.analytic.center.dto.corpus.AicorpusTelephoneDTO;
import com.volvo.ai.analytic.center.service.AiAnalysisRequestLogsService;
import com.volvo.ai.analytic.center.service.TmTelephoneCorpusService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
@@ -15,8 +16,10 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RestController;
import java.util.Objects;
/**
* @ClassName CorpusProcessKafkaConsumer
* @ClassName 湖仓发送过来的kafka消息自己发MQ自己消费 DCC通话记录 目前接入的需求4IN1的智能工单-电话场景LTO跟进记录AI总结
* @Description
* @Author renzhen
* @Date 2025-03-04 10:18
@@ -37,9 +40,6 @@ public class CorpusDccMqConsumer implements RocketMQListener<MessageExt> {
@Autowired
private TmTelephoneCorpusService tmTelephoneCorpusService;
@Autowired
private AiAnalysisRequestLogsService aiAnalysisRequestLogsService;
private final ObjectMapper objectMapper = new ObjectMapper();
@Override
@@ -50,7 +50,15 @@ public class CorpusDccMqConsumer implements RocketMQListener<MessageExt> {
String message = new String(messageExt.getBody());
log.info("dcc_mq message: " + message);
AicorpusTelephoneDTO aicorpusTelephone = objectMapper.readValue(message, AicorpusTelephoneDTO.class);
tmTelephoneCorpusService.runTelephoneCorpusDify(aicorpusTelephone);
//DCC场景
if(Objects.equals(aicorpusTelephone.getCategoryCode(), Constant.CHANNEL_DCC)){
tmTelephoneCorpusService.runTelephoneCorpusDify(aicorpusTelephone);
}
//channel_4in1场景
if(Objects.equals(aicorpusTelephone.getCategoryCode(), Constant.CHANNEL_4IN1)){
log.info("channel_4in1 message: " + JSON.toJSONString(aicorpusTelephone));
tmTelephoneCorpusService.runTelephoneCorpusDify4in1(aicorpusTelephone);
}
log.info("corpusDccMqProducer mq 处理完成: {}", aicorpusTelephone.getSourceId());
log.info("dcc_mq 处理完成,耗时:{}", System.currentTimeMillis() - startTime);
} catch (JsonProcessingException e) {

View File

@@ -30,7 +30,7 @@ import java.util.concurrent.Executors;
/**
* @ClassName CorpusProcessKafkaConsumer
* @Description
* @Description 消费湖仓同步的DCC通话记录kafka消息
* @Author renzhen
* @Date 2025-03-04 10:18
* @Version 1.0
@@ -99,7 +99,7 @@ public class CorpusProcessKafkaProducer {
tmTelephoneCorpus.setCreateTime(LocalDateTime.now());
// 条件只处理dcc的 10s通话时间以上
log.info("CorpusProcessKafkaProducer getCategoryCode: {}audioFileId{}sourceId{}", tmTelephoneCorpus.getCategoryCode(), aicorpusTelephone.getAudioFileId(), aicorpusTelephone.getSourceId());
if (Constant.CHANNEL_DCC.equals(tmTelephoneCorpus.getCategoryCode())) {
if (Constant.CHANNEL_DCC.equals(tmTelephoneCorpus.getCategoryCode())||Constant.CHANNEL_4IN1.equals(tmTelephoneCorpus.getCategoryCode())) {
log.info(" dcc 语料开始处理");
tmTelephoneCorpusService.saveTelephoneCorpus(tmTelephoneCorpus);
long startTimeDify = System.currentTimeMillis();

View File

@@ -17,6 +17,9 @@ public interface TmTelephoneCorpusService extends IService<TmTelephoneCorpus> {
void runTelephoneCorpusDify(AicorpusTelephoneDTO aicorpusTelephone);
void runTelephoneCorpusDify4in1(AicorpusTelephoneDTO aicorpusTelephone);
String getCarModelList();
void sendMq(String tag, String message);

View File

@@ -73,10 +73,13 @@ public class DiFyServiceImpl implements DiFyService{
public JSONObject executeDifyFlow(DiFyReq diFyReq, String businessType, String businessData, String oldAiAnalysisRequestId) {
String aiAnalysisRequestId = StringUtils.isEmpty(oldAiAnalysisRequestId)? AiAnalysisUtils.getAiAnalysisRequestId(businessType):oldAiAnalysisRequestId;
try {
Map<String, String> inputMap = JSON.parseObject(JSONObject.toJSONString(diFyReq.getInputs()),Map.class);
inputMap.put("aiAnalysisRequestId",aiAnalysisRequestId);
Map<String, Object> map = new HashMap<>();
map.put("inputs",diFyReq.getInputs());
map.put("inputs", inputMap);
map.put("response_mode","blocking");
map.put("user",diFyReq.getUser());
diFyReq.setInputs(inputMap);
// 保存请求日志
aiAnalysisRequestLogsService.saveAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder()
@@ -93,6 +96,17 @@ public class DiFyServiceImpl implements DiFyService{
log.debug("execDifyFlow dify response aiID:{} , data:{}",aiAnalysisRequestId,data);
data.put("aiAnalysisRequestId",aiAnalysisRequestId);
if (data.get("status").equals("failed")) {
log.info("execDifyFlow failed, aiAnalysisRequestId:{} , data:{}",aiAnalysisRequestId,data);
String errorMsg = data.getString("error");
aiAnalysisErrorsService.saveAiAnalysisErrors(AiAnalysisErrors.builder()
.aiAnalysisRequestId(aiAnalysisRequestId)
.aiAnalysisRequestType(businessType)
.aiAnalysisErrorHandlingStatus("0")
.aiAnalysisErrorMessage(errorMsg.length()>1000?errorMsg.substring(0,1000):errorMsg)
.build());
}
aiAnalysisRequestLogsService.saveAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder()
.aiAnalysisRequestId(aiAnalysisRequestId)
.difyResponse(data.toJSONString())

View File

@@ -54,8 +54,6 @@ public class IntelligentCustomerServiceImpl implements IntelligentCustomerServic
private String topic;
@Value("${dify.intelligentCustomer.fourInOneToken}")
private String fourInOneToken;
@Autowired
private RemoteCarModelClient remoteCarModelClient;
@Autowired
private DataMaskingRuleService dataMaskingRuleService;
@@ -66,13 +64,6 @@ public class IntelligentCustomerServiceImpl implements IntelligentCustomerServic
@Autowired
private AiAnalysisErrorsService aiAnalysisErrorsService;
@Autowired
private AiAnalysisErrorsMapper aiAnalysisErrorsMapper;
@Autowired
private TcIntelligentCustomerMapper tcIntelligentCustomerMapper;
private Map<String, List<String>> tcIntelligentCustomer = Collections.EMPTY_MAP;
@Override
public void fourInOneMqService(FourInOneRequestDTO fourInOneRequestDTO) {
@@ -148,39 +139,4 @@ public class IntelligentCustomerServiceImpl implements IntelligentCustomerServic
}, 10000);
}
// 咨询类【201】/投诉类【202】/投诉类型【203】 过滤
/** private String fourInOneMqServiceFilter(String customerType,String customerValue){
if(tcIntelligentCustomer.isEmpty()){
queryTcIntelligentCustomer();
}
List<String> typeValues = tcIntelligentCustomer.get(customerType);
if(!typeValues.contains(customerValue)){
return "";
}
return customerValue;
}
public Map<String, List<String>> queryTcIntelligentCustomer() {
LambdaQueryWrapper<TcIntelligentCustomer> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TcIntelligentCustomer::getIsDeleted, "0");
List<TcIntelligentCustomer> tcIntelligentCustomerList =tcIntelligentCustomerMapper.selectList(queryWrapper);
tcIntelligentCustomer = tcIntelligentCustomerList.stream()
.collect(Collectors.groupingBy(
TcIntelligentCustomer::getIntelligentCustomerType, // 按照 IntelligentCustomerType 分组
Collectors.mapping(
customer -> {
if (customer.getIntelligentCustomerType().equals(IntelligentCustomerTypeEnum.CONSULT_TYPE.getCode())) {
return customer.getTypeOne(); // 如果是咨询类型,返回 TypeOne
} else {
return customer.getTypeOne().concat("#").concat(customer.getTypeTwo()).concat("#").concat(customer.getTypeThree()); // 其他类型,拼接 TypeOne、TypeTwo、TypeThree
}
},
Collectors.toList()
)
));
return tcIntelligentCustomer;
}
**/
}

View File

@@ -21,6 +21,7 @@ import com.volvo.ai.analytic.center.feign.RemoteCarModelClient;
import com.volvo.ai.analytic.center.mapper.AiAnalysisErrorsMapper;
import com.volvo.ai.analytic.center.mapper.TmTelephoneCorpusMapper;
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;
@@ -66,6 +67,9 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
private String topic;
@Value("${dify.corpus.telephoneToken}")
private String telephoneToken;
@Value("${dify.intelligentCustomer.channel4In1Token}")
private String channel4In1Token;
@Autowired
private RemoteCarModelClient remoteCarModelClient;
@@ -79,8 +83,7 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
private AiAnalysisErrorsService aiAnalysisErrorsService;
@Autowired
private AiAnalysisErrorsMapper aiAnalysisErrorsMapper;
public IntelligentCustomerService intelligentCustomerService;
@Override
@Transactional
public void saveTelephoneCorpus(TmTelephoneCorpus tmTelephoneCorpus) {
@@ -188,6 +191,97 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
}
}
/**
* 4in1语料处理
* @param aicorpusTelephone
*/
@Override
public void runTelephoneCorpusDify4in1(AicorpusTelephoneDTO aicorpusTelephone) {
if(null != aicorpusTelephone){
List<DataMaskingRule> maskingRuleItems = dataMaskingRuleService.getDataMaskingRuleListByApplicationChannel(BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode());
RunMaskingRuleInput runMaskingRuleInput = new RunMaskingRuleInput();
runMaskingRuleInput.setDataMaskingRules(maskingRuleItems);
Map<String, Object> inputMap = new HashMap();
DiFyReq diFyImageReq = new DiFyReq();
diFyImageReq.setUser(ConstantStr.corpus_user);
diFyImageReq.setFlowId(channel4In1Token);
JSONObject jsonObject = JSONObject.parseObject( aicorpusTelephone.getDisplay());
JSONArray segments = jsonObject.getJSONArray("segments");
// Long audioDuration = jsonObject.getLong("audio_duration"); // 毫秒
// if(audioDuration/1000 <=10){
// log.info("电话语料时长小于10秒不进行dify处理");
// return;
// }
if (segments == null || segments.isEmpty()) {
log.info("电话语料内容segments为空不进行dify处理");
return;
}
// 遍历 segments
StringBuffer chatList = new StringBuffer();
segments.stream()
.map(segment -> (JSONObject) segment)
.forEach(segment -> {
JSONObject result = segment.getJSONObject("result");
String text = result.getString("text");
JSONObject analysisInfo = result.getJSONObject("analysis_info");
String role = analysisInfo.getString("role");
String title="";
if(role.equals("AGENT")){
title="顾问";
}else{
title="客户";
}
// 拼接 role 和 text
String chat = title + ": " + text;
runMaskingRuleInput.setOldStr(chat);
String corpusChat = dataMaskingRuleService.runMaskingRule(runMaskingRuleInput);
chatList.append(corpusChat).append("\n");
});
inputMap.put("workOrderContent", chatList.toString());
inputMap.put("workOrderId",aicorpusTelephone.getSourceId());
String oldAiAnalysisRequestId = aicorpusTelephone.getAiAnalysisRequestId();
String newAiAnalysisRequestId = StringUtils.isEmpty(oldAiAnalysisRequestId)? AiAnalysisUtils.getAiAnalysisRequestId(BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode()):
oldAiAnalysisRequestId;
inputMap.put("aiAnalysisRequestId",newAiAnalysisRequestId);
diFyImageReq.setInputs(inputMap);
CorpusReportDTO corpusReportDTO = new CorpusReportDTO();
corpusReportDTO.setRecordId(aicorpusTelephone.getSourceId());
log.info("开始处理智能客服4IN1工作流,{}",diFyImageReq);
// 获取配置
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.SMART_ASSISTANT_4IN1.getCode(), JSONObject.toJSONString(corpusReportDTO),newAiAnalysisRequestId );
log.info("runDify智能客服4IN1 {}",execDifyFlow);
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId");
if(null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")){
JSONObject outputsJson = execDifyFlow.getJSONObject("outputs");
String message = JSONObject.toJSONString(outputsJson);
log.info("send 4IN1mq {}",message);
intelligentCustomerService.sendMq(message);
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(message).build());
}
}
}
public String getCarModelList(){
try {
long startTime = System.currentTimeMillis();

View File

@@ -16,7 +16,11 @@ public class ConstantStr {
public static final String INTELLIGENT_CUSTOMER_4IN1 = "INTELLIGENT_CUSTOMER_4IN1";
public static final String statTime = "statTime";
public static final String endTime = "endTime";
public static final String customerFlowIds = "customerFlowIds";
public static final String aiAnalysisRequestId = "aiAnalysisRequestId";
public static final String DIFY_COUNTERRATELIMIT = "DIFY_COUNTERRATELIMIT";
}
}