请教大家几个问题。
1、用到了deepseek4j非spring版,如何流式输出到前端
Service:
public Flux<ChatCompletionResponse> chatLocalOllama(String prompt) {
DeepSeekClient.Builder conf = DeepSeekClient.builder().baseUrl(URL).model(MODEL_NAME).openAiApiKey(DS_API_KEY)
.logRequests(true);
DeepSeekClient client = conf.build();
Flux<ChatCompletionResponse> flux = client.chatFluxCompletion(prompt);
return flux;
}
Controller:
public void chat() {
try {
String prompt = getJSONObject().getStr("content", "你是谁?");
SseEmitter sse = new SseEmitter(getResponse());
srv.chatLocalOllama(prompt);
sse.waiting(100);
System.out.println("sse comlete");
renderNull();
} catch (Exception e) {
renderErr(e);
}
}这们做无法流式输出到页面。
2、前端如何设计流畅的聊天模式?

1)分角色显示对话模式
2)如何体现出<think>部分内容?

3)主体部分内容,如何使用markdown即时展示?因为是流式输出,不知道后面输出的内容是不是符合markdown格式的。
问了deepseek,暂时没有找到好的解决方案。
前端 你搜 const eventSource = new EventSource('/sse'); 的用法就知道了。
可以参考一下前端部分(对于你的业务这个例子稍复杂了,可以直接问deepseek JS EventSource 的用法):
https://jfinal.com/share/2770