|
@@ -14,6 +14,7 @@ import cn.cslg.pas.domain.business.ReportTemple;
|
|
|
import cn.cslg.pas.domain.dify.AssoConfessionSessionFile;
|
|
|
import cn.cslg.pas.domain.dify.ConfessionSession;
|
|
|
import cn.cslg.pas.domain.dify.GetInstructAnswerDTO;
|
|
|
+import cn.cslg.pas.domain.dify.ImplementationMessage;
|
|
|
import cn.cslg.pas.exception.ExceptionEnum;
|
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
|
import cn.cslg.pas.service.business.ReportTempleService;
|
|
@@ -129,6 +130,7 @@ public class GenerateInstructionService {
|
|
|
|
|
|
public Flux<String> generateInstruction2(GenerateClaimDTO generateClaimDTO) throws Exception {
|
|
|
Integer templeId = 19;
|
|
|
+ Integer userId = loginUtils.getId();
|
|
|
String orgClaim = generateClaimDTO.getClaim();
|
|
|
String guid = generateClaimDTO.getFilePath();
|
|
|
String filePath = fileDownloadUrl + generateClaimDTO.getFilePath();
|
|
@@ -173,7 +175,7 @@ public class GenerateInstructionService {
|
|
|
emitter.next(startMess);
|
|
|
|
|
|
//生成标题和技术领域
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(emitter, mainClaim, background, filePath);
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath);
|
|
|
String conversionId = generateInstructAnswerVO.getConversionId();
|
|
|
String title = generateInstructAnswerVO.getTitle();
|
|
|
String technical = generateInstructAnswerVO.getTechnical();
|
|
@@ -193,12 +195,12 @@ public class GenerateInstructionService {
|
|
|
//生成发明内容
|
|
|
String startMessage = getFluxMessage(FIELD_CONTENT, START, "");
|
|
|
emitter.next(startMessage);
|
|
|
- ClaimExplainVO claimExplainVO = this.getFirstImplementation(rePatentClaims.get(0), background, conversionId);
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO3 = this.generateContent(emitter, rePatentClaims, claimExplainVO, conversionId, title);
|
|
|
+ ClaimExplainVO claimExplainVO = this.getFirstImplementation(userId, rePatentClaims.get(0), background, conversionId);
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO3 = this.generateContent(userId, emitter, rePatentClaims, claimExplainVO, conversionId, title);
|
|
|
List<String> formClaimList = generateInstructAnswerVO3.getClaimList();
|
|
|
map.put("content", generateInstructAnswerVO3.getAnswers());
|
|
|
//生成具体实施方式
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO2 = this.generateImplementation(emitter, claimExplainVO, background, conversionId, rePatentClaims, formClaimList);
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO2 = this.generateImplementation(userId, emitter, claimExplainVO, background, conversionId, rePatentClaims, formClaimList);
|
|
|
map.put("implementation", generateInstructAnswerVO2.getImplementations());
|
|
|
|
|
|
//生成文档
|
|
@@ -252,7 +254,7 @@ public class GenerateInstructionService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public GenerateInstructAnswerVO genrateTechcialAndTitle(FluxSink fluxSink, String mainClaim, String background, String filePath) throws Exception {
|
|
|
+ public GenerateInstructAnswerVO genrateTechcialAndTitle(Integer userId, FluxSink fluxSink, String mainClaim, String background, String filePath) throws Exception {
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = null;
|
|
|
GenerateTechnicalVO generateTechnicalVO = null;
|
|
|
String startMessage = getFluxMessage(FIELD_TITLE, START, "");
|
|
@@ -264,6 +266,7 @@ public class GenerateInstructionService {
|
|
|
getInstructAnswerDTO.setMainClaim(mainClaim);
|
|
|
getInstructAnswerDTO.setFilePath(filePath);
|
|
|
getInstructAnswerDTO.setType("g&technical");
|
|
|
+ getInstructAnswerDTO.setUserId(userId);
|
|
|
generateInstructAnswerVO = this.getAnswerFromAI(getInstructAnswerDTO);
|
|
|
String answer = generateInstructAnswerVO.getAnswer();
|
|
|
generateTechnicalVO = JSONObject.parseObject(answer, GenerateTechnicalVO.class);
|
|
@@ -305,7 +308,7 @@ public class GenerateInstructionService {
|
|
|
* @param rePatentClaim
|
|
|
* @return
|
|
|
*/
|
|
|
- public ClaimExplainVO getFirstImplementation(RePatentClaim rePatentClaim, String background, String conversationId) throws Exception {
|
|
|
+ public ClaimExplainVO getFirstImplementation(Integer userId, RePatentClaim rePatentClaim, String background, String conversationId) throws Exception {
|
|
|
ClaimExplainVO claimExplainVO = null;
|
|
|
try {
|
|
|
String claimContent = rePatentClaim.getContent();
|
|
@@ -315,7 +318,7 @@ public class GenerateInstructionService {
|
|
|
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);
|
|
@@ -340,11 +343,11 @@ public class GenerateInstructionService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public GenerateInstructAnswerVO generateImplementation(FluxSink fluxSink, ClaimExplainVO firstClaimExplainVO, String background, String conversationId, List<RePatentClaim> rePatentClaims, List<String> formClaims) throws Exception {
|
|
|
+ public GenerateInstructAnswerVO generateImplementation(Integer userId, FluxSink fluxSink, ClaimExplainVO firstClaimExplainVO, String background, String conversationId, List<RePatentClaim> rePatentClaims, List<String> formClaims) throws Exception {
|
|
|
String startMessage = getFluxMessage(FIELD_IMPLEMENTATION, START, "");
|
|
|
fluxSink.next(startMessage);
|
|
|
GenerateInstructAnswerVO mainVO = new GenerateInstructAnswerVO();
|
|
|
- List<String> reContents = new ArrayList<>();
|
|
|
+ List<ImplementationMessage> implementationMessages = new ArrayList<>();
|
|
|
|
|
|
|
|
|
for (int i = 0; i < rePatentClaims.size(); i++) {
|
|
@@ -366,7 +369,7 @@ public class GenerateInstructionService {
|
|
|
getInstructAnswerDTO.setIndex(i);
|
|
|
getInstructAnswerDTO.setType("g&implementation");
|
|
|
getInstructAnswerDTO.setConversationId(conversationId);
|
|
|
-
|
|
|
+ getInstructAnswerDTO.setUserId(userId);
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
String answer = generateInstructAnswerVO.getAnswer();
|
|
|
if (generateInstructAnswerVO.getConversionId() != null) {
|
|
@@ -377,7 +380,7 @@ public class GenerateInstructionService {
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
-
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -385,10 +388,10 @@ public class GenerateInstructionService {
|
|
|
String message = "";
|
|
|
String reStr = null;
|
|
|
if (claimExplainVO != null) {
|
|
|
- List<String> contents = this.formatImplementation(claimExplainVO, rePatentClaim, formClaim);
|
|
|
- if (contents.size() > 0) {
|
|
|
- reContents.addAll(contents);
|
|
|
- reStr = StringUtils.join(contents, "\n");
|
|
|
+ ImplementationMessage implementationMessage = this.formatImplementation(claimExplainVO, rePatentClaim, formClaim);
|
|
|
+ implementationMessages.add(implementationMessage);
|
|
|
+ if (implementationMessage != null) {
|
|
|
+ reStr = implementationMessage.getClaimStr() + "\n" + implementationMessage.getExplain() + "\n" + implementationMessage.getEffect();
|
|
|
}
|
|
|
if (i != 0) {
|
|
|
reStr = "\n" + reStr;
|
|
@@ -403,7 +406,7 @@ public class GenerateInstructionService {
|
|
|
|
|
|
}
|
|
|
|
|
|
- mainVO.setImplementations(reContents);
|
|
|
+ mainVO.setImplementations(implementationMessages);
|
|
|
String endMessage = getFluxMessage(FIELD_IMPLEMENTATION, END, "");
|
|
|
fluxSink.next(endMessage);
|
|
|
return mainVO;
|
|
@@ -415,9 +418,8 @@ public class GenerateInstructionService {
|
|
|
* @param claimExplainVO
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<String> formatImplementation(ClaimExplainVO claimExplainVO, RePatentClaim rePatentClaim, String formClaim) {
|
|
|
- String reStr = null;
|
|
|
- List<String> contents = new ArrayList<>();
|
|
|
+ private ImplementationMessage formatImplementation(ClaimExplainVO claimExplainVO, RePatentClaim rePatentClaim, String formClaim) {
|
|
|
+ ImplementationMessage implementationMessage = new ImplementationMessage();
|
|
|
String explainVOClaim = formClaim;
|
|
|
String effect = claimExplainVO.getEffects();
|
|
|
String explain = claimExplainVO.getExplain();
|
|
@@ -428,18 +430,18 @@ public class GenerateInstructionService {
|
|
|
} else {
|
|
|
tem = "在一实施方式中," + explainVOClaim;
|
|
|
}
|
|
|
-
|
|
|
- contents.add(tem);
|
|
|
+ implementationMessage.setClaimStr(tem);
|
|
|
}
|
|
|
if (explain != null && !explain.trim().equals("")) {
|
|
|
- contents.add(explain);
|
|
|
+ implementationMessage.setExplain(explain);
|
|
|
}
|
|
|
if (effect != null && !effect.trim().equals("")) {
|
|
|
- contents.add(effect);
|
|
|
+ implementationMessage.setEffect(effect);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
- return contents;
|
|
|
+ return implementationMessage;
|
|
|
}
|
|
|
|
|
|
private String getFluxMessage(String field, String event, String content) {
|
|
@@ -462,9 +464,13 @@ public class GenerateInstructionService {
|
|
|
String effects = getInstructAnswerDTO.getEffects();
|
|
|
String mainClaim = getInstructAnswerDTO.getMainClaim();
|
|
|
String filePath = getInstructAnswerDTO.getFilePath();
|
|
|
+ Integer userId = getInstructAnswerDTO.getUserId();
|
|
|
+ if (userId == null) {
|
|
|
+ userId = 1;
|
|
|
+ }
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = new GenerateInstructAnswerVO();
|
|
|
DifyChatMessageDTO difyChatMessageDTO = new DifyChatMessageDTO();
|
|
|
- difyChatMessageDTO.setUser("1");
|
|
|
+ difyChatMessageDTO.setUser(userId.toString());
|
|
|
difyChatMessageDTO.setResponseMode("blocking");
|
|
|
difyChatMessageDTO.setQuery(type);
|
|
|
difyChatMessageDTO.setConversationId(conversationId);
|
|
@@ -527,7 +533,7 @@ public class GenerateInstructionService {
|
|
|
* @param rePatentClaims
|
|
|
* @return
|
|
|
*/
|
|
|
- public GenerateInstructAnswerVO generateContent(FluxSink fluxSink, List<RePatentClaim> rePatentClaims, ClaimExplainVO claimExplainVO, String conversationId, String title) throws Exception {
|
|
|
+ public GenerateInstructAnswerVO generateContent(Integer userId, FluxSink fluxSink, List<RePatentClaim> rePatentClaims, ClaimExplainVO claimExplainVO, String conversationId, String title) throws Exception {
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = new GenerateInstructAnswerVO();
|
|
|
List<String> formClaims = new ArrayList<>();
|
|
|
List<String> contentStrs = new ArrayList<>();
|
|
@@ -540,6 +546,7 @@ public class GenerateInstructionService {
|
|
|
//发送说明书内容第一段信息
|
|
|
getInstructAnswerDTO.setEffects(claimExplainVO.getEffects());
|
|
|
getInstructAnswerDTO.setType("g&re_effect");
|
|
|
+ getInstructAnswerDTO.setUserId(userId);
|
|
|
generateInstructAnswerVO2 = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
String answer = generateInstructAnswerVO2.getAnswer();
|
|
|
GenerateContentVO generateTechnicalVO = JSONObject.parseObject(answer, GenerateContentVO.class);
|