From a19b1025890eb0f71b44a9d1bb948cb084d4106a Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 12 十二月 2025 16:50:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/ai/service/LlmChatService.java | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/ai/service/LlmChatService.java b/src/main/java/com/zy/ai/service/LlmChatService.java
index e8c7a77..5e709af 100644
--- a/src/main/java/com/zy/ai/service/LlmChatService.java
+++ b/src/main/java/com/zy/ai/service/LlmChatService.java
@@ -91,10 +91,14 @@
.doOnError(ex -> log.error("璋冪敤 LLM 娴佸紡澶辫触", ex));
flux.subscribe(payload -> {
- String s = payload == null ? null : payload.trim();
+ String s = payload;
if (s == null || s.isEmpty()) return;
- if (s.startsWith("data:")) s = s.substring(5).trim();
- if ("[DONE]".equals(s)) return;
+ if (s.startsWith("data:")) {
+ s = s.substring(5);
+ if (s.startsWith(" ")) s = s.substring(1);
+ }
+ // 淇濈暀妯″瀷杈撳嚭涓殑鎹㈣锛屽彧鍦ㄥ垽鏂粨鏉熸爣璁版椂蹇界暐绌虹櫧
+ if ("[DONE]".equals(s.trim())) return;
try {
JSONObject obj = JSON.parseObject(s);
JSONArray choices = obj.getJSONArray("choices");
@@ -103,6 +107,10 @@
JSONObject delta = c0.getJSONObject("delta");
if (delta != null) {
String content = delta.getString("content");
+// log.info("chunk = [{}] len = {}", content, content.length());
+// for (char ch : content.toCharArray()) {
+// log.info("char: {} ({})", (int) ch, ch == '\n' ? "\\n" : ch);
+// }
if (content != null) onChunk.accept(content);
}
}
--
Gitblit v1.9.1