1. 指代消除功能开发

master
xueqingkun 3 months ago
parent 0e0cdc4a50
commit c199b6f3ff

@ -9,6 +9,9 @@ public interface RecordSplitProcessService {
void process(List<ModelRecordType> allTypeList, List<NoteRecordSplit> splitList); void process(List<ModelRecordType> allTypeList, List<NoteRecordSplit> splitList);
void processWithReplacePronoun(List<ModelRecordType> allTypeList, List<NoteRecordSplit> splitList);
/** /**
* *
* *

@ -109,16 +109,9 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
boolean taskStatus = recordSplitProcessService.recordProcessTaskStatusCheck(record.getCaseId(), record.getId(), allNoteRecordSplits.size()); boolean taskStatus = recordSplitProcessService.recordProcessTaskStatusCheck(record.getCaseId(), record.getId(), allNoteRecordSplits.size());
// 如果校验结果为true,则说明需要进行分类以及三元组操作 // 如果校验结果为true,则说明需要进行分类以及三元组操作
if (taskStatus) { if (taskStatus) {
// 对笔录进行指代消岐
try {
List<NoteRecordSplit> noteRecordSplits = recordSplitProcessService.replacePronoun(allNoteRecordSplits);
noteRecordSplitService.batchUpdatePronoun(noteRecordSplits);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 对笔录进行分类,并对笔录进行提取三元组 // 对笔录进行分类,并对笔录进行提取三元组
List<ModelRecordType> allTypeList = modelRecordTypeService.lambdaQuery().list(); List<ModelRecordType> allTypeList = modelRecordTypeService.lambdaQuery().list();
recordSplitProcessService.process(allTypeList, allNoteRecordSplits); recordSplitProcessService.processWithReplacePronoun(allTypeList, allNoteRecordSplits);
} }
caseStatusManageService.whenUploadRecord(record.getCaseId()); caseStatusManageService.whenUploadRecord(record.getCaseId());
return record.getId(); return record.getId();

@ -153,7 +153,7 @@ public class OCRRecordServiceImpl implements OCRRecordService {
if (taskStatus) { if (taskStatus) {
// 对笔录进行分类,并对笔录进行提取三元组 // 对笔录进行分类,并对笔录进行提取三元组
List<ModelRecordType> allTypeList = modelRecordTypeService.lambdaQuery().list(); List<ModelRecordType> allTypeList = modelRecordTypeService.lambdaQuery().list();
recordSplitProcessService.process(allTypeList, allNoteRecordSplits); recordSplitProcessService.processWithReplacePronoun(allTypeList, allNoteRecordSplits);
} }
return true; return true;
} }

@ -4,15 +4,15 @@ import cn.hutool.core.util.StrUtil;
import com.supervision.police.domain.CaseTaskRecord; import com.supervision.police.domain.CaseTaskRecord;
import com.supervision.police.domain.ModelRecordType; import com.supervision.police.domain.ModelRecordType;
import com.supervision.police.domain.NoteRecordSplit; import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.police.service.CaseTaskRecordService; import com.supervision.police.service.*;
import com.supervision.police.service.RecordSplitProcessService;
import com.supervision.police.service.RecordSplitClassifyService;
import com.supervision.thread.ReplacePronounTask; import com.supervision.thread.ReplacePronounTask;
import com.supervision.thread.ReplacePronounTreadPool; import com.supervision.thread.ReplacePronounTreadPool;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.ollama.OllamaChatClient; import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -31,6 +31,10 @@ public class RecordSplitProcessServiceImpl implements RecordSplitProcessService
private final OllamaChatClient chatClient; private final OllamaChatClient chatClient;
@Autowired
private NoteRecordSplitService noteRecordSplitService;
@Value("${fu-hsi-config.pronouns}") @Value("${fu-hsi-config.pronouns}")
private List<String> pronouns; private List<String> pronouns;
@Override @Override
@ -39,6 +43,19 @@ public class RecordSplitProcessServiceImpl implements RecordSplitProcessService
recordSplitClassifyService.classify(allTypeList,splitList); recordSplitClassifyService.classify(allTypeList,splitList);
} }
@Async
@Override
public void processWithReplacePronoun(List<ModelRecordType> allTypeList, List<NoteRecordSplit> splitList) {
try {
List<NoteRecordSplit> noteRecordSplits = this.replacePronoun(splitList);
noteRecordSplitService.batchUpdatePronoun(noteRecordSplits);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
this.process(allTypeList, splitList);
}
public boolean recordProcessTaskStatusCheck(String caseId, String recordId, Integer splitSize) { public boolean recordProcessTaskStatusCheck(String caseId, String recordId, Integer splitSize) {
// 首先查询是否存在任务,如果不存在,就新建 // 首先查询是否存在任务,如果不存在,就新建
Optional<CaseTaskRecord> caseTaskRecordOpt = caseTaskRecordService.lambdaQuery() Optional<CaseTaskRecord> caseTaskRecordOpt = caseTaskRecordService.lambdaQuery()

Loading…
Cancel
Save