generateGraph功能优化

master
xueqingkun 1 month ago
parent 3f8643b7a0
commit 9a45ed30cc

@ -5,7 +5,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@EnableAspectJAutoProxy(exposeProxy = true)
@EnableAspectJAutoProxy(exposeProxy = true,proxyTargetClass = true)
@MapperScan(basePackages = {"com.supervision.pdfqaserver.mapper"})
@SpringBootApplication
public class PdfQaServerApplication {

@ -1,7 +1,7 @@
package com.supervision.pdfqaserver.controller;
import com.supervision.pdfqaserver.dto.R;
import com.supervision.pdfqaserver.service.KnowledgeGraphService;
import com.supervision.pdfqaserver.service.TaskService;
import com.supervision.pdfqaserver.vo.PdfToMdFinishReqVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -12,11 +12,11 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/chat")
@RequestMapping("/notify")
@RequiredArgsConstructor
public class NotifyController {
private final KnowledgeGraphService knowledgeGraphService;
private final TaskService taskService;
/**
* pdf
@ -24,11 +24,11 @@ public class NotifyController {
* @return
*/
@PostMapping("/pdf-to-md/finish")
public R<String> pageList(@RequestBody PdfToMdFinishReqVo pdfToMdFinishReqVo) {
public R<String> pfdToMdFinished(@RequestBody PdfToMdFinishReqVo pdfToMdFinishReqVo) {
log.info("pdf转化完成通知回调, pdfId:{}, processStatus:{}", pdfToMdFinishReqVo.getPfdId(), pdfToMdFinishReqVo.getProcessStatus());
log.info("pdf转化完成通知回调, pdfId:{}, processStatus:{}", pdfToMdFinishReqVo.getPdfId(), pdfToMdFinishReqVo.getProcessStatus());
if ("2".equals(pdfToMdFinishReqVo.getProcessStatus())) {
knowledgeGraphService.submitGenerateTask(pdfToMdFinishReqVo.getPfdId());
taskService.submitGenerateTask(pdfToMdFinishReqVo.getPdfId());
}
return R.ok("success");
}

@ -12,9 +12,9 @@ public interface KnowledgeGraphService {
/**
*
* @param documentId ID
* @param pdfId ID
*/
void generateGraph(String documentId);
void generateGraph(String pdfId);
void generateGraph(List<EREDTO> eredtoList);
@ -27,11 +27,6 @@ public interface KnowledgeGraphService {
*/
void resetGraphData(String pdfId);
/**
*
* @param documentId
*/
void submitGenerateTask(String documentId);
void queryGraph(String databaseId, String query);

@ -12,11 +12,11 @@ import java.util.List;
public interface PdfInfoService extends IService<PdfInfo> {
void pdfToGraphStart(String pdfId);
void pdfToGraphStart(Integer pdfId);
void pdfToGraphComplete(String pdfId);
void pdfToGraphComplete(Integer pdfId);
void pdfToGraphFail(String pdfId);
void pdfToGraphFail(Integer pdfId);
List<PdfInfo> listNeedGenerateGraph(Integer limit);
}

@ -0,0 +1,6 @@
package com.supervision.pdfqaserver.service;
public interface TaskService {
void submitGenerateTask(Integer pdfId);
}

@ -46,14 +46,13 @@ public class KnowledgeGraphServiceImpl implements KnowledgeGraphService {
private final ChinesEsToEnglishGenerator chinesEsToEnglishGenerator;
private final PdfInfoService pdfInfoService;
@Override
public void generateGraph(String documentId) {
public void generateGraph(String pdfId) {
((KnowledgeGraphService)AopContext.currentProxy()).resetGraphData(documentId);
List<PdfAnalysisOutput> pdfAnalysisOutputs = pdfAnalysisOutputService.queryByPdfId(Integer.valueOf(documentId));
((KnowledgeGraphService)AopContext.currentProxy()).resetGraphData(pdfId);
List<PdfAnalysisOutput> pdfAnalysisOutputs = pdfAnalysisOutputService.queryByPdfId(Integer.valueOf(pdfId));
if (CollUtil.isEmpty(pdfAnalysisOutputs)) {
log.info("没有找到pdfId为{}的pdf分析结果", documentId);
log.info("没有找到pdfId为{}的pdf分析结果", pdfId);
return;
}
List<DocumentDTO> documentDTOList = pdfAnalysisOutputs.stream().map(DocumentDTO::new).toList();
@ -237,22 +236,6 @@ public class KnowledgeGraphServiceImpl implements KnowledgeGraphService {
}
@Override
public void submitGenerateTask(String documentId) {
// 提交生成图任务
log.info("submitGenerateTask:提交知识图谱生成任务,documentId:{}", documentId);
KnowledgeGraphGenerateTreadPool.executorService.execute(() -> {
try {
pdfInfoService.pdfToGraphStart(documentId);
generateGraph(documentId);
pdfInfoService.pdfToGraphComplete(documentId);
} catch (Exception e) {
log.error("生成知识图谱失败,documentId:{}", documentId, e);
pdfInfoService.pdfToGraphFail(documentId);
}
});
}
private void saveWordsIfNecessary(String word, List<ChineseEnglishWords> allWords) {
boolean exists = chineseEnglishWordsService.wordsExists(word, allWords);

@ -18,7 +18,7 @@ public class PdfInfoServiceImpl extends ServiceImpl<PdfInfoMapper, PdfInfo>
implements PdfInfoService{
@Override
public void pdfToGraphStart(String pdfId) {
public void pdfToGraphStart(Integer pdfId) {
this.lambdaUpdate().eq(PdfInfo::getId, pdfId)
.set(PdfInfo::getProcessStatus, 4)
.set(PdfInfo::getExtractionStartTime, LocalDateTime.now())
@ -26,7 +26,7 @@ public class PdfInfoServiceImpl extends ServiceImpl<PdfInfoMapper, PdfInfo>
}
@Override
public void pdfToGraphComplete(String pdfId) {
public void pdfToGraphComplete(Integer pdfId) {
this.lambdaUpdate().eq(PdfInfo::getId, pdfId)
.set(PdfInfo::getProcessStatus, 5)
.set(PdfInfo::getExtractionEndTime, LocalDateTime.now())
@ -34,7 +34,7 @@ public class PdfInfoServiceImpl extends ServiceImpl<PdfInfoMapper, PdfInfo>
}
@Override
public void pdfToGraphFail(String pdfId) {
public void pdfToGraphFail(Integer pdfId) {
this.lambdaUpdate().eq(PdfInfo::getId, pdfId)
.set(PdfInfo::getProcessStatus, 6)
.set(PdfInfo::getExtractionEndTime, LocalDateTime.now())

@ -0,0 +1,33 @@
package com.supervision.pdfqaserver.service.impl;
import com.supervision.pdfqaserver.service.KnowledgeGraphService;
import com.supervision.pdfqaserver.service.PdfInfoService;
import com.supervision.pdfqaserver.service.TaskService;
import com.supervision.pdfqaserver.thread.KnowledgeGraphGenerateTreadPool;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RequiredArgsConstructor
public class TaskServiceImpl implements TaskService {
private final PdfInfoService pdfInfoService;
private final KnowledgeGraphService knowledgeGraphService;
public void submitGenerateTask(Integer pdfId) {
// 提交生成图任务
log.info("submitGenerateTask:提交知识图谱生成任务,pdfId:{}", pdfId);
KnowledgeGraphGenerateTreadPool.executorService.execute(() -> {
try {
pdfInfoService.pdfToGraphStart(pdfId);
knowledgeGraphService.generateGraph(String.valueOf(pdfId));
pdfInfoService.pdfToGraphComplete(pdfId);
} catch (Exception e) {
log.error("生成知识图谱失败,documentId:{}", pdfId, e);
pdfInfoService.pdfToGraphFail(pdfId);
}
});
}
}

@ -157,7 +157,9 @@ public class TripleConversionPipelineImpl implements TripleConversionPipeline {
return tableTitleDTO;
}
String table = PromptCache.promptMap.get(PromptCache.EXTRACT_TABLE_TITLE);
tableTitleDTO.setTitle(table);
String format = StrUtil.format(table, content);
String response = ollamaChatModel.call(format);
tableTitleDTO.setTitle(response);
return tableTitleDTO;
}

@ -8,7 +8,7 @@ public class PdfToMdFinishReqVo {
/**
* pdfId
*/
private String pfdId;
private Integer pdfId;
/**
* pdf 2 3

@ -24,7 +24,8 @@ spring:
timeout: 180000
neo4j:
driver:
uri: bolt://192.168.10.137:17687
uri: bolt://192.168.10.137:17688
#uri: bolt://192.168.10.137:17687
user: neo4j
password: 12345678

Loading…
Cancel
Save