DifyService.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.cslg.ppa.service.commom;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.cslg.ppa.common.utils.DataUtils;
  4. import com.cslg.ppa.dto.OAMessageDTO;
  5. import com.google.gson.Gson;
  6. import lombok.RequiredArgsConstructor;
  7. import lombok.extern.slf4j.Slf4j;
  8. import okhttp3.*;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.stereotype.Service;
  11. import java.util.HashMap;
  12. import java.util.Map;
  13. import java.util.Objects;
  14. import java.util.concurrent.TimeUnit;
  15. @RequiredArgsConstructor
  16. @Slf4j
  17. @Service
  18. public class DifyService {
  19. @Value("${DIFY.url}")
  20. private String url;
  21. @Value("${DIFY.getAbstractKey}")
  22. private String getAbstractKey;
  23. @Value("${DIFY.getPctAbstractKey}")
  24. private String getPctAbstractKey;
  25. public String getCondensedAbstract(String text) throws Exception {
  26. Map<String, Object> map = new HashMap<>();
  27. map.put("content", text);
  28. OAMessageDTO oaMessageDTO = new OAMessageDTO();
  29. oaMessageDTO.setInputs(map);
  30. oaMessageDTO.setResponseMode("blocking");
  31. oaMessageDTO.setUser("1");
  32. String param = new Gson().toJson(oaMessageDTO);
  33. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  34. OkHttpClient client = new OkHttpClient.Builder()
  35. .connectTimeout(600, TimeUnit.SECONDS)
  36. .writeTimeout(600, TimeUnit.SECONDS)
  37. .readTimeout(600, TimeUnit.SECONDS)
  38. .build();
  39. Request request = new Request.Builder()
  40. .url(url + "workflows/run")
  41. .addHeader("Authorization", "Bearer " + getAbstractKey)
  42. .post(requestBody)
  43. .build();
  44. String res = Objects.requireNonNull(client.newCall(request).execute().body()).string();
  45. JSONObject jsonObject = JSONObject.parseObject(res);
  46. String dataStr = jsonObject.get("data").toString();
  47. JSONObject dataObject = JSONObject.parseObject(dataStr);
  48. String outPuts = dataObject.get("outputs").toString();
  49. JSONObject jsonObject1 = JSONObject.parseObject(outPuts);
  50. String content = jsonObject1.get("text").toString();
  51. return DataUtils.unicodeDecode(content);
  52. }
  53. public String getPctCondensedAbstract(String text) throws Exception {
  54. Map<String, Object> map = new HashMap<>();
  55. map.put("content", text);
  56. OAMessageDTO oaMessageDTO = new OAMessageDTO();
  57. oaMessageDTO.setInputs(map);
  58. oaMessageDTO.setResponseMode("blocking");
  59. oaMessageDTO.setUser("1");
  60. String param = new Gson().toJson(oaMessageDTO);
  61. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  62. OkHttpClient client = new OkHttpClient.Builder()
  63. .connectTimeout(600, TimeUnit.SECONDS)
  64. .writeTimeout(600, TimeUnit.SECONDS)
  65. .readTimeout(600, TimeUnit.SECONDS)
  66. .build();
  67. Request request = new Request.Builder()
  68. .url(url + "workflows/run")
  69. .addHeader("Authorization", "Bearer " + getPctAbstractKey)
  70. .post(requestBody)
  71. .build();
  72. String res = Objects.requireNonNull(client.newCall(request).execute().body()).string();
  73. JSONObject jsonObject = JSONObject.parseObject(res);
  74. String dataStr = jsonObject.get("data").toString();
  75. JSONObject dataObject = JSONObject.parseObject(dataStr);
  76. String outPuts = dataObject.get("outputs").toString();
  77. JSONObject jsonObject1 = JSONObject.parseObject(outPuts);
  78. String content = jsonObject1.get("text").toString();
  79. return DataUtils.unicodeDecode(content);
  80. }
  81. }