|
|
@@ -2,7 +2,8 @@ package com.cyksj.server.listener;
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
-import com.cyksj.common.util.ImageUploadUtil;
|
|
|
+import com.cyksj.common.constant.Constant;
|
|
|
+import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.model.entity.MiniPopularizeUserConversationChat;
|
|
|
import com.cyksj.model.gpt.Message;
|
|
|
import com.cyksj.server.SendMessageUtil;
|
|
|
@@ -10,7 +11,6 @@ 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;
|
|
|
|
|
|
@@ -36,17 +36,19 @@ public class ConsoleStreamListener extends AbstractStreamListener {
|
|
|
String content = delta.getContent();
|
|
|
String img = null;
|
|
|
if (StrUtil.isNotBlank(content)) {
|
|
|
- if (content.contains("file")) {
|
|
|
+ if (content.contains(Constant.GPT_FILE_DOMAIN) || content.contains(Constant.GPT_VIDEO_DOMAIN)) {
|
|
|
String urlPattern = "\\bhttps?://[^\\s/$.?#].[^\\s]*\\b";
|
|
|
Pattern pattern = Pattern.compile(urlPattern);
|
|
|
Matcher matcher = pattern.matcher(content);
|
|
|
while (matcher.find()) {
|
|
|
img = matcher.group();
|
|
|
+ break;
|
|
|
}
|
|
|
- miniPopularizeCommonService.saveImgRecord(setImagRecord(imgRecordId, img, MiniPopularizeUserConversationChat.Status.success, content));
|
|
|
- //返回图片
|
|
|
- log.info("返回图片:{}", img);
|
|
|
- SendMessageUtil.sendMessage(userId, img);
|
|
|
+ if (miniPopularizeCommonService.saveImgRecord(setImagRecord(imgRecordId, img, MiniPopularizeUserConversationChat.Status.success, content))) {
|
|
|
+ //返回图片
|
|
|
+ log.info("返回图片:{}", img);
|
|
|
+ }
|
|
|
+// SendMessageUtil.sendMessage(userId, img);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -57,14 +59,14 @@ public class ConsoleStreamListener extends AbstractStreamListener {
|
|
|
miniPopularizeCommonService.recordChatEndOfAnswer(conversationId, userId, "图片生成异常", MiniPopularizeUserConversationChat.Role.assistant);
|
|
|
}
|
|
|
}
|
|
|
- SendMessageUtil.sendMessage(userId, message);
|
|
|
+// SendMessageUtil.sendMessage(userId, message);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onError(Throwable throwable, String response) {
|
|
|
//将用户使用次数返回
|
|
|
miniPopularizeCommonService.recoverUserLimit(userId, recoverNum);
|
|
|
- miniPopularizeCommonService.saveImgRecord(setImagRecord(imgRecordId, null, MiniPopularizeUserConversationChat.Status.fail, "出图失败"));
|
|
|
+ miniPopularizeCommonService.saveImgRecord(setImagRecord(imgRecordId, null, MiniPopularizeUserConversationChat.Status.fail, StringUtil.getErrorText(throwable)));
|
|
|
log.error("gpt对话异常,异常:{}", response);
|
|
|
Message message = Message.ofAssistant("图片生成异常");
|
|
|
SendMessageUtil.sendMessage(userId, message);
|
|
|
@@ -74,12 +76,17 @@ public class ConsoleStreamListener extends AbstractStreamListener {
|
|
|
}
|
|
|
|
|
|
public MiniPopularizeUserConversationChat setImagRecord(Long imagRecordId, String img, MiniPopularizeUserConversationChat.Status status, String content) {
|
|
|
- String url = null;
|
|
|
- if (StrUtil.isNotBlank(img)) {
|
|
|
- try {
|
|
|
- url = ImageUploadUtil.upload(img, "mgpt");
|
|
|
- } catch (IOException e) {
|
|
|
- url = img;
|
|
|
+ String url = img;
|
|
|
+// if (StrUtil.isNotBlank(img)) {
|
|
|
+// try {
|
|
|
+// url = ImageUploadUtil.upload(img, "mgpt");
|
|
|
+// } catch (IOException e) {
|
|
|
+// url = img;
|
|
|
+// }
|
|
|
+// }
|
|
|
+ if (StrUtil.isNotBlank(url)) {
|
|
|
+ if (url.contains(Constant.GPT_VIDEO_DOMAIN)) {
|
|
|
+ url = url.replaceAll(Constant.GPT_VIDEO_DOMAIN, Constant.GPT_VIDEO_REPLACE_DOMAIN);
|
|
|
}
|
|
|
}
|
|
|
MiniPopularizeUserConversationChat build = MiniPopularizeUserConversationChat.builder()
|