feed流好内容,更新dify响应结果调整
This commit is contained in:
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
@@ -167,30 +168,52 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
|
|||||||
diFyFeedQualityReq.setInputs(difyCommunityTargetDTO);
|
diFyFeedQualityReq.setInputs(difyCommunityTargetDTO);
|
||||||
JSONObject difFeedQualityResult = (JSONObject) diFyService.getDiFyObject(diFyFeedQualityReq);
|
JSONObject difFeedQualityResult = (JSONObject) diFyService.getDiFyObject(diFyFeedQualityReq);
|
||||||
if (difFeedQualityResult != null) {
|
if (difFeedQualityResult != null) {
|
||||||
difFeedQualityResult.put("communityType",BusinessTypeEnum.FEEDQUALITY.getCode());
|
difFeedQualityResult.put("communityType", BusinessTypeEnum.FEEDQUALITY.getCode());
|
||||||
//返回结果推送到社区的MQ
|
//返回结果推送到社区的MQ
|
||||||
rocketMQTemplate.syncSend(topic, difFeedQualityResult.toString());
|
rocketMQTemplate.syncSend(topic, difFeedQualityResult.toString());
|
||||||
log.info("Feed流好内容发送回调MQ完成: {}", difFeedQualityResult);
|
log.info("Feed流好内容发送回调MQ完成: {}", difFeedQualityResult);
|
||||||
aiAnalysisRequestLogsMapper.update(new AiAnalysisRequestLogs(),
|
//aiAnalysisRequestId 根据查询日志表,获取dify_response,设置到aiAnalysisRequestLogs表中
|
||||||
new UpdateWrapper<AiAnalysisRequestLogs>().set("dify_response", difFeedQualityResult.toJSONString())
|
updaterDifyResponse(aiAnalysisRequestId, difFeedQualityResult, BusinessTypeEnum.FEEDQUALITY.getCode());
|
||||||
.eq("ai_analysis_request_id", aiAnalysisRequestId));
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
saveOrUpdateError(aiAnalysisRequestId, e, BusinessTypeEnum.FEEDQUALITY.getCode());
|
saveOrUpdateError(aiAnalysisRequestId, e, BusinessTypeEnum.FEEDQUALITY.getCode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void updaterDifyResponse(String aiAnalysisRequestId, JSONObject difFeedQualityResult, String businessType) {
|
||||||
|
AiAnalysisRequestLogs aiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<AiAnalysisRequestLogs>()
|
||||||
|
.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisRequestId)
|
||||||
|
.last("for update"));
|
||||||
|
|
||||||
|
if (aiAnalysisRequestLogs == null) {
|
||||||
|
log.error("未找到对应的 AiAnalysisRequestLogs,请求ID: {}", aiAnalysisRequestId);
|
||||||
|
throw new RuntimeException("未找到对应的请求日志");
|
||||||
|
}
|
||||||
|
|
||||||
|
String difyResponseStr = aiAnalysisRequestLogs.getDifyResponse();
|
||||||
|
JSONObject difyResponse = StringUtils.isNotBlank(difyResponseStr)
|
||||||
|
? JSONObject.parseObject(difyResponseStr)
|
||||||
|
: new JSONObject();
|
||||||
|
|
||||||
|
difyResponse.put(businessType, difFeedQualityResult);
|
||||||
|
|
||||||
|
aiAnalysisRequestLogsMapper.update(null,
|
||||||
|
new UpdateWrapper<AiAnalysisRequestLogs>()
|
||||||
|
.set("dify_response", difyResponse.toJSONString())
|
||||||
|
.eq("ai_analysis_request_id", aiAnalysisRequestId));
|
||||||
|
}
|
||||||
|
|
||||||
@Async
|
@Async
|
||||||
protected void processPublicOpinionAutomationDify(DifyCommunityTargetDTO difyCommunityTargetDTO, String user, JSONArray difyResult, String aiAnalysisRequestId) {
|
protected void processPublicOpinionAutomationDify(DifyCommunityTargetDTO difyCommunityTargetDTO, String user, JSONArray difyResult, String aiAnalysisRequestId) {
|
||||||
try {
|
try {
|
||||||
//舆情案件分析
|
//舆情案件分析
|
||||||
JSONObject caseResult = callCaseCommunityWorkFlow(difyCommunityTargetDTO,user, caseToken);
|
JSONObject caseResult = callCaseCommunityWorkFlow(difyCommunityTargetDTO, user, caseToken);
|
||||||
|
|
||||||
// 内容主题关键词打标
|
// 内容主题关键词打标
|
||||||
JSONObject keywordResult = callCommunityWorkFlow(difyCommunityTargetDTO,user, keywordToken);
|
JSONObject keywordResult = callCommunityWorkFlow(difyCommunityTargetDTO, user, keywordToken);
|
||||||
|
|
||||||
// litecrm线索分析
|
// litecrm线索分析
|
||||||
JSONObject clueAnalysisResult = callCommunityWorkFlow(difyCommunityTargetDTO,user, clueAnalysisToken);
|
JSONObject clueAnalysisResult = callCommunityWorkFlow(difyCommunityTargetDTO, user, clueAnalysisToken);
|
||||||
|
|
||||||
difyResult.add(caseResult);
|
difyResult.add(caseResult);
|
||||||
difyResult.add(keywordResult);
|
difyResult.add(keywordResult);
|
||||||
@@ -328,13 +351,11 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
|
|||||||
if (StringUtils.isNotBlank(communityRequestId)) {
|
if (StringUtils.isNotBlank(communityRequestId)) {
|
||||||
caseResult.put("communityRequestId", communityRequestId);
|
caseResult.put("communityRequestId", communityRequestId);
|
||||||
}
|
}
|
||||||
caseResult.put("communityType",BusinessTypeEnum.PUBLICOPINIONAUTOMATION.getCode());
|
caseResult.put("communityType", BusinessTypeEnum.PUBLICOPINIONAUTOMATION.getCode());
|
||||||
//返回结果推送到社区的MQ
|
//返回结果推送到社区的MQ
|
||||||
rocketMQTemplate.syncSend(topic, caseResult.toString());
|
rocketMQTemplate.syncSend(topic, caseResult.toString());
|
||||||
log.info("舆情分析发送回调MQ完成: {}", caseResult);
|
log.info("舆情分析发送回调MQ完成: {}", caseResult);
|
||||||
aiAnalysisRequestLogsMapper.update(new AiAnalysisRequestLogs(),
|
updaterDifyResponse(aiAnalysisRequestId, caseResult, BusinessTypeEnum.PUBLICOPINIONAUTOMATION.getCode());
|
||||||
new UpdateWrapper<AiAnalysisRequestLogs>().set("dify_response", caseResult.toJSONString())
|
|
||||||
.eq("ai_analysis_request_id", aiAnalysisRequestId));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -723,7 +744,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
|
|||||||
//如果AiAnalysisRequestType是舆情自动化则调用舆情自动化方法processPublicOpinionAutomationDify,如果是feed流好内容则调用feed流好内容方法processFeedDify,如果是community则两个都调用
|
//如果AiAnalysisRequestType是舆情自动化则调用舆情自动化方法processPublicOpinionAutomationDify,如果是feed流好内容则调用feed流好内容方法processFeedDify,如果是community则两个都调用
|
||||||
if (BusinessTypeEnum.COMMUNITYTARGET.getCode().equals(aiAnalysisError.getAiAnalysisRequestType())) {
|
if (BusinessTypeEnum.COMMUNITYTARGET.getCode().equals(aiAnalysisError.getAiAnalysisRequestType())) {
|
||||||
processPublicOpinionAutomationDify(difyCommunityTargetDTO, user, difyResult, aiAnalysisError.getAiAnalysisRequestId());
|
processPublicOpinionAutomationDify(difyCommunityTargetDTO, user, difyResult, aiAnalysisError.getAiAnalysisRequestId());
|
||||||
processFeedDify(difyCommunityTargetDTO, difyResult, aiAnalysisError.getAiAnalysisRequestId());
|
processFeedDify(difyCommunityTargetDTO, difyResult, aiAnalysisError.getAiAnalysisRequestId());
|
||||||
}
|
}
|
||||||
if (BusinessTypeEnum.PUBLICOPINIONAUTOMATION.getCode().equals(aiAnalysisError.getAiAnalysisRequestType())) {
|
if (BusinessTypeEnum.PUBLICOPINIONAUTOMATION.getCode().equals(aiAnalysisError.getAiAnalysisRequestType())) {
|
||||||
processPublicOpinionAutomationDify(difyCommunityTargetDTO, user, difyResult, aiAnalysisError.getAiAnalysisRequestId());
|
processPublicOpinionAutomationDify(difyCommunityTargetDTO, user, difyResult, aiAnalysisError.getAiAnalysisRequestId());
|
||||||
@@ -736,10 +757,6 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
|
|||||||
.eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())
|
.eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())
|
||||||
.set(AiAnalysisErrors::getRetryCount, aiAnalysisError.getRetryCount() + 1)
|
.set(AiAnalysisErrors::getRetryCount, aiAnalysisError.getRetryCount() + 1)
|
||||||
.set(AiAnalysisErrors::getAiAnalysisErrorHandlingStatus, "1"));
|
.set(AiAnalysisErrors::getAiAnalysisErrorHandlingStatus, "1"));
|
||||||
//根据ai_analysis_request_id更新tt_ai_analysis_request_logs表中的dify_response字段
|
|
||||||
aiAnalysisRequestLogsMapper.update(new AiAnalysisRequestLogs(), new LambdaUpdateWrapper<AiAnalysisRequestLogs>()
|
|
||||||
.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())
|
|
||||||
.set(AiAnalysisRequestLogs::getDifyResponse, difyResult.toJSONString()));
|
|
||||||
} else {
|
} else {
|
||||||
aiAnalysisErrorsMapper.update(new AiAnalysisErrors(), new LambdaUpdateWrapper<AiAnalysisErrors>()
|
aiAnalysisErrorsMapper.update(new AiAnalysisErrors(), new LambdaUpdateWrapper<AiAnalysisErrors>()
|
||||||
.eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())
|
.eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())
|
||||||
|
|||||||
Reference in New Issue
Block a user