feat(ai-companion): 新增AI伴侣模块及白名单路径

This commit is contained in:
2026-01-26 16:25:39 +08:00
parent fd4c381d33
commit 6bb905bb30
10 changed files with 146 additions and 31 deletions

View File

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yolo.keyborad.common.BaseResponse;
import com.yolo.keyborad.common.ResultUtils;
import com.yolo.keyborad.model.dto.PageDTO;
import com.yolo.keyborad.model.entity.KeyboardAiCompanion;
import com.yolo.keyborad.model.vo.AiCompanionVO;
import com.yolo.keyborad.service.KeyboardAiCompanionService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -27,8 +27,8 @@ public class AiCompanionController {
@PostMapping("/page")
@Operation(summary = "分页查询AI陪聊角色", description = "分页查询已上线的AI陪聊角色列表")
public BaseResponse<IPage<KeyboardAiCompanion>> pageList(@RequestBody PageDTO pageDTO) {
IPage<KeyboardAiCompanion> result = aiCompanionService.pageList(pageDTO.getPageNum(), pageDTO.getPageSize());
public BaseResponse<IPage<AiCompanionVO>> pageList(@RequestBody PageDTO pageDTO) {
IPage<AiCompanionVO> result = aiCompanionService.pageList(pageDTO.getPageNum(), pageDTO.getPageSize());
return ResultUtils.success(result);
}
}

View File

@@ -8,6 +8,7 @@ import com.yolo.keyborad.common.ErrorCode;
import com.yolo.keyborad.common.ResultUtils;
import com.yolo.keyborad.exception.BusinessException;
import com.yolo.keyborad.mapper.QdrantPayloadMapper;
import com.yolo.keyborad.model.dto.chat.ChatMessageReq;
import com.yolo.keyborad.model.dto.chat.ChatReq;
import com.yolo.keyborad.model.dto.chat.ChatSaveReq;
import com.yolo.keyborad.model.dto.chat.ChatStreamMessage;
@@ -50,13 +51,16 @@ public class ChatController {
@PostMapping("/message")
@Operation(summary = "同步对话", description = "发送消息给大模型,同步返回 AI 响应,异步生成音频")
public BaseResponse<ChatMessageVO> message(@RequestParam("content") String content) {
if (StrUtil.isBlank(content)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "消息内容不能为空");
public BaseResponse<ChatMessageVO> message(@RequestBody ChatMessageReq req ) {
if (StrUtil.isBlank(req.getContent())) {
throw new BusinessException(ErrorCode.COMPANION_MESSAGE_EMPTY);
}
if (req.getCompanionId() == null) {
throw new BusinessException(ErrorCode.COMPANION_ID_EMPTY);
}
String userId = StpUtil.getLoginIdAsString();
ChatMessageVO result = chatService.message(content, userId);
ChatMessageVO result = chatService.message(req.getContent(), userId, req.getCompanionId());
return ResultUtils.success(result);
}