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