From 551c0db75da529b3390c8203201215b8b63aff54 Mon Sep 17 00:00:00 2001
From: HuangHai <10402852@qq.com>
Date: Sun, 18 May 2025 10:10:57 +0800
Subject: [PATCH] 'commit'
---
dsAiSupport/pom.xml | 6 -
.../Util/DouBao/CVGetResultDemo.java | 30 ----
.../Util/DouBao/CVSubmitTaskDemo.java | 35 ----
.../dsideal/aiSupport/Util/HttpClient.java | 69 --------
.../HuoShanFangZhou/Kit/HuoShanCommon.java | 10 ++
.../Util/HuoShanFangZhou/Txt2Img.java | 162 ++++++++++++++++++
.../target/classes/application_pro.yaml | 34 +---
7 files changed, 173 insertions(+), 173 deletions(-)
delete mode 100644 dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java
delete mode 100644 dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java
create mode 100644 dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Kit/HuoShanCommon.java
create mode 100644 dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Txt2Img.java
diff --git a/dsAiSupport/pom.xml b/dsAiSupport/pom.xml
index 9d5de3c0..61e9a91a 100644
--- a/dsAiSupport/pom.xml
+++ b/dsAiSupport/pom.xml
@@ -53,12 +53,6 @@
commons-io
2.15.0
-
-
- com.volcengine
- volc-sdk-java
- 1.0.221
-
com.alibaba
diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java
deleted file mode 100644
index 9ea22794..00000000
--- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.dsideal.aiSupport.Util.DouBao;
-
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.volcengine.service.visual.IVisualService;
-import com.volcengine.service.visual.impl.VisualServiceImpl;
-
-public class CVGetResultDemo {
-
- public static void main(String[] args) {
- IVisualService visualService = VisualServiceImpl.getInstance();
- // call below method if you dont set ak and sk in ~/.vcloud/config
- visualService.setAccessKey("your ak");
- visualService.setSecretKey("your sk");
-
- JSONObject req=new JSONObject();
- //请求Body(查看接口文档请求参数-请求示例,将请求参数内容复制到此)
- req.put("req_key","");
- req.put("","");
-
- try {
- Object response = visualService.cvGetResult(req);
- System.out.println(JSON.toJSONString(response));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
\ No newline at end of file
diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java
deleted file mode 100644
index 5b34343b..00000000
--- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.dsideal.aiSupport.Util.DouBao;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.dsideal.aiSupport.AiSupportApplication;
-import com.volcengine.service.visual.IVisualService;
-import com.volcengine.service.visual.impl.VisualServiceImpl;
-
-public class CVSubmitTaskDemo {
-
- public static void main(String[] args) {
- IVisualService visualService = VisualServiceImpl.getInstance();
- String ak = AiSupportApplication.PropKit.get("HuoShan.accessKey");
- String sk = AiSupportApplication.PropKit.get("HuoShan.secretKey");
- visualService.setAccessKey(ak);
- visualService.setSecretKey(sk);
-
- JSONObject req = new JSONObject();
- req.put("req_key", "high_aes_general_v20_L");
- req.put("prompt", "千军万马");
- req.put("model_version", "general_v2.0_L");
- req.put("seed", -1);
- req.put("scale", 3.5);
- req.put("ddim_steps", 16);
- req.put("width", 512);
- req.put("height", 512);
- req.put("use_sr", true);
- try {
- Object response = visualService.cvSubmitTask(req);
- System.out.println(JSON.toJSONString(response));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
\ No newline at end of file
diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HttpClient.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HttpClient.java
index 1540e268..6bbec5ce 100644
--- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HttpClient.java
+++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HttpClient.java
@@ -3,7 +3,6 @@ package com.dsideal.aiSupport.Util;
import com.dsideal.aiSupport.Config.GatewayConfig;
import okhttp3.*;
-import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -45,38 +44,6 @@ public class HttpClient {
}
}
- /**
- * 发送POST请求(JSON格式)
- *
- * @param url 请求URL
- * @param jsonBody JSON请求体
- * @param headers 请求头
- * @return 响应字符串
- */
- public static String postJson(String url, String jsonBody, Map headers) {
- MediaType JSON = MediaType.parse("application/json; charset=utf-8");
- RequestBody body = RequestBody.create(jsonBody, JSON);
-
- Request.Builder builder = new Request.Builder()
- .url(url)
- .post(body);
-
- // 添加请求头
- if (headers != null) {
- headers.forEach(builder::addHeader);
- }
-
- try (Response response = OK_HTTP_CLIENT.newCall(builder.build()).execute()) {
- if (!response.isSuccessful()) {
- throw new IOException("请求失败: " + response);
- }
- ResponseBody responseBody = response.body();
- return responseBody != null ? responseBody.string() : null;
- } catch (IOException e) {
- throw new RuntimeException("POST请求异常: " + url, e);
- }
- }
-
/**
* 发送POST请求(表单格式)
*
@@ -113,42 +80,6 @@ public class HttpClient {
}
}
- /**
- * 发送POST请求(文件上传)
- *
- * @param url 请求URL
- * @param file 文件
- * @param fileName 文件名
- * @param headers 请求头
- * @return 响应字符串
- */
- public static String postFile(String url, File file, String fileName, Map headers) {
- RequestBody requestBody = new MultipartBody.Builder()
- .setType(MultipartBody.FORM)
- .addFormDataPart("file", fileName,
- RequestBody.create(file, MediaType.parse("application/octet-stream")))
- .build();
-
- Request.Builder builder = new Request.Builder()
- .url(url)
- .post(requestBody);
-
- // 添加请求头
- if (headers != null) {
- headers.forEach(builder::addHeader);
- }
-
- try (Response response = OK_HTTP_CLIENT.newCall(builder.build()).execute()) {
- if (!response.isSuccessful()) {
- throw new IOException("请求失败: " + response);
- }
- ResponseBody responseBody = response.body();
- return responseBody != null ? responseBody.string() : null;
- } catch (IOException e) {
- throw new RuntimeException("文件上传异常: " + url, e);
- }
- }
-
public static void main(String[] args) {
//正常在Controller中获取到此人员的jwt
// String jwtToken =JwtUtil.getPersonJwt(req);
diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Kit/HuoShanCommon.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Kit/HuoShanCommon.java
new file mode 100644
index 00000000..da793ade
--- /dev/null
+++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Kit/HuoShanCommon.java
@@ -0,0 +1,10 @@
+package com.dsideal.aiSupport.Util.HuoShanFangZhou.Kit;
+
+public class HuoShanCommon {
+ //火山方舟大模型
+ //https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D
+ // String apiKeyName = "api-key-20250418163654";
+
+ protected static String API_BASE_URL="https://ark.cn-beijing.volces.com";
+ protected static String ARK_API_KEY = "f6150e6c-422a-4265-8b63-4d941b271220";
+}
diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Txt2Img.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Txt2Img.java
new file mode 100644
index 00000000..7aeed2e1
--- /dev/null
+++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/HuoShanFangZhou/Txt2Img.java
@@ -0,0 +1,162 @@
+package com.dsideal.aiSupport.Util.HuoShanFangZhou;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.dsideal.aiSupport.Util.HuoShanFangZhou.Kit.HuoShanCommon;
+import okhttp3.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 火山方舟文生图API工具类
+ */
+public class Txt2Img extends HuoShanCommon {
+ // 日志
+ private static final Logger log = LoggerFactory.getLogger(Txt2Img.class);
+ // 文生图API路径
+ private static final String TXT_TO_IMG_PATH = "/api/v3/images/generations";
+ // 默认图片尺寸
+ private static final String DEFAULT_SIZE = "1024x1024";
+ // 默认引导系数
+ private static final double DEFAULT_GUIDANCE_SCALE = 7.0;
+ // 默认水印设置
+ private static final boolean DEFAULT_WATERMARK = true;
+ // 默认响应格式
+ private static final String DEFAULT_RESPONSE_FORMAT = "url";
+
+ /**
+ * 提交文生图任务
+ *
+ * @param model 模型名称
+ * @param prompt 提示词
+ * @return 生成的图片URL
+ * @throws IOException 异常信息
+ */
+ public static String generateImage(String model, String prompt) throws IOException {
+ return generateImage(model, prompt, DEFAULT_SIZE, -1, DEFAULT_GUIDANCE_SCALE, DEFAULT_WATERMARK);
+ }
+
+ /**
+ * 提交文生图任务(带参数)
+ *
+ * @param model 模型名称
+ * @param prompt 提示词
+ * @param size 图片尺寸,如"1024x1024"
+ * @param seed 随机种子,-1表示随机
+ * @param guidanceScale 引导系数
+ * @param watermark 是否添加水印
+ * @return 生成的图片URL
+ * @throws IOException 异常信息
+ */
+ public static String generateImage(String model, String prompt, String size, long seed,
+ double guidanceScale, boolean watermark) throws IOException {
+ // 创建OkHttpClient
+ OkHttpClient client = new OkHttpClient.Builder()
+ .connectTimeout(30, TimeUnit.SECONDS)
+ .readTimeout(60, TimeUnit.SECONDS)
+ .writeTimeout(60, TimeUnit.SECONDS)
+ .build();
+
+ // 构建请求体
+ JSONObject requestBody = new JSONObject();
+ requestBody.put("model", model);
+ requestBody.put("prompt", prompt);
+ requestBody.put("response_format", DEFAULT_RESPONSE_FORMAT);
+ requestBody.put("size", size);
+
+ // 如果种子不是-1,则添加种子参数
+ if (seed != -1) {
+ requestBody.put("seed", seed);
+ }
+
+ requestBody.put("guidance_scale", guidanceScale);
+ requestBody.put("watermark", watermark);
+
+ // 创建请求
+ MediaType mediaType = MediaType.parse("application/json");
+ RequestBody body = RequestBody.create(mediaType, requestBody.toJSONString());
+ Request request = new Request.Builder()
+ .url(API_BASE_URL + TXT_TO_IMG_PATH)
+ .method("POST", body)
+ .addHeader("Content-Type", "application/json")
+ .addHeader("Authorization", "Bearer " + ARK_API_KEY)
+ .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);
+
+ // 获取生成的图片URL
+ String imageUrl = responseJson.getJSONArray("data").getJSONObject(0).getString("url");
+ log.info("生成的图片URL: {}", imageUrl);
+
+ return imageUrl;
+ }
+
+ /**
+ * 批量生成图片
+ *
+ * @param model 模型名称
+ * @param prompt 提示词
+ * @param count 生成数量
+ * @return 生成的图片URL列表
+ * @throws IOException 异常信息
+ */
+ public static List generateImages(String model, String prompt, int count) throws IOException {
+ List imageUrls = new ArrayList<>();
+
+ for (int i = 0; i < count; i++) {
+ String imageUrl = generateImage(model, prompt);
+ imageUrls.add(imageUrl);
+ }
+
+ return imageUrls;
+ }
+
+ /**
+ * 使用示例
+ */
+ public static void main(String[] args) {
+ try {
+ // 模型名称
+ String model = "doubao-seedream-3-0-t2i-250415";
+ // 提示词
+ String prompt = "鱼眼镜头,一只猫咪的头部,画面呈现出猫咪的五官因为拍摄方式扭曲的效果。";
+ // 图片尺寸
+ String size = "1024x1024";
+ // 随机种子
+ long seed = 12;
+ // 引导系数
+ double guidanceScale = 2.5;
+ // 是否添加水印
+ boolean watermark = true;
+
+ // 生成图片
+ String imageUrl = generateImage(model, prompt, size, seed, guidanceScale, watermark);
+
+ // 输出生成的图片URL
+ log.info("生成的图片URL: {}", imageUrl);
+
+ } catch (Exception e) {
+ log.error("文生图任务执行失败", e);
+ }
+ }
+}
diff --git a/dsAiSupport/target/classes/application_pro.yaml b/dsAiSupport/target/classes/application_pro.yaml
index dab51c02..3efee478 100644
--- a/dsAiSupport/target/classes/application_pro.yaml
+++ b/dsAiSupport/target/classes/application_pro.yaml
@@ -53,36 +53,4 @@ excel:
# 导出excel 的模板配置路径
excelExportTemplatePathSuffix: /ExcelExportTemplate/
# 导入excel 的模板配置路径
- ExcelImportTemplatePathSuffix: /ExcelImportTemplate/
-
-# 即梦
-JiMeng:
- # Access Key ID
- ak: AKLTZjVlOGU1NzA1YWZkNDExMzkzYzY5YTNlOTRmMTMxODg
- # Secret Access Key
- sk: WkdabU9UTXdNVEJpTmpWbE5HVTJZVGxtTnpWbU5XSTBaRGN5TW1NMk5tRQ==
-
-# 可灵
-KeLing:
- # Access Key ID
- ak: c992fd02624d4900a93ca3b6da03d9e9
- # Secret Access Key
- sk: b37f67a00eb44f9bb57e4d530c328e1d
-
-# GPTNB GOAPI
-GPTNB:
- sk: sk-amQHwiEzPIZIB2KuF5A10dC23a0e4b02B48a7a2b6aFa0662
-
-# 人工智能生成PPT
-AIPPT:
- BASE_URL: https://open.docmee.cn
- API_KEY: ak_uKoKrRF63333E2lcBq
-
-# 阿里云API KEY
-aliyun:
- API_KEY: sk-01d13a39e09844038322108ecdbd1bbc
-
-# LIBLIB
-LIBLIB:
- accessKey: sOCtVLVTNOZkRMajlhzCmg
- secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9
\ No newline at end of file
+ ExcelImportTemplatePathSuffix: /ExcelImportTemplate/
\ No newline at end of file