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