From 89c8099e23ef5260ce6b3e46339064c559e9cc0f Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 08 Apr 2026 11:29:34 +0800
Subject: [PATCH] feat(ai): 添加智能体对话功能和相关实体映射

---
 src/main/java/cc/mrbird/febs/ai/controller/agent/ApiAgentController.java |   37 +++++++++++++++++++++++++++++++++----
 1 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/controller/agent/ApiAgentController.java b/src/main/java/cc/mrbird/febs/ai/controller/agent/ApiAgentController.java
index 6655c9f..721abc6 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/agent/ApiAgentController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/agent/ApiAgentController.java
@@ -1,8 +1,6 @@
 package cc.mrbird.febs.ai.controller.agent;
 
-import cc.mrbird.febs.ai.req.agent.AiAgentInitDto;
-import cc.mrbird.febs.ai.req.agent.ApiAgentCategoryAllDto;
-import cc.mrbird.febs.ai.req.agent.ApiAgentPageDto;
+import cc.mrbird.febs.ai.req.agent.*;
 import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryAllDto;
 import cc.mrbird.febs.ai.res.agent.AiAgentInitVo;
 import cc.mrbird.febs.ai.res.agent.ApiAgentCategoryVo;
@@ -10,6 +8,7 @@
 import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo;
 import cc.mrbird.febs.ai.service.AiAgentService;
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cn.hutool.core.util.StrUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -18,6 +17,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import reactor.core.publisher.Flux;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -55,7 +55,7 @@
         return service.agentList(dto);
     }
 
-    @ApiOperation(value = "初始化智能体", notes = "初始化智能体")
+    @ApiOperation(value = "详情", notes = "详情")
     @ApiResponses({
             @ApiResponse(code = 200, message = "success", response = AiAgentInitVo.class)
     })
@@ -65,6 +65,35 @@
         return service.initAgent(dto);
     }
 
+    @ApiOperation(value = "初始化对话", notes = "初始化对话")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = AgentSendInitVo.class)
+    })
+    @PostMapping(value = "/initSend", produces = "application/json")
+    public FebsResponse initSend(@RequestBody @Validated AgentInitDto dto) {
+
+        return service.initSend(dto);
+    }
+
+    @ApiOperation(value = "保存对话消息", notes = "保存对话消息")
+    @PostMapping(value = "/saveContext")
+    public FebsResponse saveContext(@RequestBody @Validated AgentSaveContextDto dto) {
+
+        return service.saveContext(dto);
+    }
+
+    @ApiOperation("AI回答(流式)")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "流式响应", response = AitalkItemStreamVo.class),
+    })
+    @PostMapping("/aiAnswer")
+    public Flux<FebsResponse> aiAnswer(@RequestBody @Validated AitalkItemStreamDto dto) {
+        if (StrUtil.isEmpty(dto.getTalkId()) || StrUtil.isEmpty(dto.getReqContext())|| StrUtil.isEmpty(dto.getReqContext())){
+            return Flux.just(new FebsResponse().fail().message("参数异常"));
+        }
+        return service.aiAnswer(dto);
+    }
+
 
 
 }

--
Gitblit v1.9.1