Merge remote-tracking branch 'origin/dev_1.0.0' into dev_1.0.0
commit
164f1567b2
@ -0,0 +1,12 @@
|
||||
package com.supervision.police.service;
|
||||
|
||||
import com.supervision.police.domain.ModelRecordType;
|
||||
import com.supervision.police.domain.NoteRecordSplit;
|
||||
import com.supervision.springaidemo.dto.QARecordNodeDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface RecordSplitTypeService {
|
||||
|
||||
void type(List<ModelRecordType> allTypeList, QARecordNodeDTO qa, NoteRecordSplit noteRecord);
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package com.supervision.police.service.impl;
|
||||
|
||||
import com.supervision.police.domain.ModelRecordType;
|
||||
import com.supervision.police.domain.NoteRecordSplit;
|
||||
import com.supervision.police.service.CaseTaskRecordService;
|
||||
import com.supervision.police.service.NoteRecordSplitService;
|
||||
import com.supervision.police.service.RecordSplitTypeService;
|
||||
import com.supervision.springaidemo.dto.QARecordNodeDTO;
|
||||
import com.supervision.thread.RecordSplitTypeThread;
|
||||
import com.supervision.thread.RecordSplitTypeThreadPool;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.ai.ollama.OllamaChatClient;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class RecordSplitTypeServiceImpl implements RecordSplitTypeService {
|
||||
|
||||
private final OllamaChatClient chatClient;
|
||||
|
||||
private final NoteRecordSplitService noteRecordSplitService;
|
||||
|
||||
@Async
|
||||
@Override
|
||||
public void type(List<ModelRecordType> allTypeList, QARecordNodeDTO qa, NoteRecordSplit noteRecord){
|
||||
// 这里线程休眠1秒,因为首先报保证消息记录能够插入完成,插入完成之后,再去提交大模型,让大模型去分类.防止分类太快,分类结果出来了,插入还没有插入完成
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
}catch (Exception e){
|
||||
log.error("线程休眠失败");
|
||||
}
|
||||
// 首先创建一个提取任务
|
||||
|
||||
// 进行分类
|
||||
log.info("提交线程池进行分类");
|
||||
RecordSplitTypeThread recordSplitTypeThread = new RecordSplitTypeThread(allTypeList, qa, chatClient, noteRecordSplitService, noteRecord);
|
||||
RecordSplitTypeThreadPool.recordSplitTypeExecutor.submit(recordSplitTypeThread);
|
||||
log.info("线程池提交分类成功");
|
||||
// 这里应该对分类任务的执行过程进行监控,分类结束之后,才能提取三元组的关系.问了产品,暂时先不做,等后面在考虑
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.supervision.thread;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
/**
|
||||
* 笔录分类线程池
|
||||
*/
|
||||
public class RecordSplitTypeThreadPool {
|
||||
|
||||
public static final ExecutorService recordSplitTypeExecutor = ThreadUtil.newFixedExecutor(5, Integer.MAX_VALUE, "recordSplitType", false);
|
||||
}
|
Loading…
Reference in New Issue