From 09b2db0df379cb543e8526c3ea67b9dd8c73b8a4 Mon Sep 17 00:00:00 2001 From: luke Date: Mon, 23 Jun 2025 18:27:28 +0800 Subject: [PATCH] fix --- .../application/service/LLMAppServiceImpl.java | 1 - .../util/http/FilteredSseOutputAdapter.java | 15 ++------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/knowledge/base/application/service/LLMAppServiceImpl.java b/src/main/java/com/knowledge/base/application/service/LLMAppServiceImpl.java index c13e354..02fcdd3 100644 --- a/src/main/java/com/knowledge/base/application/service/LLMAppServiceImpl.java +++ b/src/main/java/com/knowledge/base/application/service/LLMAppServiceImpl.java @@ -29,7 +29,6 @@ public class LLMAppServiceImpl implements LLMAppService { try { FilteredSseOutputAdapter adapter = new FilteredSseOutputAdapter(emitter); llmServiceFactory.current().streamAnswer(llmToken, question, params, adapter); - adapter.flushLastChunk(); // 收尾发一次 sources emitter.complete(); } catch (Exception e) { log.error("LLM调用异常", e); diff --git a/src/main/java/com/knowledge/base/infrastructure/util/http/FilteredSseOutputAdapter.java b/src/main/java/com/knowledge/base/infrastructure/util/http/FilteredSseOutputAdapter.java index 86952f9..d0ce7c0 100644 --- a/src/main/java/com/knowledge/base/infrastructure/util/http/FilteredSseOutputAdapter.java +++ b/src/main/java/com/knowledge/base/infrastructure/util/http/FilteredSseOutputAdapter.java @@ -51,27 +51,16 @@ public class FilteredSseOutputAdapter implements WriterAdapter { // 合并缓存中的 sources filtered.putAll(lastChunk); lastChunk.clear(); // 清空缓存 - String payload = mapper.writeValueAsString(filtered); - emitter.send("data: " + payload + "\n\n"); + emitter.send(SseEmitter.event().data(payload)); } else if (!filtered.isEmpty()) { // 普通中间片段 String payload = mapper.writeValueAsString(filtered); - emitter.send("data: " + payload + "\n\n"); + emitter.send(SseEmitter.event().data(payload)); } } catch (Exception e) { log.warn("SSE数据解析失败:{}", line, e); } } - - public void flushLastChunk() { - if (lastChunk.isEmpty()) return; - try { - String finalJson = mapper.writeValueAsString(lastChunk); - emitter.send("data: " + finalJson + "\n\n"); - } catch (Exception e) { - log.warn("flush 最后一条 SSE 失败", e); - } - } }