|
@@ -5,9 +5,11 @@ import cn.cslg.pas.common.model.dify.ChatMessageDTO;
|
|
import cn.cslg.pas.common.model.dify.DifyChatMessageDTO;
|
|
import cn.cslg.pas.common.model.dify.DifyChatMessageDTO;
|
|
import cn.cslg.pas.common.model.dify.DifyHistoryMessageDTO;
|
|
import cn.cslg.pas.common.model.dify.DifyHistoryMessageDTO;
|
|
|
|
|
|
|
|
+import cn.cslg.pas.common.model.dify.confessionSession.AddConfessionSessionDTO;
|
|
import cn.cslg.pas.common.model.dify.confessionSession.UpdateConfessionSessionDTO;
|
|
import cn.cslg.pas.common.model.dify.confessionSession.UpdateConfessionSessionDTO;
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
import cn.cslg.pas.common.utils.DataUtils;
|
|
import cn.cslg.pas.common.utils.DataUtils;
|
|
|
|
+import cn.cslg.pas.common.utils.DateUtils;
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
import cn.cslg.pas.domain.business.TechnicalCase;
|
|
import cn.cslg.pas.domain.business.TechnicalCase;
|
|
import cn.cslg.pas.domain.dify.ConfessionSession;
|
|
import cn.cslg.pas.domain.dify.ConfessionSession;
|
|
@@ -17,6 +19,7 @@ import cn.cslg.pas.service.dify.ConfessionSessionService;
|
|
import cn.cslg.pas.service.dify.DifySessionService;
|
|
import cn.cslg.pas.service.dify.DifySessionService;
|
|
import cn.cslg.pas.service.report.AssoProjectConfessionService;
|
|
import cn.cslg.pas.service.report.AssoProjectConfessionService;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
@@ -35,10 +38,7 @@ import reactor.core.publisher.Flux;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
|
|
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
@@ -58,6 +58,8 @@ public class DifyService {
|
|
private String url;
|
|
private String url;
|
|
@Value("${FileDownloadUrl}")
|
|
@Value("${FileDownloadUrl}")
|
|
private String fileDownloadUrl;
|
|
private String fileDownloadUrl;
|
|
|
|
+ @Value("${DIFY.cliamKey}")
|
|
|
|
+ private String cliamKey;
|
|
private final DifySessionService difySessionService;
|
|
private final DifySessionService difySessionService;
|
|
private final TechnicalCaseService technicalCaseService;
|
|
private final TechnicalCaseService technicalCaseService;
|
|
private final AssoProjectConfessionService assoProjectConfessionService;
|
|
private final AssoProjectConfessionService assoProjectConfessionService;
|
|
@@ -136,7 +138,7 @@ public class DifyService {
|
|
inventionPoint = this.getInventPoint(projectId);
|
|
inventionPoint = this.getInventPoint(projectId);
|
|
} else if (confessionSessionId != null) {
|
|
} else if (confessionSessionId != null) {
|
|
ConfessionSession confessionSession = confessionSessionService.getById(confessionSessionId);
|
|
ConfessionSession confessionSession = confessionSessionService.getById(confessionSessionId);
|
|
- fileContent = fileDownloadUrl +confessionSession.getGuid();
|
|
|
|
|
|
+ fileContent = fileDownloadUrl + confessionSession.getGuid();
|
|
inventionPoint = confessionSession.getInventionPoint();
|
|
inventionPoint = confessionSession.getInventionPoint();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -268,14 +270,13 @@ public class DifyService {
|
|
String conversationId = chatMessageDTO.getConversationId();
|
|
String conversationId = chatMessageDTO.getConversationId();
|
|
DifyChatMessageDTO difyChatMessageDTO = new DifyChatMessageDTO();
|
|
DifyChatMessageDTO difyChatMessageDTO = new DifyChatMessageDTO();
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
- String fileContent="";
|
|
|
|
- if(confessionSessionId!=null){
|
|
|
|
- ConfessionSession confessionSession=confessionSessionService.getById(confessionSessionId);
|
|
|
|
- fileContent=fileDownloadUrl+confessionSession.getGuid();
|
|
|
|
- }
|
|
|
|
- else if(projectId!=null) {
|
|
|
|
- fileContent = this.getConfression(projectId);
|
|
|
|
- }
|
|
|
|
|
|
+ String fileContent = "";
|
|
|
|
+ if (confessionSessionId != null) {
|
|
|
|
+ ConfessionSession confessionSession = confessionSessionService.getById(confessionSessionId);
|
|
|
|
+ fileContent = fileDownloadUrl + confessionSession.getGuid();
|
|
|
|
+ } else if (projectId != null) {
|
|
|
|
+ fileContent = this.getConfression(projectId);
|
|
|
|
+ }
|
|
map.put("file_path", fileContent);
|
|
map.put("file_path", fileContent);
|
|
difyChatMessageDTO.setInputs(map);
|
|
difyChatMessageDTO.setInputs(map);
|
|
difyChatMessageDTO.setConversationId(conversationId);
|
|
difyChatMessageDTO.setConversationId(conversationId);
|
|
@@ -310,8 +311,53 @@ public class DifyService {
|
|
}
|
|
}
|
|
map1.put("conversation_id", conversationId);
|
|
map1.put("conversation_id", conversationId);
|
|
|
|
|
|
- map1.put("projectId",projectId);
|
|
|
|
- map1.put("confessionSessionId",confessionSessionId);
|
|
|
|
|
|
+ map1.put("projectId", projectId);
|
|
|
|
+ map1.put("confessionSessionId", confessionSessionId);
|
|
return map1;
|
|
return map1;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public Map<String, Object> generateClaimExplain(String claim) throws Exception {
|
|
|
|
+ Map<String, Object> reMap = new HashMap<>();
|
|
|
|
+ DifyChatMessageDTO difyChatMessageDTO = new DifyChatMessageDTO();
|
|
|
|
+ String userId = "1";
|
|
|
|
+// String userId = loginUtils.getId().toString();
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.put("claim", claim);
|
|
|
|
+ difyChatMessageDTO.setInputs(map);
|
|
|
|
+ difyChatMessageDTO.setResponseMode("blocking");
|
|
|
|
+ difyChatMessageDTO.setUser(userId);
|
|
|
|
+
|
|
|
|
+ String param = new Gson().toJson(difyChatMessageDTO);
|
|
|
|
+ RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
|
+ OkHttpClient okHttpClient = new OkHttpClient.Builder()
|
|
|
|
+ .connectTimeout(6000, TimeUnit.SECONDS)
|
|
|
|
+ .writeTimeout(6000, TimeUnit.SECONDS)
|
|
|
|
+ .readTimeout(6000, TimeUnit.SECONDS)
|
|
|
|
+ .build();
|
|
|
|
+ Request request = new Request.Builder()
|
|
|
|
+ .url(url + "workflows/run")
|
|
|
|
+ .post(requestBody)
|
|
|
|
+ .addHeader("Authorization", "Bearer " + cliamKey)
|
|
|
|
+ .build();
|
|
|
|
+ String res = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
|
+ String dataStr = jsonObject.get("data").toString();
|
|
|
|
+ JSONObject dataObject=JSONObject.parseObject(dataStr);
|
|
|
|
+ String outPuts = dataObject.get("outputs").toString();
|
|
|
|
+ JSONObject jsonObject1 = JSONObject.parseObject(outPuts);
|
|
|
|
+ String rets = jsonObject1.get("json").toString();
|
|
|
|
+ Map<String, Object> addMap = new HashMap<>();
|
|
|
|
+ addMap.put("query", claim);
|
|
|
|
+ addMap.put("answer", rets);
|
|
|
|
+ String addStr = JSONObject.toJSONString(addMap);
|
|
|
|
+ AddConfessionSessionDTO addConfessionSessionDTO = new AddConfessionSessionDTO();
|
|
|
|
+ addConfessionSessionDTO.setConversationId(jsonObject.get("workflow_run_id").toString());
|
|
|
|
+ addConfessionSessionDTO.setContent(addStr);
|
|
|
|
+ String name = DateUtils.dateTimeToStr(new Date());
|
|
|
|
+ name=name+"-权利要求解释及有益效果";
|
|
|
|
+ addConfessionSessionDTO.setConversationName(name);
|
|
|
|
+ confessionSessionService.addSession(addConfessionSessionDTO);
|
|
|
|
+ System.out.println(res);
|
|
|
|
+ return reMap;
|
|
|
|
+ }
|
|
}
|
|
}
|