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.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.EnableAspectJAutoProxy;
@EnableAspectJAutoProxy(exposeProxy = true) @EnableAspectJAutoProxy(exposeProxy = true,proxyTargetClass = true)
@MapperScan(basePackages = {"com.supervision.pdfqaserver.mapper"}) @MapperScan(basePackages = {"com.supervision.pdfqaserver.mapper"})
@SpringBootApplication @SpringBootApplication
public class PdfQaServerApplication { public class PdfQaServerApplication {

@ -1,7 +1,7 @@
package com.supervision.pdfqaserver.controller; package com.supervision.pdfqaserver.controller;
import com.supervision.pdfqaserver.dto.R; 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 com.supervision.pdfqaserver.vo.PdfToMdFinishReqVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -12,11 +12,11 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/chat") @RequestMapping("/notify")
@RequiredArgsConstructor @RequiredArgsConstructor
public class NotifyController { public class NotifyController {
private final KnowledgeGraphService knowledgeGraphService; private final TaskService taskService;
/** /**
* pdf * pdf
@ -24,11 +24,11 @@ public class NotifyController {
* @return * @return
*/ */
@PostMapping("/pdf-to-md/finish") @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())) { if ("2".equals(pdfToMdFinishReqVo.getProcessStatus())) {
knowledgeGraphService.submitGenerateTask(pdfToMdFinishReqVo.getPfdId()); taskService.submitGenerateTask(pdfToMdFinishReqVo.getPdfId());
} }
return R.ok("success"); 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); void generateGraph(List<EREDTO> eredtoList);
@ -27,11 +27,6 @@ public interface KnowledgeGraphService {
*/ */
void resetGraphData(String pdfId); void resetGraphData(String pdfId);
/**
*
* @param documentId
*/
void submitGenerateTask(String documentId);
void queryGraph(String databaseId, String query); void queryGraph(String databaseId, String query);

@ -12,11 +12,11 @@ import java.util.List;
public interface PdfInfoService extends IService<PdfInfo> { 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); 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 ChinesEsToEnglishGenerator chinesEsToEnglishGenerator;
private final PdfInfoService pdfInfoService;
@Override @Override
public void generateGraph(String documentId) { public void generateGraph(String pdfId) {
((KnowledgeGraphService)AopContext.currentProxy()).resetGraphData(documentId); ((KnowledgeGraphService)AopContext.currentProxy()).resetGraphData(pdfId);
List<PdfAnalysisOutput> pdfAnalysisOutputs = pdfAnalysisOutputService.queryByPdfId(Integer.valueOf(documentId)); List<PdfAnalysisOutput> pdfAnalysisOutputs = pdfAnalysisOutputService.queryByPdfId(Integer.valueOf(pdfId));
if (CollUtil.isEmpty(pdfAnalysisOutputs)) { if (CollUtil.isEmpty(pdfAnalysisOutputs)) {
log.info("没有找到pdfId为{}的pdf分析结果", documentId); log.info("没有找到pdfId为{}的pdf分析结果", pdfId);
return; return;
} }
List<DocumentDTO> documentDTOList = pdfAnalysisOutputs.stream().map(DocumentDTO::new).toList(); 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) { private void saveWordsIfNecessary(String word, List<ChineseEnglishWords> allWords) {
boolean exists = chineseEnglishWordsService.wordsExists(word, allWords); boolean exists = chineseEnglishWordsService.wordsExists(word, allWords);

@ -18,7 +18,7 @@ public class PdfInfoServiceImpl extends ServiceImpl<PdfInfoMapper, PdfInfo>
implements PdfInfoService{ implements PdfInfoService{
@Override @Override
public void pdfToGraphStart(String pdfId) { public void pdfToGraphStart(Integer pdfId) {
this.lambdaUpdate().eq(PdfInfo::getId, pdfId) this.lambdaUpdate().eq(PdfInfo::getId, pdfId)
.set(PdfInfo::getProcessStatus, 4) .set(PdfInfo::getProcessStatus, 4)
.set(PdfInfo::getExtractionStartTime, LocalDateTime.now()) .set(PdfInfo::getExtractionStartTime, LocalDateTime.now())
@ -26,7 +26,7 @@ public class PdfInfoServiceImpl extends ServiceImpl<PdfInfoMapper, PdfInfo>
} }
@Override @Override
public void pdfToGraphComplete(String pdfId) { public void pdfToGraphComplete(Integer pdfId) {
this.lambdaUpdate().eq(PdfInfo::getId, pdfId) this.lambdaUpdate().eq(PdfInfo::getId, pdfId)
.set(PdfInfo::getProcessStatus, 5) .set(PdfInfo::getProcessStatus, 5)
.set(PdfInfo::getExtractionEndTime, LocalDateTime.now()) .set(PdfInfo::getExtractionEndTime, LocalDateTime.now())
@ -34,7 +34,7 @@ public class PdfInfoServiceImpl extends ServiceImpl<PdfInfoMapper, PdfInfo>
} }
@Override @Override
public void pdfToGraphFail(String pdfId) { public void pdfToGraphFail(Integer pdfId) {
this.lambdaUpdate().eq(PdfInfo::getId, pdfId) this.lambdaUpdate().eq(PdfInfo::getId, pdfId)
.set(PdfInfo::getProcessStatus, 6) .set(PdfInfo::getProcessStatus, 6)
.set(PdfInfo::getExtractionEndTime, LocalDateTime.now()) .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; return tableTitleDTO;
} }
String table = PromptCache.promptMap.get(PromptCache.EXTRACT_TABLE_TITLE); 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; return tableTitleDTO;
} }

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

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

Loading…
Cancel
Save