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

Loading…
Cancel
Save