Browse Source

图片标识符替换优化

S0025136190 6 months ago
parent
commit
3fbadcbdf1

+ 14 - 6
takai-ai/src/main/java/com/takai/ai/service/impl/TakaiAiServiceImpl.java

@@ -187,7 +187,8 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
                             if (newData.indexOf(START_SIGN) > -1 || symbolData.length() > 0) {
                                 symbolData = symbolData + newData;
                                 //接收到了完整的图片标识
-                                if (newData.indexOf(END_SIGN) > -1) {
+                                int endSignPos = symbolData.indexOf(END_SIGN);
+                                if (endSignPos > -1) {
                                     JSONObject json = new JSONObject();
                                     json.put("id", id);
                                     json.put("event", "add");
@@ -203,16 +204,17 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
                                                 url = url.replace("https://10.1.28.14:9000", "https://minio.jkec.info:9000");
                                             }
                                             //匹配markdown图片格式
-                                            symbolData = symbolData.replace(key, "![](" + url + ")");
+//                                            symbolData = symbolData.replace(key, "![](" + url + ")");
                                         } else {
                                             logger.error("图片标识符"+key+"没有获取到对应的URL{}: " + symbolData);
                                         }
                                         //检查是否当前token包含其他图片的开始符号”【“
-                                        int firstPos = symbolData.indexOf(START_SIGN);
-                                        if(firstPos > -1){
+                                        int lastPos = symbolData.lastIndexOf(START_SIGN);
+                                        if(lastPos > endSignPos){
                                             // 从'【' 开始截取
-                                            newData = symbolData.substring(0, firstPos);
-                                            symbolData = symbolData.substring(firstPos);
+                                            newData = symbolData.substring(0, lastPos);
+                                            newData = newData.replace(key, "![](" + url + ")");
+                                            symbolData = symbolData.substring(lastPos);
                                             logger.info("截取结果{}: " + symbolData);
                                         } else {
                                             newData = symbolData;
@@ -226,6 +228,12 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
 
                                     log.info("获取到图片替换结束符号,返回前端信息:" + json);
                                     send(sseEmitter, json);
+                                    //如果超过长度200还没收到】符号,直接返回。
+                                } else if (symbolData.length() > 200) {
+                                    JSONObject json = new JSONObject();
+                                    json.put("id", id);
+                                    json.put("event", "add");
+                                    json.put("data", symbolData);
                                 }
                             } else {
                                 JSONObject json = new JSONObject();