请教大家几个问题。
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