From d057a70510e571935299ed12c2eb420ff1233f94 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 25 Aug 2025 16:42:26 +0800
Subject: [PATCH] refactor(ai): 优化对话流 V2 版本的处理逻辑

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java  |   37 ++++++++++++++++++++-----------------
 src/main/java/cc/mrbird/febs/ai/req/talk/AiTalkAnswerStream.java |    1 -
 2 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/req/talk/AiTalkAnswerStream.java b/src/main/java/cc/mrbird/febs/ai/req/talk/AiTalkAnswerStream.java
index 5de4cef..0f4836e 100644
--- a/src/main/java/cc/mrbird/febs/ai/req/talk/AiTalkAnswerStream.java
+++ b/src/main/java/cc/mrbird/febs/ai/req/talk/AiTalkAnswerStream.java
@@ -13,7 +13,6 @@
 @ApiModel(value = "AiTalkAnsStream", description = "参数")
 public class AiTalkAnswerStream {
 
-    @NotBlank(message = "会话ID不能为空")
     @ApiModelProperty(value = "会话ID", example = "10")
     private String talkId;
 
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
index b059230..57654cc 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
+++ b/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;
@@ -425,8 +426,6 @@
     @Override
     public Flux<FebsResponse> answerStreamV2(AiTalkAnswerStream dto) {
         String question = dto.getQuestion();
-        //获取消息记录
-        List<AiTalkItem> aiTalkItems = aiTalkItemService.getListByTalkId(dto.getTalkId());
         log.info("----- standard request -----");
 
         final ChatMessage systemMessage = ChatMessage.builder()
@@ -435,21 +434,25 @@
                 .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);
+        //获取消息记录
+        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 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);
+                    }
                 }
             }
         }

--
Gitblit v1.9.1