From 9febb08b4f2bf272c15a2a0ec33984414ab311e8 Mon Sep 17 00:00:00 2001 From: wangxiangshun Date: Sun, 19 Oct 2025 19:29:41 +0800 Subject: [PATCH] =?UTF-8?q?TTS=20=E8=BF=94=E5=9B=9E=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/ai/gpt/OpenAiStreamClient.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java b/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java index ed40b3b..0919caf 100644 --- a/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java +++ b/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java @@ -104,6 +104,7 @@ public class OpenAiStreamClient { String data = line.substring(6).trim(); // 检查是否为结束标记 if (data.equals("[DONE]")) { + listener.onMessage(bufferStr.toString()); listener.onComplete(); break; } @@ -116,22 +117,23 @@ public class OpenAiStreamClient { .getJSONObject("delta") .getStr("content"); -// if (content != null && !content.isEmpty()) { -// if(punctuationSet.contains(content)){ -// //说明有标点啦,直接返回 -// bufferStr.append(content); -// listener.onMessage(bufferStr.toString()); -// }else{ -// //加入缓冲区 -// if(StrUtil.isEmpty(bufferStr.toString())){ -// bufferStr.append(content); -// }else { -// bufferStr.append(" ").append(content); -// } -// } -// -// } - listener.onMessage(content); + if (content != null && !content.isEmpty()) { + if(punctuationSet.contains(content)){ + //说明有标点啦,直接返回 + bufferStr.append(content); + listener.onMessage(bufferStr.toString()); + bufferStr.replace(0, bufferStr.length(), ""); +// bufferStr = new StringBuffer(); + }else{ + //加入缓冲区 + if(StrUtil.isEmpty(bufferStr.toString())){ + bufferStr.append(content); + }else { + bufferStr.append(" ").append(content); + } + } + } +// listener.onMessage(content); } catch (Exception e) { listener.onError(new IOException("Parse error: " + e.getMessage())); }