From f93430b673b6fb40e321f6ba9eb8f0ec048be64d Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Thu, 15 May 2025 08:49:14 +0800 Subject: [PATCH] 'commit' --- .../Util/Liblib/LiblibTextToImage.java | 80 ++++++++++++++++++- .../target/classes/application_dev.yaml | 5 ++ .../target/classes/application_pro.yaml | 7 +- 3 files changed, 89 insertions(+), 3 deletions(-) diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/LiblibTextToImage.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/LiblibTextToImage.java index f50eb6be..ded10df2 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/LiblibTextToImage.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/LiblibTextToImage.java @@ -30,6 +30,7 @@ public class LiblibTextToImage { private static final String TEXT_TO_IMG_URL = API_BASE_URL + "/api/generate/webui/text2img"; private static final String QUERY_PROGRESS_URL = API_BASE_URL + "/api/generate/progress/"; private static final String QUERY_RESULT_URL = API_BASE_URL + "/api/generate/result/"; + private static final String QUERY_STATUS_URL = API_BASE_URL + "/api/generate/webui/status"; private static final int MAX_RETRIES = 30; // 最大重试次数 private static final int RETRY_INTERVAL = 3000; // 重试间隔(毫秒) @@ -254,11 +255,23 @@ public class LiblibTextToImage { // 创建OkHttpClient OkHttpClient client = createHttpClient(); + // 获取API路径 + String uri = "/api/generate/result/" + generateUuid; + + // 生成签名信息 + SignUtil.SignatureInfo signInfo = SignUtil.makeSign(uri, secretKey); + + // 构建带签名的URL + HttpUrl.Builder urlBuilder = HttpUrl.parse(QUERY_RESULT_URL + generateUuid).newBuilder() + .addQueryParameter("AccessKey", accessKey) + .addQueryParameter("Signature", signInfo.getSignature()) + .addQueryParameter("Timestamp", String.valueOf(signInfo.getTimestamp())) + .addQueryParameter("SignatureNonce", signInfo.getSignatureNonce()); + // 创建请求 Request request = new Request.Builder() - .url(QUERY_RESULT_URL + generateUuid) + .url(urlBuilder.build()) .method("GET", null) - .addHeader("Authorization", "Bearer " + apiKey) .build(); // 执行请求 @@ -285,6 +298,69 @@ public class LiblibTextToImage { return responseJson.getJSONObject("data"); } + /** + * 查询生图状态和结果 + * @param generateUuid 生成任务UUID + * @return 任务状态和结果信息 + * @throws IOException 异常信息 + */ + public static JSONObject queryGenerateStatus(String generateUuid) throws IOException { + // 创建OkHttpClient + OkHttpClient client = createHttpClient(); + + // 构建请求体 + JSONObject requestBody = new JSONObject(); + requestBody.put("generateUuid", generateUuid); + + // 获取API路径 + String uri = "/api/generate/webui/status"; + + // 生成签名信息 + SignUtil.SignatureInfo signInfo = SignUtil.makeSign(uri, secretKey); + + // 构建带签名的URL + HttpUrl.Builder urlBuilder = HttpUrl.parse(QUERY_STATUS_URL).newBuilder() + .addQueryParameter("AccessKey", accessKey) + .addQueryParameter("Signature", signInfo.getSignature()) + .addQueryParameter("Timestamp", String.valueOf(signInfo.getTimestamp())) + .addQueryParameter("SignatureNonce", signInfo.getSignatureNonce()); + + // 创建请求 + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, requestBody.toJSONString()); + Request request = new Request.Builder() + .url(urlBuilder.build()) + .method("POST", body) + .addHeader("Content-Type", "application/json") + .build(); + + // 执行请求 + log.info("查询生图状态: {}", requestBody.toJSONString()); + Response response = client.newCall(request).execute(); + + // 处理响应 + if (!response.isSuccessful()) { + String errorMsg = "查询生图状态失败,状态码: " + response.code(); + log.error(errorMsg); + throw new IOException(errorMsg); + } + + // 解析响应 + String responseBody = response.body().string(); + log.info("查询生图状态响应: {}", responseBody); + + JSONObject responseJson = JSON.parseObject(responseBody); + int code = responseJson.getIntValue("code"); + + if (code != 0) { + String errorMsg = "查询生图状态失败,错误码: " + code + ", 错误信息: " + responseJson.getString("msg"); + log.error(errorMsg); + throw new IOException(errorMsg); + } + + return responseJson.getJSONObject("data"); + } + /** * 下载生成的图片 * @param imageUrl 图片URL diff --git a/dsAiSupport/target/classes/application_dev.yaml b/dsAiSupport/target/classes/application_dev.yaml index 139241e7..e9b9b1d7 100644 --- a/dsAiSupport/target/classes/application_dev.yaml +++ b/dsAiSupport/target/classes/application_dev.yaml @@ -81,3 +81,8 @@ AIPPT: # 阿里云API KEY aliyun: API_KEY: sk-01d13a39e09844038322108ecdbd1bbc + +# LIBLIB +LIBLIB: + accessKey: sOCtVLVTNOZkRMajlhzCmg + secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9 diff --git a/dsAiSupport/target/classes/application_pro.yaml b/dsAiSupport/target/classes/application_pro.yaml index feb800d7..dab51c02 100644 --- a/dsAiSupport/target/classes/application_pro.yaml +++ b/dsAiSupport/target/classes/application_pro.yaml @@ -80,4 +80,9 @@ AIPPT: # 阿里云API KEY aliyun: - API_KEY: sk-01d13a39e09844038322108ecdbd1bbc \ No newline at end of file + API_KEY: sk-01d13a39e09844038322108ecdbd1bbc + +# LIBLIB +LIBLIB: + accessKey: sOCtVLVTNOZkRMajlhzCmg + secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9 \ No newline at end of file