Browse Source

算法接口联调

master
luogw 4 days ago
parent
commit
ef727b9af4
  1. 27
      src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java
  2. 28
      src/main/resources/logback-spring.xml

27
src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java

@ -25,8 +25,6 @@ import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class MilvusApplicationServiceImpl implements MilvusApplicationService { public class MilvusApplicationServiceImpl implements MilvusApplicationService {
@Autowired
private MilvusDemoService milvusDemoService;
@Autowired @Autowired
private CheckMilvusDomainService checkMilvusDomainService; private CheckMilvusDomainService checkMilvusDomainService;
@Autowired @Autowired
@ -42,7 +40,9 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void insertTitle(TitleVector title) { public void insertTitle(TitleVector title) {
// 1. 基础参数校验(在锁外,快速失败) log.info(">>> [回调处理] 开始持久化题目{},考试任务[{}]",title.QuestionDetailDTO, title.getTaskId());
// 基础参数校验(在锁外,快速失败)
checkMilvusDomainService.checkBasic(title); checkMilvusDomainService.checkBasic(title);
String lockKey = buildLockKey(title.getTaskKpIdsList()); String lockKey = buildLockKey(title.getTaskKpIdsList());
@ -65,27 +65,26 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService {
if (!locked) { if (!locked) {
throw new RuntimeException("当前知识点正在处理,请稍后再试"); throw new RuntimeException("当前知识点正在处理,请稍后再试");
} }
//唯一性校验 //唯一性校验
checkMilvusDomainService.checkUnique(title); checkMilvusDomainService.checkUnique(title);
//比较相似度 //比较相似度
List<List<SearchResp.SearchResult>> query = milvusDemoService.query(title); // List<List<SearchResp.SearchResult>> query = milvusDemoService.query(title);
if (CollectionUtil.isNotEmpty(query) && CollectionUtil.isNotEmpty(query.get(0))) { // if (CollectionUtil.isNotEmpty(query) && CollectionUtil.isNotEmpty(query.get(0))) {
SearchResp.SearchResult searchResult = query.get(0).get(0); // SearchResp.SearchResult searchResult = query.get(0).get(0);
Float score = searchResult.getScore(); // Float score = searchResult.getScore();
if(score.compareTo(SIMILARITY_THRESHOLD) > 0){ // if(score.compareTo(SIMILARITY_THRESHOLD) > 0){
throw new MissingParameterException("题目相似度"+ score +",超过阈值"); // throw new MissingParameterException("题目相似度"+ score +",超过阈值");
} // }
} // }
//保存题目到数据库 //保存题目到数据库
QuestionDTO questionDTO = buildQuestionDTO(title); QuestionDTO questionDTO = buildQuestionDTO(title);
questionDTO = saveQuestionDomainService.save(questionDTO).getData(); questionDTO = saveQuestionDomainService.save(questionDTO).getData();
//保存向量数据到 Milvus //保存向量数据到 Milvus
title.setId(questionDTO.getId()); // title.setId(questionDTO.getId());
milvusDemoService.insertRecord(title); // milvusDemoService.insertRecord(title);
}catch (InterruptedException e) { }catch (InterruptedException e) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();

28
src/main/resources/logback-spring.xml

@ -47,6 +47,34 @@
<logger name="com.project.task.domain.job.TaskNotifyJob" level="INFO" additivity="false"> <logger name="com.project.task.domain.job.TaskNotifyJob" level="INFO" additivity="false">
<appender-ref ref="TASK_NOTICE_FILE" /> <appender-ref ref="TASK_NOTICE_FILE" />
</logger> </logger>
<!-- 生成问题处理专用 Appender -->
<appender name="GENERATE_QUESTION_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/generateQuestion.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/archive/generateQuestion-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>3</maxHistory>
<totalSizeCap>100MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="com.project.milvus.application.impl.MilvusApplicationServiceImpl" level="INFO" additivity="false">
<appender-ref ref="GENERATE_QUESTION_FILE" />
</logger>
<logger name="com.project.interaction.domain.service.impl.PostToGenerateQuestionDomainServiceImpl" level="INFO" additivity="false">
<appender-ref ref="GENERATE_QUESTION_FILE" />
</logger>
<logger name="com.project.question.domain.service.impl.GenerateQuestionDomainServiceImpl" level="INFO" additivity="false">
<appender-ref ref="GENERATE_QUESTION_FILE" />
</logger>
<!-- 根日志配置(保持原有逻辑) --> <!-- 根日志配置(保持原有逻辑) -->
<root level="INFO"> <root level="INFO">
<appender-ref ref="CONSOLE" /> <appender-ref ref="CONSOLE" />

Loading…
Cancel
Save