fix
This commit is contained in:
parent
69a71dfa43
commit
09b2db0df3
@ -29,7 +29,6 @@ public class LLMAppServiceImpl implements LLMAppService {
|
|||||||
try {
|
try {
|
||||||
FilteredSseOutputAdapter adapter = new FilteredSseOutputAdapter(emitter);
|
FilteredSseOutputAdapter adapter = new FilteredSseOutputAdapter(emitter);
|
||||||
llmServiceFactory.current().streamAnswer(llmToken, question, params, adapter);
|
llmServiceFactory.current().streamAnswer(llmToken, question, params, adapter);
|
||||||
adapter.flushLastChunk(); // 收尾发一次 sources
|
|
||||||
emitter.complete();
|
emitter.complete();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("LLM调用异常", e);
|
log.error("LLM调用异常", e);
|
||||||
|
|||||||
@ -51,27 +51,16 @@ public class FilteredSseOutputAdapter implements WriterAdapter {
|
|||||||
// 合并缓存中的 sources
|
// 合并缓存中的 sources
|
||||||
filtered.putAll(lastChunk);
|
filtered.putAll(lastChunk);
|
||||||
lastChunk.clear(); // 清空缓存
|
lastChunk.clear(); // 清空缓存
|
||||||
|
|
||||||
String payload = mapper.writeValueAsString(filtered);
|
String payload = mapper.writeValueAsString(filtered);
|
||||||
emitter.send("data: " + payload + "\n\n");
|
emitter.send(SseEmitter.event().data(payload));
|
||||||
} else if (!filtered.isEmpty()) {
|
} else if (!filtered.isEmpty()) {
|
||||||
// 普通中间片段
|
// 普通中间片段
|
||||||
String payload = mapper.writeValueAsString(filtered);
|
String payload = mapper.writeValueAsString(filtered);
|
||||||
emitter.send("data: " + payload + "\n\n");
|
emitter.send(SseEmitter.event().data(payload));
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("SSE数据解析失败:{}", line, 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user