zoujiajian 1 ano atrás
pai
commit
7a198deb04

+ 36 - 0
netflix-common/src/main/java/com/cyksj/common/util/ImageUploadUtil.java

@@ -0,0 +1,36 @@
+package com.cyksj.common.util;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+
+import javax.imageio.stream.FileImageOutputStream;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: ImageUploadUtil
+ * 创建者: JavaZou
+ * 创建时间:2025/4/21 15:16
+ */
+public class ImageUploadUtil {
+
+	public static String upload(String url, String prefix) throws IOException {
+		byte[] body = HttpUtil.downloadBytes(url);
+		Path tempFile = Files.createTempFile(prefix, ".jpeg");
+		try (
+				FileImageOutputStream imageOutput = new FileImageOutputStream(tempFile.toFile())) {
+			imageOutput.write(body, 0, body.length);
+		}
+		Map<String, Object> paramMap = new HashMap<>();
+		paramMap.put("file", tempFile.toFile());
+		JSONObject result = JSONUtil.parseObj(HttpUtil.post("https://files.liuliangbang.vip/pic/ups", paramMap));
+		FileUtil.del(tempFile);
+		return result.getJSONObject("value").getJSONArray("saved").getJSONObject(0).getJSONObject("info").getStr("cdnUrl");
+	}
+}

+ 9 - 1
netflix-service/src/main/java/com/cyksj/server/listener/ConsoleStreamListener.java

@@ -2,6 +2,7 @@ package com.cyksj.server.listener;
 
 
 import cn.hutool.core.util.StrUtil;
+import com.cyksj.common.util.ImageUploadUtil;
 import com.cyksj.model.entity.MiniPopularizeUserConversationChat;
 import com.cyksj.model.gpt.Message;
 import com.cyksj.server.SendMessageUtil;
@@ -9,6 +10,7 @@ import com.cyksj.service.mini.MiniPopularizeCommonService;
 import lombok.Builder;
 import lombok.extern.slf4j.Slf4j;
 
+import java.io.IOException;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -71,9 +73,15 @@ public class ConsoleStreamListener extends AbstractStreamListener {
 	}
 
 	public MiniPopularizeUserConversationChat setImagRecord(Long imagRecordId, String img, MiniPopularizeUserConversationChat.Status status, String content) {
+		String url;
+		try {
+			url = ImageUploadUtil.upload(img, "mgpt");
+		} catch (IOException e) {
+			url = img;
+		}
 		MiniPopularizeUserConversationChat build = MiniPopularizeUserConversationChat.builder()
 				.conversationId(conversationId)
-				.img(img)
+				.img(url)
 				.type(MiniPopularizeUserConversationChat.Type.image)
 				.content(content)
 				.role(MiniPopularizeUserConversationChat.Role.assistant)