AiUtil.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package space.anyi.BI.util;
  2. import cn.hutool.http.HttpResponse;
  3. import cn.hutool.http.HttpUtil;
  4. import com.fasterxml.jackson.core.JsonProcessingException;
  5. import com.fasterxml.jackson.databind.ObjectMapper;
  6. import space.anyi.BI.entity.ResponseResult;
  7. import space.anyi.BI.entity.xinghuo.HttpRequestData;
  8. import space.anyi.BI.entity.xinghuo.HttpRequestMessage;
  9. import space.anyi.BI.entity.xinghuo.HttpResponseData;
  10. import space.anyi.BI.exception.SystemException;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. /**
  14. * @ProjectName: serve
  15. * @FileName: AiUtil
  16. * @Author: 杨逸
  17. * @Data:2024/12/4 15:55
  18. * @Description:
  19. */
  20. public class AiUtil {
  21. private static final String url = "https://spark-api-open.xf-yun.com/v1/chat/completions";
  22. public static ObjectMapper objectMapper = new ObjectMapper();
  23. /**
  24. * 调用星火AI接口
  25. * @param requestData
  26. * @return {@code HttpResponseData }
  27. * @description:
  28. * @author: 杨逸
  29. * @data:2024/12/04 20:50:06
  30. * @since 1.0.0
  31. */
  32. public static HttpResponseData doChat(HttpRequestData requestData){
  33. String json = null;
  34. try {
  35. json = objectMapper.writeValueAsString(requestData);
  36. } catch (JsonProcessingException e) {
  37. e.printStackTrace();
  38. }
  39. HttpResponse httpResponse = HttpUtil.createPost(url)
  40. .header("Content-Type", "application/json")
  41. .header("Authorization", "Bearer ZtPoELVmjZgFSWQPGQfR:BBhQpywhuazFXpURYVnM")
  42. //.header("Authorization", "Bearer JXbEljkrEiJWpKlpBudO:gSIilowunJWNMOIQhwVo")
  43. .body(json)
  44. .execute();
  45. String body = httpResponse.body();
  46. int index = body.indexOf('0');
  47. HttpResponseData httpResponseData = null;
  48. if (index == 8){
  49. //调用成功
  50. try {
  51. httpResponseData = objectMapper.readValue(body, HttpResponseData.class);
  52. } catch (JsonProcessingException e) {
  53. e.printStackTrace();
  54. }
  55. }else{
  56. System.err.println(body);
  57. throw new SystemException(ResponseResult.AppHttpCodeEnum.SYSTEM_ERROR);
  58. }
  59. return httpResponseData;
  60. }
  61. /**
  62. * 创建一个简单的请求体
  63. * @param message
  64. * @return {@code HttpRequestData }
  65. * @description:
  66. * @author: 杨逸
  67. * @data:2024/12/04 20:54:46
  68. * @since 1.0.0
  69. */
  70. public static HttpRequestData createDefaultRequestData(String message){
  71. HttpRequestData httpRequestData = new HttpRequestData();
  72. List<HttpRequestMessage> messages = new ArrayList<>();
  73. messages.add(HttpRequestMessage.getPromptMessage());
  74. messages.add(new HttpRequestMessage(HttpRequestMessage.USER_ROLE, message));
  75. httpRequestData.setMessages(messages);
  76. return httpRequestData;
  77. }
  78. }