单条语料分析结论入库
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
package com.volvo.ai.analytic.center.controller;
|
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.JsonParser;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
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.req.ConsultingRequestDTO;
|
||||||
import com.volvo.ai.analytic.center.dto.resp.AnalysisResp;
|
import com.volvo.ai.analytic.center.dto.resp.AnalysisResp;
|
||||||
import com.volvo.ai.analytic.center.service.AiAnalysisDifyService;
|
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 com.volvo.common.core.util.ResultMsg;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -35,7 +36,8 @@ public class AiAnalysisDifyController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AiAnalysisDifyService aiAnalysisDifyService;
|
private AiAnalysisDifyService aiAnalysisDifyService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CorpusQuestionServiceImpl corpusQuestionServiceImpl;
|
||||||
|
|
||||||
@PostMapping("/updateByAiId")
|
@PostMapping("/updateByAiId")
|
||||||
@ApiOperation(value = "更新dify结果")
|
@ApiOperation(value = "更新dify结果")
|
||||||
@@ -81,12 +83,9 @@ public class AiAnalysisDifyController {
|
|||||||
@ApiOperation(value = "单条语料分析结论入库")
|
@ApiOperation(value = "单条语料分析结论入库")
|
||||||
public AnalysisResp<Object> corpusQuestion(@RequestHeader(value = "appKey") String appKey,
|
public AnalysisResp<Object> corpusQuestion(@RequestHeader(value = "appKey") String appKey,
|
||||||
@RequestBody ConsultingRequestDTO requestDTO) {
|
@RequestBody ConsultingRequestDTO requestDTO) {
|
||||||
|
log.info("aiAnalyze corpusQuestion requestDTO: {} ,appKey:{}", JSON.toJSONString(requestDTO),appKey);
|
||||||
// 打印接收到的参数
|
// 打印接收到的参数
|
||||||
System.out.println("Received appKey: " + appKey);
|
corpusQuestionServiceImpl.runCorpusQuestionDify(requestDTO);
|
||||||
System.out.println("Received businessType: " + requestDTO.getBusinessType());
|
|
||||||
JSONObject jsonObject = JSONObject.parseObject(requestDTO.getText());
|
|
||||||
System.out.println("Received text: " + jsonObject.toString());
|
|
||||||
|
|
||||||
return AnalysisResp .success("ok");
|
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.BusinessTypeEnum;
|
||||||
import com.volvo.ai.analytic.center.enums.CategoryEnum;
|
import com.volvo.ai.analytic.center.enums.CategoryEnum;
|
||||||
import com.volvo.ai.analytic.center.feign.RemoteCarModelClient;
|
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.mapper.TmTelephoneCorpusMapper;
|
||||||
|
import com.volvo.ai.analytic.center.mq.CorpusQuestionProducer;
|
||||||
import com.volvo.ai.analytic.center.service.*;
|
import com.volvo.ai.analytic.center.service.*;
|
||||||
import com.volvo.ai.analytic.center.utils.AiAnalysisUtils;
|
import com.volvo.ai.analytic.center.utils.AiAnalysisUtils;
|
||||||
import com.volvo.ai.analytic.center.utils.ConstantStr;
|
import com.volvo.ai.analytic.center.utils.ConstantStr;
|
||||||
@@ -84,6 +84,10 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public IntelligentCustomerService intelligentCustomerService;
|
public IntelligentCustomerService intelligentCustomerService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
CorpusQuestionProducer corpusQuestionProducer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void saveTelephoneCorpus(TmTelephoneCorpus tmTelephoneCorpus) {
|
public void saveTelephoneCorpus(TmTelephoneCorpus tmTelephoneCorpus) {
|
||||||
@@ -247,6 +251,15 @@ public class TmTelephoneCorpusServiceImpl extends ServiceImpl<TmTelephoneCorpusM
|
|||||||
|
|
||||||
});
|
});
|
||||||
inputMap.put("workOrderContent", chatList.toString());
|
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());
|
inputMap.put("workOrderId",aicorpusTelephone.getSourceId());
|
||||||
|
|
||||||
String oldAiAnalysisRequestId = aicorpusTelephone.getAiAnalysisRequestId();
|
String oldAiAnalysisRequestId = aicorpusTelephone.getAiAnalysisRequestId();
|
||||||
|
|||||||
Reference in New Issue
Block a user