From 0325d413502474062e1d400df319bfd390e94956 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 17 Sep 2025 16:12:40 +0800 Subject: [PATCH] feat(ai): 新增 AI 陪练相关功能 --- src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java b/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java index ca256ba..86ef30e 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java @@ -1,7 +1,9 @@ package cc.mrbird.febs.ai.controller.memberTalk; -import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkAnswerDto; -import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkDto; +import cc.mrbird.febs.ai.req.memberTalk.*; +import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; +import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkReloadVo; +import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVoOld; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkVo; import cc.mrbird.febs.ai.service.AiMemberTalkService; import cc.mrbird.febs.common.entity.FebsResponse; @@ -9,11 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; +import reactor.core.publisher.Flux; import java.io.IOException; @@ -42,6 +42,17 @@ } + @ApiOperation(value = "再练一次(重新回答)", notes = "再练一次(重新回答)") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiMemberTalkReloadVo.class) + }) + @PostMapping(value = "/reload") + public FebsResponse reload(@RequestBody @Validated ApiMemberTalkReloadDto dto) { + + return aiMemberTalkService.reload(dto); + } + + @ApiOperation(value = "回答", notes = "回答") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiMemberTalkVo.class) @@ -50,6 +61,16 @@ public FebsResponse answer(@RequestBody @Validated ApiMemberTalkAnswerDto dto) { return aiMemberTalkService.answer(dto); + } + + @ApiOperation(value = "对话记录分页查询", notes = "对话记录分页查询") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiMemberTalkItemVo.class) + }) + @PostMapping(value = "/historyPage") + public FebsResponse historyPage(@RequestBody @Validated ApiMemberTalkItemPageDto dto) { + + return aiMemberTalkService.historyPage(dto); } @PostMapping("/start-stream") @@ -79,4 +100,14 @@ return emitter; } + + // 修改接口定义 + @ApiOperation("开始AI对话(流式)") + @ApiResponses({ + @ApiResponse(code = 200, message = "流式响应", response = ApiMemberTalkStreamVoOld.class), + }) + @GetMapping("/answer-stream") + public Flux<FebsResponse> answerStream(@RequestParam String question) { + return aiMemberTalkService.answerStream(question); + } } -- Gitblit v1.9.1