|
|
@@ -1,6 +1,7 @@
|
|
|
package cn.cslg.pas.service.common;
|
|
|
|
|
|
|
|
|
+import cn.cslg.pas.common.model.cronModel.SystemFile;
|
|
|
import cn.cslg.pas.common.model.dify.*;
|
|
|
|
|
|
import cn.cslg.pas.common.model.dify.GenerateClaimDTO;
|
|
|
@@ -137,14 +138,14 @@ public class DifyService {
|
|
|
.writeTimeout(600, TimeUnit.SECONDS)
|
|
|
.readTimeout(600, TimeUnit.SECONDS)
|
|
|
.build();
|
|
|
- Integer type =difyChatMessageDTO.getType();
|
|
|
+ Integer type = difyChatMessageDTO.getType();
|
|
|
String path = "messages?conversation_id=" + difyChatMessageDTO.getConversationId() + "&user=" + difyChatMessageDTO.getUser() + "&limit=" + difyChatMessageDTO.getLimit();
|
|
|
if (difyChatMessageDTO.getFirstId() != null) {
|
|
|
path += "&first_id=" + difyChatMessageDTO.getFirstId();
|
|
|
}
|
|
|
- String key =apiKey;
|
|
|
- if(type!=null&&type.equals(4)){
|
|
|
- key=discoveryResultKey;
|
|
|
+ String key = apiKey;
|
|
|
+ if (type != null && type.equals(4)) {
|
|
|
+ key = discoveryResultKey;
|
|
|
}
|
|
|
Request request = new Request.Builder()
|
|
|
.url(url + path)
|
|
|
@@ -196,7 +197,7 @@ public class DifyService {
|
|
|
|
|
|
String param = new Gson().toJson(difyChatMessageDTO);
|
|
|
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- Request request = this.getChatMessageRequest(requestBody,apiKey);
|
|
|
+ Request request = this.getChatMessageRequest(requestBody, apiKey);
|
|
|
return Flux.create(emitter -> {
|
|
|
client.newCall(request).enqueue(new Callback() {
|
|
|
@Override
|
|
|
@@ -275,7 +276,7 @@ public class DifyService {
|
|
|
return url;
|
|
|
}
|
|
|
|
|
|
- public Request getChatMessageRequest(RequestBody requestBody,String key) {
|
|
|
+ public Request getChatMessageRequest(RequestBody requestBody, String key) {
|
|
|
Request request = new Request.Builder()
|
|
|
.url(url + "chat-messages")
|
|
|
.addHeader("Authorization", "Bearer " + key).addHeader(HttpHeaders.CONTENT_TYPE, "application/json")
|
|
|
@@ -284,7 +285,7 @@ public class DifyService {
|
|
|
return request;
|
|
|
}
|
|
|
|
|
|
- public JSONObject stopMessage(String taskId,Integer type) throws IOException {
|
|
|
+ public JSONObject stopMessage(String taskId, Integer type) throws IOException {
|
|
|
OkHttpClient client = new OkHttpClient.Builder()
|
|
|
.connectTimeout(60, TimeUnit.SECONDS)
|
|
|
.writeTimeout(60, TimeUnit.SECONDS)
|
|
|
@@ -294,9 +295,9 @@ public class DifyService {
|
|
|
difyChatMessageDTO.setUser("1");
|
|
|
String param = new Gson().toJson(difyChatMessageDTO);
|
|
|
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- String key =apiKey;
|
|
|
- if(type!=null&&type.equals(4)){
|
|
|
- key=discoveryResultKey;
|
|
|
+ String key = apiKey;
|
|
|
+ if (type != null && type.equals(4)) {
|
|
|
+ key = discoveryResultKey;
|
|
|
}
|
|
|
Request request = new Request.Builder()
|
|
|
.url(url + "chat-messages/" + taskId + "/stop")
|
|
|
@@ -340,7 +341,7 @@ public class DifyService {
|
|
|
.build();
|
|
|
String param = new Gson().toJson(difyChatMessageDTO);
|
|
|
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- Request request = this.getChatMessageRequest(requestBody,apiKey);
|
|
|
+ Request request = this.getChatMessageRequest(requestBody, apiKey);
|
|
|
String res = Objects.requireNonNull(client.newCall(request).execute().body()).string();
|
|
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
String inventionPoint = jsonObject.get("answer").toString();
|
|
|
@@ -806,6 +807,7 @@ public class DifyService {
|
|
|
String userId = loginUtils.getId().toString();
|
|
|
String query = chatMessageDTO.getQuery();
|
|
|
Integer type = chatMessageDTO.getType();
|
|
|
+ List<String> fileGuids = chatMessageDTO.getFileGuids();
|
|
|
if (type == null || query == null || query.trim().equals("")) {
|
|
|
throw new XiaoShiException(ExceptionEnum.BUSINESS_CHECK, "请按要求输入参数");
|
|
|
}
|
|
|
@@ -815,7 +817,7 @@ public class DifyService {
|
|
|
|
|
|
|
|
|
String temConversationId = conversationId;
|
|
|
- String temConversationId3=conversationId;
|
|
|
+ String temConversationId3 = conversationId;
|
|
|
OkHttpClient client = new OkHttpClient.Builder()
|
|
|
.connectTimeout(600, TimeUnit.SECONDS)
|
|
|
.writeTimeout(600, TimeUnit.SECONDS)
|
|
|
@@ -828,15 +830,19 @@ public class DifyService {
|
|
|
|
|
|
ConfessionSession confessionSession = confessionSessionService.getById(confessionSessionId);
|
|
|
|
|
|
- List<String> guids = assoConfessionSessionFileService.getFileGuid(confessionSessionId, 0);
|
|
|
- if (guids == null || guids.size() == 0) {
|
|
|
- throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "数据错误,未检测到交底书");
|
|
|
- }
|
|
|
- fileContent = fileDownloadUrl + guids.get(0);
|
|
|
- map.put("file_path", fileContent);
|
|
|
+ List<String> guids = assoConfessionSessionFileService.getFileGuid(confessionSessionId, 0);
|
|
|
+ if (guids == null || guids.size() == 0) {
|
|
|
+ throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "数据错误,未检测到交底书");
|
|
|
+ }
|
|
|
+ fileContent = fileDownloadUrl + guids.get(0);
|
|
|
+ map.put("file_path", fileContent);
|
|
|
|
|
|
map.put("data_Result", confessionSession.getResultContent());
|
|
|
map.put("ask_type", type.toString());
|
|
|
+ if (fileGuids != null && fileGuids.size() > 0) {
|
|
|
+ String pictureJson = this.getDiscoveryResultDialoguePicture(fileGuids);
|
|
|
+ map.put("pictures", pictureJson);
|
|
|
+ }
|
|
|
difyChatMessageDTO.setInputs(map);
|
|
|
difyChatMessageDTO.setConversationId(conversationId);
|
|
|
difyChatMessageDTO.setResponseMode("streaming");
|
|
|
@@ -846,7 +852,7 @@ public class DifyService {
|
|
|
|
|
|
String param = new Gson().toJson(difyChatMessageDTO);
|
|
|
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- Request request = this.getChatMessageRequest(requestBody,discoveryResultKey);
|
|
|
+ Request request = this.getChatMessageRequest(requestBody, discoveryResultKey);
|
|
|
|
|
|
return Flux.create(emitter -> {
|
|
|
client.newCall(request).enqueue(new Callback() {
|
|
|
@@ -900,10 +906,31 @@ public class DifyService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public Request getGeneratePatentResultResultRequest(Integer confessionSessionId,DifyChatMessageDTO difyChatMessageDTO,String aiKey){
|
|
|
+ public Request getGeneratePatentResultResultRequest(Integer confessionSessionId, DifyChatMessageDTO difyChatMessageDTO, String aiKey) {
|
|
|
String param = new Gson().toJson(difyChatMessageDTO);
|
|
|
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- Request request = this.getChatMessageRequest(requestBody,aiKey);
|
|
|
+ Request request = this.getChatMessageRequest(requestBody, aiKey);
|
|
|
return request;
|
|
|
}
|
|
|
+
|
|
|
+ public String getDiscoveryResultDialoguePicture(List<String> fileGuids) {
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ if (fileGuids != null && fileGuids.size() > 0) {
|
|
|
+ systemFiles = fileManagerService.getSystemFileByGuids(fileGuids);
|
|
|
+ if (systemFiles != null) {
|
|
|
+ systemFiles.forEach(item -> {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("path", fileDownloadUrl + item.getGuid());
|
|
|
+ map.put("guid", item.getGuid());
|
|
|
+ map.put("name", item.getOriginalName());
|
|
|
+ map.put("desc", "");
|
|
|
+ list.add(map);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String re = JSON.toJSONString(list);
|
|
|
+ return re;
|
|
|
+ }
|
|
|
}
|