| | |
| | | import cc.mrbird.febs.ai.service.AiTalkItemService; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.JsonNode; |
| | |
| | | @Override |
| | | public Flux<FebsResponse> answerStreamV2(AiTalkAnswerStream dto) { |
| | | String question = dto.getQuestion(); |
| | | //获取消息记录 |
| | | List<AiTalkItem> aiTalkItems = aiTalkItemService.getListByTalkId(dto.getTalkId()); |
| | | log.info("----- standard request -----"); |
| | | |
| | | |
| | | List<ChatMessage> messages = new ArrayList<>(); |
| | | final ChatMessage systemMessage = ChatMessage.builder() |
| | | .role(ChatMessageRole.SYSTEM) |
| | | .content("你是豆包,是由字节跳动开发的 AI 人工智能助手") |
| | | .build(); |
| | | |
| | | List<ChatMessage> messages = Arrays.asList(systemMessage); |
| | | if(CollUtil.isNotEmpty(aiTalkItems)){ |
| | | for (AiTalkItem aiTalkItem : aiTalkItems){ |
| | | if (aiTalkItem.getType() == 1){ |
| | | ChatMessage userMessage = ChatMessage.builder() |
| | | .role(ChatMessageRole.USER) |
| | | .content(aiTalkItem.getContext()) |
| | | .build(); |
| | | messages.add(userMessage); |
| | | } |
| | | if (aiTalkItem.getType() == 2){ |
| | | ChatMessage assistantMessage = ChatMessage.builder() |
| | | .role(ChatMessageRole.ASSISTANT) |
| | | .content(aiTalkItem.getContext()) |
| | | .build(); |
| | | messages.add(assistantMessage); |
| | | messages.add(systemMessage); |
| | | //获取消息记录 |
| | | if (StrUtil.isNotEmpty(dto.getTalkId())){ |
| | | List<AiTalkItem> aiTalkItems = aiTalkItemService.getListByTalkId(dto.getTalkId()); |
| | | if(CollUtil.isNotEmpty(aiTalkItems)){ |
| | | for (AiTalkItem aiTalkItem : aiTalkItems){ |
| | | if (aiTalkItem.getType() == 1){ |
| | | ChatMessage memberMessage = ChatMessage.builder() |
| | | .role(ChatMessageRole.USER) |
| | | .content(aiTalkItem.getContext()) |
| | | .build(); |
| | | messages.add(memberMessage); |
| | | } |
| | | if (aiTalkItem.getType() == 2){ |
| | | ChatMessage assistantMessage = ChatMessage.builder() |
| | | .role(ChatMessageRole.ASSISTANT) |
| | | .content(aiTalkItem.getContext()) |
| | | .build(); |
| | | messages.add(assistantMessage); |
| | | } |
| | | } |
| | | } |
| | | } |