diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java index 2e0fbcae74..4f758204ac 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java @@ -99,11 +99,11 @@ public class AiChatMessageServiceImpl implements AiChatMessageService { // 3.3 联网搜索内容 List webSearch = getWebSearch(sendReqVO.getContent(), sendReqVO.getSearchEnable(), 10); - // 3.3 创建 chat 需要的 Prompt + // 3.4 创建 chat 需要的 Prompt Prompt prompt = buildPrompt(conversation, historyMessages, segmentList, model, sendReqVO, webSearch); ChatResponse chatResponse = chatModel.call(prompt); - // 3.4 段式返回 + // 3.5 段式返回 String newContent = chatResponse.getResult().getOutput().getContent(); chatMessageMapper.updateById(new AiChatMessageDO().setId(assistantMessage.getId()).setSegmentIds(convertList(segmentList, AiKnowledgeSegmentDO::getId)).setContent(newContent)); return new AiChatMessageSendRespVO().setSend(BeanUtils.toBean(userMessage, AiChatMessageSendRespVO.Message.class)) @@ -137,11 +137,11 @@ public class AiChatMessageServiceImpl implements AiChatMessageService { // todo count 看是否需要放到配置文件 List webSearch = getWebSearch(sendReqVO.getContent(), sendReqVO.getSearchEnable(), 10); - // 3.3 构建 Prompt,并进行调用 + // 3.4 构建 Prompt,并进行调用 Prompt prompt = buildPrompt(conversation, historyMessages, segmentList, model, sendReqVO, webSearch); Flux streamResponse = chatModel.stream(prompt); - // 3.4 流式返回 + // 3.5 流式返回 // TODO 注意:Schedulers.immediate() 目的是,避免默认 Schedulers.parallel() 并发消费 chunk 导致 SSE 响应前端会乱序问题 StringBuffer contentBuffer = new StringBuffer(); return streamResponse.map(chunk -> {