Forráskód Böngészése

20250619-生成说明书修改

lrj 2 hónapja
szülő
commit
a490c23e2c

+ 2 - 1
src/main/java/cn/cslg/pas/common/model/dify/GenerateInstructAnswerVO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.model.dify;
 
+import cn.cslg.pas.domain.dify.ImplementationMessage;
 import lombok.Data;
 
 import java.util.List;
@@ -11,7 +12,7 @@ public class GenerateInstructAnswerVO {
     private ClaimExplainVO claimExplainVO;
     private String title;
     private String technical;
-    private List<String> implementations;
+    private List<ImplementationMessage> implementations;
     private List<String> answers;
     private List<String> claimList;
 }

+ 1 - 0
src/main/java/cn/cslg/pas/domain/dify/GetInstructAnswerDTO.java

@@ -13,4 +13,5 @@ public class GetInstructAnswerDTO {
     private String effects;
     private String mainClaim;
     private String filePath;
+    private Integer userId;
 }

+ 10 - 0
src/main/java/cn/cslg/pas/domain/dify/ImplementationMessage.java

@@ -0,0 +1,10 @@
+package cn.cslg.pas.domain.dify;
+
+import lombok.Data;
+
+@Data
+public class ImplementationMessage {
+    private String claimStr;
+    private String explain;
+    private String effect;
+}

+ 33 - 26
src/main/java/cn/cslg/pas/service/dify/GenerateInstructionService.java

@@ -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);