单条语料分析结论入库
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package com.volvo.ai.analytic.center.controller;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
@@ -11,6 +11,7 @@ import com.volvo.ai.analytic.center.dto.req.AnalysisReq;
|
||||
import com.volvo.ai.analytic.center.dto.req.ConsultingRequestDTO;
|
||||
import com.volvo.ai.analytic.center.dto.resp.AnalysisResp;
|
||||
import com.volvo.ai.analytic.center.service.AiAnalysisDifyService;
|
||||
import com.volvo.ai.analytic.center.service.impl.CorpusQuestionServiceImpl;
|
||||
import com.volvo.common.core.util.ResultMsg;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -35,7 +36,8 @@ public class AiAnalysisDifyController {
|
||||
@Autowired
|
||||
private AiAnalysisDifyService aiAnalysisDifyService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private CorpusQuestionServiceImpl corpusQuestionServiceImpl;
|
||||
|
||||
@PostMapping("/updateByAiId")
|
||||
@ApiOperation(value = "更新dify结果")
|
||||
@@ -81,12 +83,9 @@ public class AiAnalysisDifyController {
|
||||
@ApiOperation(value = "单条语料分析结论入库")
|
||||
public AnalysisResp<Object> corpusQuestion(@RequestHeader(value = "appKey") String appKey,
|
||||
@RequestBody ConsultingRequestDTO requestDTO) {
|
||||
log.info("aiAnalyze corpusQuestion requestDTO: {} ,appKey:{}", JSON.toJSONString(requestDTO),appKey);
|
||||
// 打印接收到的参数
|
||||
System.out.println("Received appKey: " + appKey);
|
||||
System.out.println("Received businessType: " + requestDTO.getBusinessType());
|
||||
JSONObject jsonObject = JSONObject.parseObject(requestDTO.getText());
|
||||
System.out.println("Received text: " + jsonObject.toString());
|
||||
|
||||
corpusQuestionServiceImpl.runCorpusQuestionDify(requestDTO);
|
||||
return AnalysisResp .success("ok");
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.volvo.ai.analytic.center.mq;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.volvo.ai.analytic.center.constant.Constant;
|
||||
import com.volvo.ai.analytic.center.feign.DiFyFeign;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||
import org.apache.rocketmq.spring.core.RocketMQListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@RocketMQMessageListener(consumerGroup = "${rocketmq.consumer.corpus.questiongroup}",
|
||||
topic = "${rocketmq.consumer.corpus.questiontopic}", consumeThreadNumber = 2)
|
||||
@RefreshScope
|
||||
public class CorpusQuestionConsumer implements RocketMQListener<Map<String, Object>> {
|
||||
|
||||
|
||||
@Value("${dify.corpusQuestion.token: app-erbXevAmaQiyg5QFPn2NpJ7G}")
|
||||
private String corpusQuestionToken;
|
||||
|
||||
|
||||
@Autowired
|
||||
private DiFyFeign diFyFeign;
|
||||
|
||||
@Override
|
||||
public void onMessage(Map<String, Object> inputMap) {
|
||||
|
||||
inputMap.put("businessType", Constant.CHANNEL_4IN1);
|
||||
JSONObject difyResult = diFyFeign.runWorkflows("Bearer " + corpusQuestionToken, inputMap);
|
||||
log.info("difyResult {}", difyResult.toJSONString());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.volvo.ai.analytic.center.mq;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class CorpusQuestionProducer {
|
||||
|
||||
@Value("${rocketmq.producer.corpus.questiontopic}")
|
||||
private String corpusQuestionTopic;
|
||||
|
||||
|
||||
@Resource
|
||||
private RocketMQTemplate rocketMQTemplate;
|
||||
|
||||
public void sendCorpusQuestion(Map<String, Object> inputMap) {
|
||||
|
||||
rocketMQTemplate.convertAndSend(corpusQuestionTopic, inputMap);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.volvo.ai.analytic.center.service;
|
||||
|
||||
import com.volvo.ai.analytic.center.dto.req.ConsultingRequestDTO;
|
||||
|
||||
public interface CorpusQuestionService {
|
||||
void runCorpusQuestionDify(ConsultingRequestDTO consultingRequestDTO);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.volvo.ai.analytic.center.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.volvo.ai.analytic.center.dto.req.ConsultingRequestDTO;
|
||||
import com.volvo.ai.analytic.center.entity.TmCorpusQuestionReport;
|
||||
import com.volvo.ai.analytic.center.mapper.TmCorpusQuestionReportMapper;
|
||||
import com.volvo.ai.analytic.center.service.CorpusQuestionService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class CorpusQuestionServiceImpl implements CorpusQuestionService {
|
||||
|
||||
@Autowired
|
||||
TmCorpusQuestionReportMapper tmCorpusQuestionReportMapper;
|
||||
|
||||
@Override
|
||||
public void runCorpusQuestionDify(ConsultingRequestDTO consultingRequestDTO) {
|
||||
String text = consultingRequestDTO.getText();
|
||||
JSONObject textJsonObject = JSONObject.parseObject(text);
|
||||
JSONObject consultingScenario = textJsonObject.getJSONObject("consultingScenario");
|
||||
TmCorpusQuestionReport tmCorpusQuestionReport = new TmCorpusQuestionReport();
|
||||
tmCorpusQuestionReport.setMainCategory(consultingScenario.getString("mainCategory"));
|
||||
tmCorpusQuestionReport.setSubCategory(consultingScenario.getString("subCategory"));
|
||||
tmCorpusQuestionReport.setConfidence(consultingScenario.getString("confidence"));
|
||||
tmCorpusQuestionReport.setBusinessType(consultingRequestDTO.getBusinessType());
|
||||
tmCorpusQuestionReport.setSourceCorpusId(consultingRequestDTO.getSourceCorpusId());
|
||||
tmCorpusQuestionReport.setSourceCorpusTime(consultingRequestDTO.getSourceCorpusTime());
|
||||
tmCorpusQuestionReport.setAnalysisResultJson(text);
|
||||
tmCorpusQuestionReportMapper.insert(tmCorpusQuestionReport);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -18,8 +18,8 @@ import com.volvo.ai.analytic.center.enums.BizEnum;
|
||||
import com.volvo.ai.analytic.center.enums.BusinessTypeEnum;
|
||||
import com.volvo.ai.analytic.center.enums.CategoryEnum;
|
||||
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.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;
|
||||
@@ -84,6 +84,10 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
|
||||
@Autowired
|
||||
public IntelligentCustomerService intelligentCustomerService;
|
||||
|
||||
@Autowired
|
||||
CorpusQuestionProducer corpusQuestionProducer;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void saveTelephoneCorpus(TmTelephoneCorpus tmTelephoneCorpus) {
|
||||
@@ -247,6 +251,15 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
||||
|
||||
});
|
||||
inputMap.put("workOrderContent", chatList.toString());
|
||||
|
||||
Map<String, Object> questionInput = new HashMap();
|
||||
questionInput.put("chat", chatList.toString());
|
||||
questionInput.put("sourceCorpusId", aicorpusTelephone.getSourceId());
|
||||
questionInput.put("sourceCorpusTime", aicorpusTelephone.getTranscribeTime());
|
||||
|
||||
//发送单个问题消息
|
||||
corpusQuestionProducer.sendCorpusQuestion(questionInput);
|
||||
|
||||
inputMap.put("workOrderId",aicorpusTelephone.getSourceId());
|
||||
|
||||
String oldAiAnalysisRequestId = aicorpusTelephone.getAiAnalysisRequestId();
|
||||
|
||||
Reference in New Issue
Block a user