package space.anyi.BI.util; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import space.anyi.BI.entity.ResponseResult; import space.anyi.BI.entity.xinghuo.HttpRequestData; import space.anyi.BI.entity.xinghuo.HttpRequestMessage; import space.anyi.BI.entity.xinghuo.HttpResponseData; import space.anyi.BI.exception.SystemException; import java.util.ArrayList; import java.util.List; /** * @ProjectName: serve * @FileName: AiUtil * @Author: 杨逸 * @Data:2024/12/4 15:55 * @Description: */ public class AiUtil { private static final String url = "https://spark-api-open.xf-yun.com/v1/chat/completions"; public static ObjectMapper objectMapper = new ObjectMapper(); /** * 调用星火AI接口 * @param requestData * @return {@code HttpResponseData } * @description: * @author: 杨逸 * @data:2024/12/04 20:50:06 * @since 1.0.0 */ public static HttpResponseData doChat(HttpRequestData requestData){ String json = null; try { json = objectMapper.writeValueAsString(requestData); } catch (JsonProcessingException e) { e.printStackTrace(); } HttpResponse httpResponse = HttpUtil.createPost(url) .header("Content-Type", "application/json") .header("Authorization", "Bearer ZtPoELVmjZgFSWQPGQfR:BBhQpywhuazFXpURYVnM") //.header("Authorization", "Bearer JXbEljkrEiJWpKlpBudO:gSIilowunJWNMOIQhwVo") .body(json) .execute(); String body = httpResponse.body(); int index = body.indexOf('0'); HttpResponseData httpResponseData = null; if (index == 8){ //调用成功 try { httpResponseData = objectMapper.readValue(body, HttpResponseData.class); } catch (JsonProcessingException e) { e.printStackTrace(); } }else{ System.err.println(body); throw new SystemException(ResponseResult.AppHttpCodeEnum.SYSTEM_ERROR); } return httpResponseData; } /** * 创建一个简单的请求体 * @param message * @return {@code HttpRequestData } * @description: * @author: 杨逸 * @data:2024/12/04 20:54:46 * @since 1.0.0 */ public static HttpRequestData createDefaultRequestData(String message){ HttpRequestData httpRequestData = new HttpRequestData(); List messages = new ArrayList<>(); messages.add(HttpRequestMessage.getPromptMessage()); messages.add(new HttpRequestMessage(HttpRequestMessage.USER_ROLE, message)); httpRequestData.setMessages(messages); return httpRequestData; } }