diff --git a/src/main/java/com/supervision/pdfqaserver/PdfQaServerApplication.java b/src/main/java/com/supervision/pdfqaserver/PdfQaServerApplication.java index e11facf..6f5c1d4 100644 --- a/src/main/java/com/supervision/pdfqaserver/PdfQaServerApplication.java +++ b/src/main/java/com/supervision/pdfqaserver/PdfQaServerApplication.java @@ -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 { diff --git a/src/main/java/com/supervision/pdfqaserver/controller/NotifyController.java b/src/main/java/com/supervision/pdfqaserver/controller/NotifyController.java index c098841..fdf5b97 100644 --- a/src/main/java/com/supervision/pdfqaserver/controller/NotifyController.java +++ b/src/main/java/com/supervision/pdfqaserver/controller/NotifyController.java @@ -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 pageList(@RequestBody PdfToMdFinishReqVo pdfToMdFinishReqVo) { + public R 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"); } diff --git a/src/main/java/com/supervision/pdfqaserver/service/KnowledgeGraphService.java b/src/main/java/com/supervision/pdfqaserver/service/KnowledgeGraphService.java index 159f0e5..ff52e05 100644 --- a/src/main/java/com/supervision/pdfqaserver/service/KnowledgeGraphService.java +++ b/src/main/java/com/supervision/pdfqaserver/service/KnowledgeGraphService.java @@ -12,9 +12,9 @@ public interface KnowledgeGraphService { /** * 生成知识图谱 - * @param documentId 文档ID + * @param pdfId 文档ID */ - void generateGraph(String documentId); + void generateGraph(String pdfId); void generateGraph(List eredtoList); @@ -27,11 +27,6 @@ public interface KnowledgeGraphService { */ void resetGraphData(String pdfId); - /** - * 提交生成图任务 - * @param documentId - */ - void submitGenerateTask(String documentId); void queryGraph(String databaseId, String query); diff --git a/src/main/java/com/supervision/pdfqaserver/service/PdfInfoService.java b/src/main/java/com/supervision/pdfqaserver/service/PdfInfoService.java index 88f42a2..abbeb9b 100644 --- a/src/main/java/com/supervision/pdfqaserver/service/PdfInfoService.java +++ b/src/main/java/com/supervision/pdfqaserver/service/PdfInfoService.java @@ -12,11 +12,11 @@ import java.util.List; public interface PdfInfoService extends IService { - 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 listNeedGenerateGraph(Integer limit); } diff --git a/src/main/java/com/supervision/pdfqaserver/service/TaskService.java b/src/main/java/com/supervision/pdfqaserver/service/TaskService.java new file mode 100644 index 0000000..dfcd12a --- /dev/null +++ b/src/main/java/com/supervision/pdfqaserver/service/TaskService.java @@ -0,0 +1,6 @@ +package com.supervision.pdfqaserver.service; + +public interface TaskService { + + void submitGenerateTask(Integer pdfId); +} diff --git a/src/main/java/com/supervision/pdfqaserver/service/impl/KnowledgeGraphServiceImpl.java b/src/main/java/com/supervision/pdfqaserver/service/impl/KnowledgeGraphServiceImpl.java index 79c1ccf..4ecec9f 100644 --- a/src/main/java/com/supervision/pdfqaserver/service/impl/KnowledgeGraphServiceImpl.java +++ b/src/main/java/com/supervision/pdfqaserver/service/impl/KnowledgeGraphServiceImpl.java @@ -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 pdfAnalysisOutputs = pdfAnalysisOutputService.queryByPdfId(Integer.valueOf(documentId)); + ((KnowledgeGraphService)AopContext.currentProxy()).resetGraphData(pdfId); + List pdfAnalysisOutputs = pdfAnalysisOutputService.queryByPdfId(Integer.valueOf(pdfId)); if (CollUtil.isEmpty(pdfAnalysisOutputs)) { - log.info("没有找到pdfId为{}的pdf分析结果", documentId); + log.info("没有找到pdfId为{}的pdf分析结果", pdfId); return; } List 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 allWords) { boolean exists = chineseEnglishWordsService.wordsExists(word, allWords); diff --git a/src/main/java/com/supervision/pdfqaserver/service/impl/PdfInfoServiceImpl.java b/src/main/java/com/supervision/pdfqaserver/service/impl/PdfInfoServiceImpl.java index 3f158bf..41eae00 100644 --- a/src/main/java/com/supervision/pdfqaserver/service/impl/PdfInfoServiceImpl.java +++ b/src/main/java/com/supervision/pdfqaserver/service/impl/PdfInfoServiceImpl.java @@ -18,7 +18,7 @@ public class PdfInfoServiceImpl extends ServiceImpl 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 } @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 } @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()) diff --git a/src/main/java/com/supervision/pdfqaserver/service/impl/TaskServiceImpl.java b/src/main/java/com/supervision/pdfqaserver/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..6c8571a --- /dev/null +++ b/src/main/java/com/supervision/pdfqaserver/service/impl/TaskServiceImpl.java @@ -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); + } + }); + } +} diff --git a/src/main/java/com/supervision/pdfqaserver/service/impl/TripleConversionPipelineImpl.java b/src/main/java/com/supervision/pdfqaserver/service/impl/TripleConversionPipelineImpl.java index a15ff2b..a6bf545 100644 --- a/src/main/java/com/supervision/pdfqaserver/service/impl/TripleConversionPipelineImpl.java +++ b/src/main/java/com/supervision/pdfqaserver/service/impl/TripleConversionPipelineImpl.java @@ -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; } diff --git a/src/main/java/com/supervision/pdfqaserver/vo/PdfToMdFinishReqVo.java b/src/main/java/com/supervision/pdfqaserver/vo/PdfToMdFinishReqVo.java index b152047..16eac70 100644 --- a/src/main/java/com/supervision/pdfqaserver/vo/PdfToMdFinishReqVo.java +++ b/src/main/java/com/supervision/pdfqaserver/vo/PdfToMdFinishReqVo.java @@ -8,7 +8,7 @@ public class PdfToMdFinishReqVo { /** * pdfId */ - private String pfdId; + private Integer pdfId; /** * pdf转换状态 2:分析成功 3:分析失败 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6d6df03..6656742 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -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