src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
@@ -15,6 +15,7 @@
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;
@@ -407,7 +408,7 @@
                    ChatMessage message = choice.getMessage();
                    if (message.getReasoningContent()!= null &&!message.getReasoningContent().isEmpty()) {
                        apiMemberTalkStreamVo.setReasoningContent(message.getReasoningContent());
                        System.out.print(message.getReasoningContent());
//                        System.out.print(message.getReasoningContent());
                    }
                    String content = message.getContent() == null ? "" : message.getContent().toString();
@@ -417,7 +418,7 @@
                })
                .onErrorResume(throwable -> {
                    log.error("流式调用AI服务失败,问题输入: {}", question, throwable);
                    FebsResponse errorResponse = new FebsResponse().message("AI服务调用失败");
                    FebsResponse errorResponse = new FebsResponse().fail().message("AI服务调用失败");
                    return Flux.just(errorResponse);
                });
    }
@@ -425,31 +426,34 @@
    @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);
                    }
                }
            }
        }
@@ -498,7 +502,7 @@
                })
                .onErrorResume(throwable -> {
                    log.error("流式调用AI服务失败,问题输入: {}", question, throwable);
                    FebsResponse errorResponse = new FebsResponse().message("AI服务调用失败");
                    FebsResponse errorResponse = new FebsResponse().fail().message("AI服务调用失败");
                    return Flux.just(errorResponse);
                });
    }