|
|
@@ -165,7 +165,6 @@ public class GenerateInstructionService {
|
|
|
mainClaimStr = StringUtils.join(reMainPatentClaims, "\n");
|
|
|
}
|
|
|
String mainClaim = mainClaimStr;
|
|
|
- String claimStrs = StringUtils.join(reMainPatentClaims, "\n");
|
|
|
|
|
|
AtomicBoolean businessCompleted = new AtomicBoolean(false);
|
|
|
Flux<String> heartbeatFlux = Flux.interval(Duration.ofSeconds(5))
|
|
|
@@ -182,7 +181,7 @@ public class GenerateInstructionService {
|
|
|
System.out.println("心跳流已停止,原因: " + signal);
|
|
|
});
|
|
|
|
|
|
- Flux<String> businessFlux = Flux.create(emitter -> {
|
|
|
+ Flux<String> businessFlux = Flux.create(emitter -> {
|
|
|
new Thread(() -> {
|
|
|
try {
|
|
|
|
|
|
@@ -192,7 +191,7 @@ public class GenerateInstructionService {
|
|
|
String conversionId = "";
|
|
|
String title = "";
|
|
|
//生成标题和技术领域
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath, claimStrs);
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath, claim);
|
|
|
conversionId = generateInstructAnswerVO.getConversionId();
|
|
|
title = generateInstructAnswerVO.getTitle();
|
|
|
String technical = generateInstructAnswerVO.getTechnical();
|
|
|
@@ -309,15 +308,15 @@ public class GenerateInstructionService {
|
|
|
} else {
|
|
|
message = getFluxMessage(FIELD_TITLE, MESSAGE, generateTechnicalVO.getTitle());
|
|
|
}
|
|
|
- System.out.println("message:"+message);
|
|
|
+ System.out.println("message:" + message);
|
|
|
fluxSink.next(message);
|
|
|
System.out.println("message: 发送成功");
|
|
|
String endMessage = getFluxMessage(FIELD_TITLE, END, "");
|
|
|
fluxSink.next(endMessage);
|
|
|
- System.out.println("message:"+endMessage);
|
|
|
+ System.out.println("message:" + endMessage);
|
|
|
String startMessage2 = getFluxMessage(FIELD_TECHNICAL, START, "");
|
|
|
fluxSink.next(startMessage2);
|
|
|
- System.out.println("message:"+startMessage2);
|
|
|
+ System.out.println("message:" + startMessage2);
|
|
|
String message2 = "";
|
|
|
if (ifError) {
|
|
|
message2 = getFluxMessage(FIELD_TECHNICAL, ERROR, "生成技术领域异常");
|
|
|
@@ -325,42 +324,13 @@ public class GenerateInstructionService {
|
|
|
message2 = getFluxMessage(FIELD_TECHNICAL, MESSAGE, generateTechnicalVO.getTechnical());
|
|
|
}
|
|
|
fluxSink.next(message2);
|
|
|
- System.out.println("message:"+message2);
|
|
|
+ System.out.println("message:" + message2);
|
|
|
String endMessage2 = getFluxMessage(FIELD_TECHNICAL, END, "");
|
|
|
fluxSink.next(endMessage2);
|
|
|
|
|
|
return generateInstructAnswerVO;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 生成第一个权利要求解释
|
|
|
- *
|
|
|
- * @param rePatentClaim
|
|
|
- * @return
|
|
|
- */
|
|
|
- public ClaimExplainVO getFirstImplementation(Integer userId, RePatentClaim rePatentClaim, String background, String conversationId) throws Exception {
|
|
|
- ClaimExplainVO claimExplainVO = null;
|
|
|
- try {
|
|
|
- String claimContent = rePatentClaim.getContent();
|
|
|
- GetInstructAnswerDTO getInstructAnswerDTO = new GetInstructAnswerDTO();
|
|
|
- getInstructAnswerDTO.setClaim(claimContent);
|
|
|
- getInstructAnswerDTO.setIndex(0);
|
|
|
- getInstructAnswerDTO.setBackground(background);
|
|
|
- getInstructAnswerDTO.setType("g&implementation");
|
|
|
- getInstructAnswerDTO.setConversationId(conversationId);
|
|
|
- getInstructAnswerDTO.setUserId(userId);
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
- String answer = generateInstructAnswerVO.getAnswer();
|
|
|
- claimExplainVO = JSONObject.parseObject(answer, ClaimExplainVO.class);
|
|
|
-
|
|
|
-
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- return claimExplainVO;
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* 生成权要的具体实施方式
|
|
|
@@ -379,9 +349,11 @@ public class GenerateInstructionService {
|
|
|
List<ImplementationMessage> implementationMessages = new ArrayList<>();
|
|
|
|
|
|
List<ClaimExplainVO> claimExplainVOS = new ArrayList<>();
|
|
|
+ Map<Integer, String> map = new HashMap<>();
|
|
|
for (int i = 0; i < rePatentClaims.size(); i++) {
|
|
|
RePatentClaim rePatentClaim = rePatentClaims.get(i);
|
|
|
-
|
|
|
+ String parentSort = rePatentClaim.getParentSort();
|
|
|
+ Integer sort = rePatentClaim.getSort();
|
|
|
ClaimExplainVO claimExplainVO = null;
|
|
|
|
|
|
try {
|
|
|
@@ -391,14 +363,30 @@ public class GenerateInstructionService {
|
|
|
getInstructAnswerDTO.setClaim(claimContent);
|
|
|
getInstructAnswerDTO.setBackground(background);
|
|
|
getInstructAnswerDTO.setIndex(i);
|
|
|
- getInstructAnswerDTO.setType("g&implementation");
|
|
|
+
|
|
|
getInstructAnswerDTO.setConversationId(conversationId);
|
|
|
getInstructAnswerDTO.setUserId(userId);
|
|
|
+
|
|
|
+ //处理独立权利要求
|
|
|
+ if (parentSort == null || parentSort.trim().equals("")||parentSort.equals("-1")) {
|
|
|
+ getInstructAnswerDTO.setType("g&InExplain");
|
|
|
+ }
|
|
|
+ //处理从属权利要求
|
|
|
+ else {
|
|
|
+ getInstructAnswerDTO.setType("g&Explain");
|
|
|
+ List<Integer> sortLists = StringUtils.changeStringToInteger(parentSort, ",");
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ for (Integer s : sortLists) {
|
|
|
+ stringBuilder.append(map.get(s));
|
|
|
+ }
|
|
|
+ getInstructAnswerDTO.setParentClaims(stringBuilder.toString());
|
|
|
+ }
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
String answer = generateInstructAnswerVO.getAnswer();
|
|
|
if (generateInstructAnswerVO.getConversionId() != null) {
|
|
|
mainVO.setConversionId(generateInstructAnswerVO.getConversionId());
|
|
|
}
|
|
|
+ map.put(sort, answer);
|
|
|
|
|
|
claimExplainVO = JSONObject.parseObject(answer, ClaimExplainVO.class);
|
|
|
|
|
|
@@ -507,6 +495,7 @@ public class GenerateInstructionService {
|
|
|
map.put("claims", claims);
|
|
|
map.put("main_claim", mainClaim);
|
|
|
map.put("file_path", filePath);
|
|
|
+ map.put("parent_claims", getInstructAnswerDTO.getParentClaims());
|
|
|
difyChatMessageDTO.setInputs(map);
|
|
|
Integer cycle = 0;
|
|
|
Boolean flag = false;
|