From f9854273cc9b9d1e84729646ce5a6d71cf8bf5c1 Mon Sep 17 00:00:00 2001 From: zhijiantianya@gmail.com Date: Mon, 6 May 2024 22:34:49 +0800 Subject: [PATCH] 【代码评审】AI:调整 model 接口 --- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatModalController.java | 68 -------------------------------------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatRoleController.java | 64 ---------------------------------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiImageController.java | 48 ------------------------------------------------ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/package-info.java | 4 ---- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageDallDrawingReq.java | 35 +++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyReq.java | 21 +++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyRes.java | 16 ++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModalController.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatRoleController.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalAddReq.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListReq.java | 22 ++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListRes.java | 41 +++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalRes.java | 41 +++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/package-info.java | 1 + yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleAddReq.java | 34 ++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListReq.java | 20 ++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListRes.java | 37 +++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleRes.java | 37 +++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateReq.java | 34 ++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateVisibilityReq.java | 22 ++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModalConvert.java | 6 +++--- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatRoleConvert.java | 8 ++++---- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatConversationMapper.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatMessageMapper.java | 32 ++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatModalMapper.java | 39 +++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatRoleMapper.java | 17 +++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiImageMapper.java | 20 ++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/vo/typeHandler/AiChatModelConfigTypeHandler.java | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java | 65 ----------------------------------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatMessageMapper.java | 32 -------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatModalMapper.java | 39 --------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatRoleMapper.java | 17 ----------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiImageMapper.java | 20 -------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/typeHandler/AiChatModelConfigTypeHandler.java | 75 --------------------------------------------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModalService.java | 8 ++++---- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatRoleService.java | 2 +- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiImageService.java | 5 ++--- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatConversationServiceImpl.java | 9 +++++---- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatMessageServiceImpl.java | 4 ++-- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java | 10 +++++----- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatRoleServiceImpl.java | 4 ++-- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatServiceImpl.java | 6 +++--- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiImageServiceImpl.java | 6 +++--- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/midjourneyHandler/YuDaoMidjourneyMessageHandler.java | 2 +- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalAddReq.java | 48 ------------------------------------------------ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListReq.java | 22 ---------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListRes.java | 41 ----------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalRes.java | 41 ----------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleAddReq.java | 34 ---------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListReq.java | 20 -------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListRes.java | 37 ------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleRes.java | 37 ------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateReq.java | 34 ---------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateVisibilityReq.java | 22 ---------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageDallDrawingReq.java | 35 ----------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyReq.java | 21 --------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyRes.java | 16 ---------------- 58 files changed, 876 insertions(+), 875 deletions(-) delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatModalController.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatRoleController.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiImageController.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/package-info.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageDallDrawingReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyRes.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModalController.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatRoleController.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalAddReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListRes.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalRes.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/package-info.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleAddReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListRes.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleRes.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateVisibilityReq.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatConversationMapper.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatMessageMapper.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatModalMapper.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatRoleMapper.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiImageMapper.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/vo/typeHandler/AiChatModelConfigTypeHandler.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatMessageMapper.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatModalMapper.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatRoleMapper.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiImageMapper.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/typeHandler/AiChatModelConfigTypeHandler.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalAddReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListRes.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalRes.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleAddReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListRes.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleRes.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateVisibilityReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageDallDrawingReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyReq.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyRes.java diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatModalController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatModalController.java deleted file mode 100644 index cbbb230..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatModalController.java +++ /dev/null @@ -1,68 +0,0 @@ -package cn.iocoder.yudao.module.ai.controller; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.ai.service.AiChatModalService; -import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -/** - * ai 模型 - * - * @author fansili - * @time 2024/4/24 19:42 - * @since 1.0 - */ -@Tag(name = "A6-AI模型") -@RestController -@RequestMapping("/ai/chat") -@Slf4j -@AllArgsConstructor -public class AiChatModalController { - - private final AiChatModalService aiChatModalService; - - @Operation(summary = "ai模型 - 模型列表") - @GetMapping("/modal/list") - public PageResult list(@ModelAttribute AiChatModalListReq req) { - return aiChatModalService.list(req); - } - - @Operation(summary = "ai模型 - 添加") - @PutMapping("/modal") - public CommonResult add(@RequestBody @Validated AiChatModalAddReq req) { - aiChatModalService.add(req); - return CommonResult.success(null); - } - - @Operation(summary = "ai模型 - 模型照片上传") - @PostMapping("/modal/{id}/updateImage") - public CommonResult updateImage(@PathVariable("id") Long id, - MultipartFile file) { - // todo yunai 文件上传这里放哪里 - return CommonResult.success(null); - } - - @Operation(summary = "ai模型 - 修改") - @PostMapping("/modal/{id}") - public CommonResult update(@PathVariable Long id, - @RequestBody @Validated AiChatModalAddReq req) { - aiChatModalService.update(id, req); - return CommonResult.success(null); - } - - @Operation(summary = "ai模型 - 删除") - @DeleteMapping("/modal/{id}") - public CommonResult delete(@PathVariable Long id) { - aiChatModalService.delete(id); - return CommonResult.success(null); - } -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatRoleController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatRoleController.java deleted file mode 100644 index 2b459cd..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatRoleController.java +++ /dev/null @@ -1,64 +0,0 @@ -package cn.iocoder.yudao.module.ai.controller; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.ai.service.AiChatRoleService; -import cn.iocoder.yudao.module.ai.vo.*; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -/** - * ai chat 角色 - * - * @fansili - * @since v1.0 - */ -@Tag(name = "A4-chat角色") -@RestController -@RequestMapping("/ai/chat") -@Slf4j -@AllArgsConstructor -public class AiChatRoleController { - - private final AiChatRoleService chatRoleService; - - @Operation(summary = "chat角色 - 角色列表") - @GetMapping("/role/list") - public PageResult list(@Validated @ModelAttribute AiChatRoleListReq req) { - return chatRoleService.list(req); - } - - @Operation(summary = "chat角色 - 添加") - @PutMapping("/role") - public CommonResult add(@Validated @RequestBody AiChatRoleAddReq req) { - chatRoleService.add(req); - return CommonResult.success(null); - } - - @Operation(summary = "chat角色 - 修改") - @PostMapping("/role/{id}") - public CommonResult update(@PathVariable("id") Long id, - @Validated @RequestBody AiChatRoleUpdateReq req) { - chatRoleService.update(id, req); - return CommonResult.success(null); - } - - @Operation(summary = "chat角色 - 修改可见性") - @PostMapping("/role/{id}/update-enable") - public CommonResult updateEnable(@PathVariable("id") Long id, - @Validated @RequestBody AiChatRoleUpdateVisibilityReq req) { - chatRoleService.updateEnable(id, req); - return CommonResult.success(null); - } - - @Operation(summary = "chat角色 - 删除") - @DeleteMapping("/role/{id}") - public CommonResult delete(@PathVariable("id") Long id) { - chatRoleService.delete(id); - return CommonResult.success(null); - } -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiImageController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiImageController.java deleted file mode 100644 index 6227788..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiImageController.java +++ /dev/null @@ -1,48 +0,0 @@ -package cn.iocoder.yudao.module.ai.controller; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.ai.service.AiImageService; -import cn.iocoder.yudao.module.ai.vo.AiImageDallDrawingReq; -import cn.iocoder.yudao.module.ai.vo.AiImageMidjourneyReq; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -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.servlet.mvc.method.annotation.SseEmitter; - -/** - * ai作图 - * - * @author fansili - * @time 2024/4/25 15:49 - * @since 1.0 - */ -@Tag(name = "A10-ai作图") -@RestController -@RequestMapping("/ai/image") -@Slf4j -@AllArgsConstructor -public class AiImageController { - - private final AiImageService aiImageService; - - @Operation(summary = "dall2/dall3绘画", description = "openAi dall3是付费的!") - @PostMapping("/dallDrawing") - public SseEmitter dallDrawing(@Validated @RequestBody AiImageDallDrawingReq req) { - Utf8SseEmitter sseEmitter = new Utf8SseEmitter(); - aiImageService.dallDrawing(req, sseEmitter); - return sseEmitter; - } - - @Operation(summary = "midjourney", description = "midjourney图片绘画流程:1、提交任务 2、获取完成的任务 3、选择对应功能 4、获取最终结果") - @PostMapping("/midjourney") - public CommonResult midjourney(@Validated @RequestBody AiImageMidjourneyReq req) { - aiImageService.midjourney(req); - return CommonResult.success(null); - } -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java new file mode 100644 index 0000000..43e05dc --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.ai.controller.admin.image; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.ai.controller.Utf8SseEmitter; +import cn.iocoder.yudao.module.ai.service.AiImageService; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDallDrawingReq; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyReq; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +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.servlet.mvc.method.annotation.SseEmitter; + +// TODO @芋艿:整理接口定义 +/** + * ai作图 + * + * @author fansili + * @time 2024/4/25 15:49 + * @since 1.0 + */ +@Tag(name = "A10-ai作图") +@RestController +@RequestMapping("/ai/image") +@Slf4j +@AllArgsConstructor +public class AiImageController { + + private final AiImageService aiImageService; + + @Operation(summary = "dall2/dall3绘画", description = "openAi dall3是付费的!") + @PostMapping("/dallDrawing") + public SseEmitter dallDrawing(@Validated @RequestBody AiImageDallDrawingReq req) { + Utf8SseEmitter sseEmitter = new Utf8SseEmitter(); + aiImageService.dallDrawing(req, sseEmitter); + return sseEmitter; + } + + @Operation(summary = "midjourney", description = "midjourney图片绘画流程:1、提交任务 2、获取完成的任务 3、选择对应功能 4、获取最终结果") + @PostMapping("/midjourney") + public CommonResult midjourney(@Validated @RequestBody AiImageMidjourneyReq req) { + aiImageService.midjourney(req); + return CommonResult.success(null); + } +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/package-info.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/package-info.java deleted file mode 100644 index 9bc6965..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * TODO 芋艿:站位,无特殊作用 - */ -package cn.iocoder.yudao.module.ai.controller.admin.image; \ No newline at end of file diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageDallDrawingReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageDallDrawingReq.java new file mode 100644 index 0000000..42887b7 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageDallDrawingReq.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.ai.controller.admin.image.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * dall2/dall2 绘画 + * + * @author fansili + * @time 2024/4/25 16:24 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiImageDallDrawingReq { + + @Schema(description = "提示词") + @NotNull(message = "提示词不能为空!") + private String prompt; + + @Schema(description = "模型") + @NotNull(message = "模型不能为空") + private String modal; + + @Schema(description = "图像生成的风格。可为vivid(生动)或natural(自然)") + @NotNull(message = "图像生成的风格,不能为空!") + private String style; + + @Schema(description = "生成图像的尺寸大小。对于dall-e-2模型,尺寸可为256x256, 512x512, 或 1024x1024。对于dall-e-3模型,尺寸可为1024x1024, 1792x1024, 或 1024x1792。") + @NotNull(message = "size不能为空!") + private String size; + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyReq.java new file mode 100644 index 0000000..a4bb622 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyReq.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.ai.controller.admin.image.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * midjourney req + * + * @author fansili + * @time 2024/4/28 17:42 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiImageMidjourneyReq { + + @Schema(description = "提示词") + private String prompt; + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyRes.java new file mode 100644 index 0000000..8d1a52e --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyRes.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.ai.controller.admin.image.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * midjourney + * + * @author fansili + * @time 2024/4/28 17:42 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiImageMidjourneyRes { +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModalController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModalController.java new file mode 100644 index 0000000..e90de15 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModalController.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.ai.service.AiChatModalService; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalAddReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListRes; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +// TODO @fan:调整下接口;相关 vo 的命名等等;modal => model +/** + * ai 模型 + * + * @author fansili + * @time 2024/4/24 19:42 + * @since 1.0 + */ +@Tag(name = "A6-AI模型") +@RestController +@RequestMapping("/ai/chat") +@Slf4j +@AllArgsConstructor +public class AiChatModalController { + + private final AiChatModalService aiChatModalService; + + @Operation(summary = "ai模型 - 模型列表") + @GetMapping("/modal/list") + public PageResult list(@ModelAttribute AiChatModalListReq req) { + return aiChatModalService.list(req); + } + + @Operation(summary = "ai模型 - 添加") + @PutMapping("/modal") + public CommonResult add(@RequestBody @Validated AiChatModalAddReq req) { + aiChatModalService.add(req); + return CommonResult.success(null); + } + + @Operation(summary = "ai模型 - 模型照片上传") + @PostMapping("/modal/{id}/updateImage") + public CommonResult updateImage(@PathVariable("id") Long id, + MultipartFile file) { + // todo yunai 文件上传这里放哪里 + return CommonResult.success(null); + } + + @Operation(summary = "ai模型 - 修改") + @PostMapping("/modal/{id}") + public CommonResult update(@PathVariable Long id, + @RequestBody @Validated AiChatModalAddReq req) { + aiChatModalService.update(id, req); + return CommonResult.success(null); + } + + @Operation(summary = "ai模型 - 删除") + @DeleteMapping("/modal/{id}") + public CommonResult delete(@PathVariable Long id) { + aiChatModalService.delete(id); + return CommonResult.success(null); + } +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatRoleController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatRoleController.java new file mode 100644 index 0000000..e0b07e0 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatRoleController.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.*; +import cn.iocoder.yudao.module.ai.service.AiChatRoleService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +// TODO @fan:调整下接口;相关 vo 的命名等等;modal => model +/** + * ai chat 角色 + * + * @fansili + * @since v1.0 + */ +@Tag(name = "A4-chat角色") +@RestController +@RequestMapping("/ai/chat") +@Slf4j +@AllArgsConstructor +public class AiChatRoleController { + + private final AiChatRoleService chatRoleService; + + @Operation(summary = "chat角色 - 角色列表") + @GetMapping("/role/list") + public PageResult list(@Validated @ModelAttribute AiChatRoleListReq req) { + return chatRoleService.list(req); + } + + @Operation(summary = "chat角色 - 添加") + @PutMapping("/role") + public CommonResult add(@Validated @RequestBody AiChatRoleAddReq req) { + chatRoleService.add(req); + return CommonResult.success(null); + } + + @Operation(summary = "chat角色 - 修改") + @PostMapping("/role/{id}") + public CommonResult update(@PathVariable("id") Long id, + @Validated @RequestBody AiChatRoleUpdateReq req) { + chatRoleService.update(id, req); + return CommonResult.success(null); + } + + @Operation(summary = "chat角色 - 修改可见性") + @PostMapping("/role/{id}/update-enable") + public CommonResult updateEnable(@PathVariable("id") Long id, + @Validated @RequestBody AiChatRoleUpdateVisibilityReq req) { + chatRoleService.updateEnable(id, req); + return CommonResult.success(null); + } + + @Operation(summary = "chat角色 - 删除") + @DeleteMapping("/role/{id}") + public CommonResult delete(@PathVariable("id") Long id) { + chatRoleService.delete(id); + return CommonResult.success(null); + } +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalAddReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalAddReq.java new file mode 100644 index 0000000..d750f92 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalAddReq.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Map; + +/** + * ai chat modal + * + * @author fansili + * @time 2024/4/24 19:47 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatModalAddReq { + + @Schema(description = "模型名字") + @Size(max = 60, message = "模型名字最大60个字符") + @NotNull(message = "模型名字不能为空!") + private String name; + + @Size(max = 32, message = "模型平台最大32个字符") + @Schema(description = "模型平台 参考 AiPlatformEnum") + @NotNull(message = "平台不能为空!") + private String platform; + + @Schema(description = "模型类型(qianwen、yiyan、xinghuo、openai)") + @Size(max = 32, message = "模型类型最大32个字符") + @NotNull(message = "modal模型不能为空!") + private String modal; + + @Schema(description = "模型照片") + @Size(max = 256, message = "模型照片地址最大256个字符") + private String imageUrl; + + @Schema(description = "排序") + @NotNull(message = "sort排序不能为空!") + private Integer sort; + + @Schema(description = "模型配置JSON") +// @Size(max = 1024, message = "模型配置最大1024个字符") + private Map config; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListReq.java new file mode 100644 index 0000000..7a73a0c --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListReq.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * modal list + * + * @author fansili + * @time 2024/4/24 19:56 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatModalListReq extends PageParam { + + @Schema(description = "名字搜搜") + private String search; + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListRes.java new file mode 100644 index 0000000..75e71df --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalListRes.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * modal list + * + * @author fansili + * @time 2024/4/24 19:56 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatModalListRes { + + @Schema(description = "id") + private Long id; + + @Schema(description = "模型平台 参考 AiPlatformEnum") + private String platform; + + @Schema(description = "模型类型 参考 YiYanChatModel、XingHuoChatModel") + private String modal; + + @Schema(description = "模型名字") + private String name; + + @Schema(description = "模型照片") + private String image; + + @Schema(description = "禁用 0、正常 1、禁用") + private Integer disable; + + @Schema(description = "排序 asc 排序") + private Integer sort; + + @Schema(description = "modal 配置") + private String config; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalRes.java new file mode 100644 index 0000000..15879a6 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModalRes.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * modal list + * + * @author fansili + * @time 2024/4/24 19:56 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatModalRes { + + @Schema(description = "id") + private Long id; + + @Schema(description = "模型平台 参考 AiPlatformEnum") + private String platform; + + @Schema(description = "模型类型 参考 YiYanChatModel、XingHuoChatModel") + private String modal; + + @Schema(description = "模型名字") + private String name; + + @Schema(description = "模型照片") + private String image; + + @Schema(description = "禁用 0、正常 1、禁用") + private Integer disable; + + @Schema(description = "排序 asc 排序") + private Integer sort; + + @Schema(description = "modal 配置") + private String config; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/package-info.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/package-info.java new file mode 100644 index 0000000..7fb31bb --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo; \ No newline at end of file diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleAddReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleAddReq.java new file mode 100644 index 0000000..f412b3e --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleAddReq.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 角色列表 + * + * @fansili + * @since v1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatRoleAddReq extends PageParam { + + @NotNull + @Schema(description = "角色名,角色的显示名称") + private String name; + + @NotNull + @Schema(description = "角色介绍,详细描述角色的功能或用途") + private String introduce; + + @NotNull + @Schema(description = "分类,角色所属的类别,如娱乐、创作等") + private String classify; + + @NotNull + @Schema(description = "开启状态 open、close") + private String enable; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListReq.java new file mode 100644 index 0000000..5662398 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListReq.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 角色列表 + * + * @fansili + * @since v1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatRoleListReq extends PageParam { + + @Schema(description = "查询") + private String search; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListRes.java new file mode 100644 index 0000000..5aee6a3 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleListRes.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 角色列表 + * + * @fansili + * @since v1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatRoleListRes { + + @Schema(description = "id") + private Long id; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "角色名字") + private String name; + + @Schema(description = "角色介绍,详细描述角色的功能或用途") + private String introduce; + + @Schema(description = "分类,角色所属的类别,如娱乐、创作等") + private String classify; + + @Schema(description = "状态 open、close") + private String enable; + + @Schema(description = "角色的使用次数统计") + private Integer useCount; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleRes.java new file mode 100644 index 0000000..6b4ec9d --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleRes.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 角色 + * + * @fansili + * @since v1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatRoleRes { + + @Schema(description = "id") + private Long id; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "角色名字") + private String name; + + @Schema(description = "角色介绍,详细描述角色的功能或用途") + private String introduce; + + @Schema(description = "分类,角色所属的类别,如娱乐、创作等") + private String classify; + + @Schema(description = "状态 open、close") + private String enable; + + @Schema(description = "角色的使用次数统计") + private Integer useCount; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateReq.java new file mode 100644 index 0000000..3a0f925 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateReq.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 角色 - 更新 + * + * @fansili + * @since v1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatRoleUpdateReq extends PageParam { + + @NotNull + @Schema(description = "角色名,角色的显示名称") + private String name; + + @NotNull + @Schema(description = "角色介绍,详细描述角色的功能或用途") + private String introduce; + + @NotNull + @Schema(description = "分类,角色所属的类别,如娱乐、创作等") + private String classify; + + @NotNull + @Schema(description = "开启状态 open、close") + private String enable; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateVisibilityReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateVisibilityReq.java new file mode 100644 index 0000000..9e0c0c4 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleUpdateVisibilityReq.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 角色 - 修改可见性 + * + * @fansili + * @since v1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatRoleUpdateVisibilityReq extends PageParam { + + @NotNull + @Schema(description = "开启状态 open、close") + private String enable; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModalConvert.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModalConvert.java index cd6714f..d2d6763 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModalConvert.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModalConvert.java @@ -1,9 +1,9 @@ package cn.iocoder.yudao.module.ai.convert; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModalDO; -import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes; -import cn.iocoder.yudao.module.ai.vo.AiChatModalRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalAddReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRes; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatRoleConvert.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatRoleConvert.java index b056a6d..84c7aae 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatRoleConvert.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatRoleConvert.java @@ -1,10 +1,10 @@ package cn.iocoder.yudao.module.ai.convert; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; -import cn.iocoder.yudao.module.ai.vo.AiChatRoleAddReq; -import cn.iocoder.yudao.module.ai.vo.AiChatRoleRes; -import cn.iocoder.yudao.module.ai.vo.AiChatRoleUpdateReq; -import cn.iocoder.yudao.module.ai.vo.AiChatRoleListRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleAddReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleUpdateReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleListRes; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatConversationMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatConversationMapper.java new file mode 100644 index 0000000..0333be3 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatConversationMapper.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.ai.dal.mysql; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatConversationDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * message mapper + * + * @fansili + * @since v1.0 + */ +@Repository +@Mapper +public interface AiChatConversationMapper extends BaseMapperX { + + /** + * 更新 - chat count + * + * @param id + */ + @Update("update ai_chat_conversation set chat_count = chat_count + 1 where id = #{id}") + void updateIncrChatCount(@Param("id") Long id); + + /** + * 查询 - 最新的对话 + * + * @param loginUserId + */ + default AiChatConversationDO selectLatestConversation(Long loginUserId) { + PageResult pageResult = selectPage(new PageParam().setPageNo(1).setPageSize(1), + new LambdaQueryWrapper() + .eq(AiChatConversationDO::getUserId, loginUserId) + .orderByDesc(AiChatConversationDO::getId)); + if (CollUtil.isEmpty(pageResult.getList())) { + return null; + } + return pageResult.getList().get(0); + } + + /** + * 查询 - 前100 + * + * @param search + */ + default List selectTop100Conversation(Long loginUserId, String search) { + LambdaQueryWrapper queryWrapper + = new LambdaQueryWrapper().eq(AiChatConversationDO::getUserId, loginUserId); + if (!StrUtil.isBlank(search)) { + queryWrapper.like(AiChatConversationDO::getTitle, search); + } + queryWrapper.orderByDesc(AiChatConversationDO::getId); + return selectPage(new PageParam().setPageNo(1).setPageSize(100), queryWrapper).getList(); + } +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatMessageMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatMessageMapper.java new file mode 100644 index 0000000..515e343 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatMessageMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.ai.dal.mysql; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatMessageDO; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * message mapper + * + * @fansili + * @since v1.0 + */ +@Repository +@Mapper +public interface AiChatMessageMapper extends BaseMapperX { + + /** + * 删除 - 根据 Conversation 和 id + * + * @param chatConversationId + * @param id + */ + default int deleteByConversationAndId(Long chatConversationId, Long id) { + return this.delete(new LambdaQueryWrapperX() + .eq(AiChatMessageDO::getConversationId, chatConversationId) + .eq(AiChatMessageDO::getId, id) + ); + } + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatModalMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatModalMapper.java new file mode 100644 index 0000000..cc50743 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatModalMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.ai.dal.mysql; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * chat modal + * + * @author fansili + * @time 2024/4/24 19:41 + * @since 1.0 + */ +@Repository +@Mapper +public interface AiChatModalMapper extends BaseMapperX { + + /** + * 查询 - 第一个modal + * + * @return + */ + default AiChatModalDO selectFirstModal() { + PageResult pageResult = selectPage(new PageParam().setPageNo(1).setPageSize(1), + new LambdaQueryWrapperX() + .orderByAsc(AiChatModalDO::getSort) + ); + if (CollUtil.isEmpty(pageResult.getList())) { + return null; + } + return pageResult.getList().get(0); + } + + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatRoleMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatRoleMapper.java new file mode 100644 index 0000000..1ab7117 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatRoleMapper.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.ai.dal.mysql; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * role mapper + * + * @fansili + * @since v1.0 + */ +@Repository +@Mapper +public interface AiChatRoleMapper extends BaseMapperX { +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiImageMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiImageMapper.java new file mode 100644 index 0000000..ef2b6a5 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiImageMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.ai.dal.mysql; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * ai image + * + * @author fansili + * @time 2024/4/28 14:01 + * @since 1.0 + */ +@Repository +@Mapper +public interface AiImageMapper extends BaseMapperX { + + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/vo/typeHandler/AiChatModelConfigTypeHandler.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/vo/typeHandler/AiChatModelConfigTypeHandler.java new file mode 100644 index 0000000..b1f54ea --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/vo/typeHandler/AiChatModelConfigTypeHandler.java @@ -0,0 +1,75 @@ +//package cn.iocoder.yudao.module.ai.mapper.typeHandler; +// +//import cn.hutool.core.util.StrUtil; +//import cn.iocoder.yudao.framework.ai.AiPlatformEnum; +//import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +//import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatModalDO; +//import org.apache.ibatis.type.BaseTypeHandler; +//import org.apache.ibatis.type.JdbcType; +//import org.apache.ibatis.type.MappedTypes; +// +//import java.sql.CallableStatement; +//import java.sql.PreparedStatement; +//import java.sql.ResultSet; +//import java.sql.SQLException; +// +///** +// * chat modal config +// * +// * @author fansili +// * @time 2024/5/6 11:18 +// * @since 1.0 +// */ +//@MappedTypes(value = AiChatModalDO.Config.class) +//public class AiChatModelConfigTypeHandler extends BaseTypeHandler { +// +// @Override +// public void setNonNullParameter(PreparedStatement ps, int i, AiChatModalDO.Config parameter, JdbcType jdbcType) throws SQLException { +// // 将 MyCustomType 转换为数据库类型并设置到 PreparedStatement 中 +// if (parameter == null) { +// ps.setString(i, ""); +// } else { +// ps.setString(i, JsonUtils.toJsonString(parameter)); +// } +// } +// +// @Override +// public AiChatModalDO.Config getNullableResult(ResultSet rs, String columnName) throws SQLException { +// // 从 ResultSet 中获取数据库类型并转换为 MyCustomType +// String str = rs.getString(columnName); +// if (StrUtil.isBlank(str)) { +// return null; +// } +// AiChatModalDO.Config config = JsonUtils.parseObject(str, AiChatModalDO.Config.class); +// // 获取平台 +// AiPlatformEnum platformEnum = AiPlatformEnum.valueOfPlatform(config.getModelPlatform()); +// if (AiPlatformEnum.CHAT_PLATFORM_LIST.contains(platformEnum)) { +// return JsonUtils.parseObject(str, AiChatModalDO.ChatConfig.class); +// } else if (AiPlatformEnum.OPEN_AI_DALL == platformEnum) { +// return JsonUtils.parseObject(str, AiChatModalDO.OpenAiImageConfig.class); +// } else if (AiPlatformEnum.MIDJOURNEY == platformEnum) { +// return JsonUtils.parseObject(str, AiChatModalDO.MidjourneyConfig.class); +// } +// throw new IllegalArgumentException("ai模型中config不能转换! json: " + str); +// } +// +// @Override +// public AiChatModalDO.Config getNullableResult(ResultSet rs, int columnIndex) throws SQLException { +// // 从 ResultSet 中获取数据库类型并转换为 MyCustomType +// String str = rs.getString(columnIndex); +// if (StrUtil.isBlank(str)) { +// return null; +// } +// return JsonUtils.parseObject(str, AiChatModalDO.Config.class); +// } +// +// @Override +// public AiChatModalDO.Config getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { +// // 从 CallableStatement 中获取数据库类型并转换为 MyCustomType +// String str = cs.getString(columnIndex); +// if (StrUtil.isBlank(str)) { +// return null; +// } +// return JsonUtils.parseObject(str, AiChatModalDO.Config.class); +// } +//} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java deleted file mode 100644 index 1d10db1..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java +++ /dev/null @@ -1,65 +0,0 @@ -package cn.iocoder.yudao.module.ai.mapper; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatConversationDO; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Update; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * message mapper - * - * @fansili - * @since v1.0 - */ -@Repository -@Mapper -public interface AiChatConversationMapper extends BaseMapperX { - - /** - * 更新 - chat count - * - * @param id - */ - @Update("update ai_chat_conversation set chat_count = chat_count + 1 where id = #{id}") - void updateIncrChatCount(@Param("id") Long id); - - /** - * 查询 - 最新的对话 - * - * @param loginUserId - */ - default AiChatConversationDO selectLatestConversation(Long loginUserId) { - PageResult pageResult = selectPage(new PageParam().setPageNo(1).setPageSize(1), - new LambdaQueryWrapper() - .eq(AiChatConversationDO::getUserId, loginUserId) - .orderByDesc(AiChatConversationDO::getId)); - if (CollUtil.isEmpty(pageResult.getList())) { - return null; - } - return pageResult.getList().get(0); - } - - /** - * 查询 - 前100 - * - * @param search - */ - default List selectTop100Conversation(Long loginUserId, String search) { - LambdaQueryWrapper queryWrapper - = new LambdaQueryWrapper().eq(AiChatConversationDO::getUserId, loginUserId); - if (!StrUtil.isBlank(search)) { - queryWrapper.like(AiChatConversationDO::getTitle, search); - } - queryWrapper.orderByDesc(AiChatConversationDO::getId); - return selectPage(new PageParam().setPageNo(1).setPageSize(100), queryWrapper).getList(); - } -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatMessageMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatMessageMapper.java deleted file mode 100644 index 7227d6f..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatMessageMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.ai.mapper; - -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatMessageDO; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; - -/** - * message mapper - * - * @fansili - * @since v1.0 - */ -@Repository -@Mapper -public interface AiChatMessageMapper extends BaseMapperX { - - /** - * 删除 - 根据 Conversation 和 id - * - * @param chatConversationId - * @param id - */ - default int deleteByConversationAndId(Long chatConversationId, Long id) { - return this.delete(new LambdaQueryWrapperX() - .eq(AiChatMessageDO::getConversationId, chatConversationId) - .eq(AiChatMessageDO::getId, id) - ); - } - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatModalMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatModalMapper.java deleted file mode 100644 index 7eb5f21..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatModalMapper.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.iocoder.yudao.module.ai.mapper; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; - -/** - * chat modal - * - * @author fansili - * @time 2024/4/24 19:41 - * @since 1.0 - */ -@Repository -@Mapper -public interface AiChatModalMapper extends BaseMapperX { - - /** - * 查询 - 第一个modal - * - * @return - */ - default AiChatModalDO selectFirstModal() { - PageResult pageResult = selectPage(new PageParam().setPageNo(1).setPageSize(1), - new LambdaQueryWrapperX() - .orderByAsc(AiChatModalDO::getSort) - ); - if (CollUtil.isEmpty(pageResult.getList())) { - return null; - } - return pageResult.getList().get(0); - } - - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatRoleMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatRoleMapper.java deleted file mode 100644 index e96c608..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatRoleMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.yudao.module.ai.mapper; - -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; - -/** - * role mapper - * - * @fansili - * @since v1.0 - */ -@Repository -@Mapper -public interface AiChatRoleMapper extends BaseMapperX { -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiImageMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiImageMapper.java deleted file mode 100644 index dfad53d..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiImageMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.iocoder.yudao.module.ai.mapper; - -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; - -/** - * ai image - * - * @author fansili - * @time 2024/4/28 14:01 - * @since 1.0 - */ -@Repository -@Mapper -public interface AiImageMapper extends BaseMapperX { - - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/typeHandler/AiChatModelConfigTypeHandler.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/typeHandler/AiChatModelConfigTypeHandler.java deleted file mode 100644 index b1f54ea..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/typeHandler/AiChatModelConfigTypeHandler.java +++ /dev/null @@ -1,75 +0,0 @@ -//package cn.iocoder.yudao.module.ai.mapper.typeHandler; -// -//import cn.hutool.core.util.StrUtil; -//import cn.iocoder.yudao.framework.ai.AiPlatformEnum; -//import cn.iocoder.yudao.framework.common.util.json.JsonUtils; -//import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatModalDO; -//import org.apache.ibatis.type.BaseTypeHandler; -//import org.apache.ibatis.type.JdbcType; -//import org.apache.ibatis.type.MappedTypes; -// -//import java.sql.CallableStatement; -//import java.sql.PreparedStatement; -//import java.sql.ResultSet; -//import java.sql.SQLException; -// -///** -// * chat modal config -// * -// * @author fansili -// * @time 2024/5/6 11:18 -// * @since 1.0 -// */ -//@MappedTypes(value = AiChatModalDO.Config.class) -//public class AiChatModelConfigTypeHandler extends BaseTypeHandler { -// -// @Override -// public void setNonNullParameter(PreparedStatement ps, int i, AiChatModalDO.Config parameter, JdbcType jdbcType) throws SQLException { -// // 将 MyCustomType 转换为数据库类型并设置到 PreparedStatement 中 -// if (parameter == null) { -// ps.setString(i, ""); -// } else { -// ps.setString(i, JsonUtils.toJsonString(parameter)); -// } -// } -// -// @Override -// public AiChatModalDO.Config getNullableResult(ResultSet rs, String columnName) throws SQLException { -// // 从 ResultSet 中获取数据库类型并转换为 MyCustomType -// String str = rs.getString(columnName); -// if (StrUtil.isBlank(str)) { -// return null; -// } -// AiChatModalDO.Config config = JsonUtils.parseObject(str, AiChatModalDO.Config.class); -// // 获取平台 -// AiPlatformEnum platformEnum = AiPlatformEnum.valueOfPlatform(config.getModelPlatform()); -// if (AiPlatformEnum.CHAT_PLATFORM_LIST.contains(platformEnum)) { -// return JsonUtils.parseObject(str, AiChatModalDO.ChatConfig.class); -// } else if (AiPlatformEnum.OPEN_AI_DALL == platformEnum) { -// return JsonUtils.parseObject(str, AiChatModalDO.OpenAiImageConfig.class); -// } else if (AiPlatformEnum.MIDJOURNEY == platformEnum) { -// return JsonUtils.parseObject(str, AiChatModalDO.MidjourneyConfig.class); -// } -// throw new IllegalArgumentException("ai模型中config不能转换! json: " + str); -// } -// -// @Override -// public AiChatModalDO.Config getNullableResult(ResultSet rs, int columnIndex) throws SQLException { -// // 从 ResultSet 中获取数据库类型并转换为 MyCustomType -// String str = rs.getString(columnIndex); -// if (StrUtil.isBlank(str)) { -// return null; -// } -// return JsonUtils.parseObject(str, AiChatModalDO.Config.class); -// } -// -// @Override -// public AiChatModalDO.Config getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { -// // 从 CallableStatement 中获取数据库类型并转换为 MyCustomType -// String str = cs.getString(columnIndex); -// if (StrUtil.isBlank(str)) { -// return null; -// } -// return JsonUtils.parseObject(str, AiChatModalDO.Config.class); -// } -//} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModalService.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModalService.java index b1bf4a7..5248597 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModalService.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModalService.java @@ -1,10 +1,10 @@ package cn.iocoder.yudao.module.ai.service; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes; -import cn.iocoder.yudao.module.ai.vo.AiChatModalRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalAddReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRes; /** * ai modal diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatRoleService.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatRoleService.java index 5c75607..96da840 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatRoleService.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatRoleService.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.ai.service; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.ai.vo.*; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.*; /** * chat 角色 diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiImageService.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiImageService.java index 997c9a6..00b5ded 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiImageService.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiImageService.java @@ -1,9 +1,8 @@ package cn.iocoder.yudao.module.ai.service; import cn.iocoder.yudao.module.ai.controller.Utf8SseEmitter; -import cn.iocoder.yudao.module.ai.vo.AiImageDallDrawingReq; -import cn.iocoder.yudao.module.ai.vo.AiImageMidjourneyReq; -import cn.iocoder.yudao.module.ai.vo.AiImageMidjourneyRes; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDallDrawingReq; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyReq; /** * ai 作图 diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatConversationServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatConversationServiceImpl.java index 1a8425c..9722122 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatConversationServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatConversationServiceImpl.java @@ -5,16 +5,17 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.ai.ErrorCodeConstants; import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateReqVO; import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationRespVO; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleRes; import cn.iocoder.yudao.module.ai.convert.AiChatConversationConvert; import cn.iocoder.yudao.module.ai.enums.AiChatConversationTypeEnum; import cn.iocoder.yudao.module.ai.enums.AiChatModalDisableEnum; -import cn.iocoder.yudao.module.ai.mapper.AiChatConversationMapper; -import cn.iocoder.yudao.module.ai.mapper.AiChatModalMapper; -import cn.iocoder.yudao.module.ai.mapper.AiChatRoleMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatConversationMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatModalMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatRoleMapper; import cn.iocoder.yudao.module.ai.service.AiChatConversationService; import cn.iocoder.yudao.module.ai.service.AiChatModalService; import cn.iocoder.yudao.module.ai.service.AiChatRoleService; -import cn.iocoder.yudao.module.ai.vo.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatMessageServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatMessageServiceImpl.java index ae5a594..2c86aa8 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatMessageServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatMessageServiceImpl.java @@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.ai.ErrorCodeConstants; import cn.iocoder.yudao.module.ai.convert.AiChatMessageConvert; import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatConversationDO; import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatMessageDO; -import cn.iocoder.yudao.module.ai.mapper.AiChatConversationMapper; -import cn.iocoder.yudao.module.ai.mapper.AiChatMessageMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatConversationMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatMessageMapper; import cn.iocoder.yudao.module.ai.service.AiChatMessageService; import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.message.AiChatMessageRespVO; import lombok.AllArgsConstructor; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java index 59de1b6..ebe1638 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java @@ -16,12 +16,12 @@ import cn.iocoder.yudao.module.ai.dal.vo.AiChatModalChatConfigVO; import cn.iocoder.yudao.module.ai.dal.vo.AiChatModalConfigVO; import cn.iocoder.yudao.module.ai.dal.vo.AiChatModalDallConfigVO; import cn.iocoder.yudao.module.ai.enums.AiChatModalDisableEnum; -import cn.iocoder.yudao.module.ai.mapper.AiChatModalMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatModalMapper; import cn.iocoder.yudao.module.ai.service.AiChatModalService; -import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListReq; -import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes; -import cn.iocoder.yudao.module.ai.vo.AiChatModalRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalAddReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListReq; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalListRes; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRes; import jakarta.validation.ConstraintViolation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatRoleServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatRoleServiceImpl.java index 5ca5af4..fc882e0 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatRoleServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatRoleServiceImpl.java @@ -6,13 +6,13 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.ai.ErrorCodeConstants; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.*; import cn.iocoder.yudao.module.ai.convert.AiChatRoleConvert; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; import cn.iocoder.yudao.module.ai.enums.AiChatRoleClassifyEnum; import cn.iocoder.yudao.module.ai.enums.AiChatRoleEnableEnum; -import cn.iocoder.yudao.module.ai.mapper.AiChatRoleMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatRoleMapper; import cn.iocoder.yudao.module.ai.service.AiChatRoleService; -import cn.iocoder.yudao.module.ai.vo.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatServiceImpl.java index 50f4ac0..c7f6cf3 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatServiceImpl.java @@ -11,9 +11,9 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.ai.config.AiChatClientFactory; import cn.iocoder.yudao.module.ai.controller.Utf8SseEmitter; import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatMessageDO; -import cn.iocoder.yudao.module.ai.mapper.AiChatConversationMapper; -import cn.iocoder.yudao.module.ai.mapper.AiChatMessageMapper; -import cn.iocoder.yudao.module.ai.mapper.AiChatRoleMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatConversationMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatMessageMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiChatRoleMapper; import cn.iocoder.yudao.module.ai.service.AiChatConversationService; import cn.iocoder.yudao.module.ai.service.AiChatService; import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationRespVO; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiImageServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiImageServiceImpl.java index ca23eb7..16a4146 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiImageServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiImageServiceImpl.java @@ -17,10 +17,10 @@ import cn.iocoder.yudao.module.ai.ErrorCodeConstants; import cn.iocoder.yudao.module.ai.controller.Utf8SseEmitter; import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; import cn.iocoder.yudao.module.ai.enums.AiChatDrawingStatusEnum; -import cn.iocoder.yudao.module.ai.mapper.AiImageMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiImageMapper; import cn.iocoder.yudao.module.ai.service.AiImageService; -import cn.iocoder.yudao.module.ai.vo.AiImageDallDrawingReq; -import cn.iocoder.yudao.module.ai.vo.AiImageMidjourneyReq; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDallDrawingReq; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyReq; import jakarta.annotation.PostConstruct; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/midjourneyHandler/YuDaoMidjourneyMessageHandler.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/midjourneyHandler/YuDaoMidjourneyMessageHandler.java index 68f6397..0910b29 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/midjourneyHandler/YuDaoMidjourneyMessageHandler.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/midjourneyHandler/YuDaoMidjourneyMessageHandler.java @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.ai.midjourney.constants.MidjourneyGennerateSta import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyMessageHandler; import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; import cn.iocoder.yudao.module.ai.enums.AiChatDrawingStatusEnum; -import cn.iocoder.yudao.module.ai.mapper.AiImageMapper; +import cn.iocoder.yudao.module.ai.dal.mysql.AiImageMapper; import com.alibaba.fastjson2.JSON; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalAddReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalAddReq.java deleted file mode 100644 index 6a2b143..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalAddReq.java +++ /dev/null @@ -1,48 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Data; -import lombok.experimental.Accessors; - -import java.util.Map; - -/** - * ai chat modal - * - * @author fansili - * @time 2024/4/24 19:47 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatModalAddReq { - - @Schema(description = "模型名字") - @Size(max = 60, message = "模型名字最大60个字符") - @NotNull(message = "模型名字不能为空!") - private String name; - - @Size(max = 32, message = "模型平台最大32个字符") - @Schema(description = "模型平台 参考 AiPlatformEnum") - @NotNull(message = "平台不能为空!") - private String platform; - - @Schema(description = "模型类型(qianwen、yiyan、xinghuo、openai)") - @Size(max = 32, message = "模型类型最大32个字符") - @NotNull(message = "modal模型不能为空!") - private String modal; - - @Schema(description = "模型照片") - @Size(max = 256, message = "模型照片地址最大256个字符") - private String imageUrl; - - @Schema(description = "排序") - @NotNull(message = "sort排序不能为空!") - private Integer sort; - - @Schema(description = "模型配置JSON") -// @Size(max = 1024, message = "模型配置最大1024个字符") - private Map config; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListReq.java deleted file mode 100644 index 2aa6b93..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListReq.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * modal list - * - * @author fansili - * @time 2024/4/24 19:56 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatModalListReq extends PageParam { - - @Schema(description = "名字搜搜") - private String search; - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListRes.java deleted file mode 100644 index 31d5e86..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListRes.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * modal list - * - * @author fansili - * @time 2024/4/24 19:56 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatModalListRes { - - @Schema(description = "id") - private Long id; - - @Schema(description = "模型平台 参考 AiPlatformEnum") - private String platform; - - @Schema(description = "模型类型 参考 YiYanChatModel、XingHuoChatModel") - private String modal; - - @Schema(description = "模型名字") - private String name; - - @Schema(description = "模型照片") - private String image; - - @Schema(description = "禁用 0、正常 1、禁用") - private Integer disable; - - @Schema(description = "排序 asc 排序") - private Integer sort; - - @Schema(description = "modal 配置") - private String config; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalRes.java deleted file mode 100644 index 351da25..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalRes.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * modal list - * - * @author fansili - * @time 2024/4/24 19:56 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatModalRes { - - @Schema(description = "id") - private Long id; - - @Schema(description = "模型平台 参考 AiPlatformEnum") - private String platform; - - @Schema(description = "模型类型 参考 YiYanChatModel、XingHuoChatModel") - private String modal; - - @Schema(description = "模型名字") - private String name; - - @Schema(description = "模型照片") - private String image; - - @Schema(description = "禁用 0、正常 1、禁用") - private Integer disable; - - @Schema(description = "排序 asc 排序") - private Integer sort; - - @Schema(description = "modal 配置") - private String config; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleAddReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleAddReq.java deleted file mode 100644 index 15a8034..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleAddReq.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * chat 角色列表 - * - * @fansili - * @since v1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatRoleAddReq extends PageParam { - - @NotNull - @Schema(description = "角色名,角色的显示名称") - private String name; - - @NotNull - @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String introduce; - - @NotNull - @Schema(description = "分类,角色所属的类别,如娱乐、创作等") - private String classify; - - @NotNull - @Schema(description = "开启状态 open、close") - private String enable; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListReq.java deleted file mode 100644 index 1dd5e54..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListReq.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * chat 角色列表 - * - * @fansili - * @since v1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatRoleListReq extends PageParam { - - @Schema(description = "查询") - private String search; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListRes.java deleted file mode 100644 index e018c43..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListRes.java +++ /dev/null @@ -1,37 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * chat 角色列表 - * - * @fansili - * @since v1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatRoleListRes { - - @Schema(description = "id") - private Long id; - - @Schema(description = "用户id") - private Long userId; - - @Schema(description = "角色名字") - private String name; - - @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String introduce; - - @Schema(description = "分类,角色所属的类别,如娱乐、创作等") - private String classify; - - @Schema(description = "状态 open、close") - private String enable; - - @Schema(description = "角色的使用次数统计") - private Integer useCount; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleRes.java deleted file mode 100644 index a690393..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleRes.java +++ /dev/null @@ -1,37 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * chat 角色 - * - * @fansili - * @since v1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatRoleRes { - - @Schema(description = "id") - private Long id; - - @Schema(description = "用户id") - private Long userId; - - @Schema(description = "角色名字") - private String name; - - @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String introduce; - - @Schema(description = "分类,角色所属的类别,如娱乐、创作等") - private String classify; - - @Schema(description = "状态 open、close") - private String enable; - - @Schema(description = "角色的使用次数统计") - private Integer useCount; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateReq.java deleted file mode 100644 index 707c015..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateReq.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * chat 角色 - 更新 - * - * @fansili - * @since v1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatRoleUpdateReq extends PageParam { - - @NotNull - @Schema(description = "角色名,角色的显示名称") - private String name; - - @NotNull - @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String introduce; - - @NotNull - @Schema(description = "分类,角色所属的类别,如娱乐、创作等") - private String classify; - - @NotNull - @Schema(description = "开启状态 open、close") - private String enable; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateVisibilityReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateVisibilityReq.java deleted file mode 100644 index 52685eb..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleUpdateVisibilityReq.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * chat 角色 - 修改可见性 - * - * @fansili - * @since v1.0 - */ -@Data -@Accessors(chain = true) -public class AiChatRoleUpdateVisibilityReq extends PageParam { - - @NotNull - @Schema(description = "开启状态 open、close") - private String enable; -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageDallDrawingReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageDallDrawingReq.java deleted file mode 100644 index fb62f20..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageDallDrawingReq.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * dall2/dall2 绘画 - * - * @author fansili - * @time 2024/4/25 16:24 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiImageDallDrawingReq { - - @Schema(description = "提示词") - @NotNull(message = "提示词不能为空!") - private String prompt; - - @Schema(description = "模型") - @NotNull(message = "模型不能为空") - private String modal; - - @Schema(description = "图像生成的风格。可为vivid(生动)或natural(自然)") - @NotNull(message = "图像生成的风格,不能为空!") - private String style; - - @Schema(description = "生成图像的尺寸大小。对于dall-e-2模型,尺寸可为256x256, 512x512, 或 1024x1024。对于dall-e-3模型,尺寸可为1024x1024, 1792x1024, 或 1024x1792。") - @NotNull(message = "size不能为空!") - private String size; - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyReq.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyReq.java deleted file mode 100644 index 2795413..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyReq.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * midjourney req - * - * @author fansili - * @time 2024/4/28 17:42 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiImageMidjourneyReq { - - @Schema(description = "提示词") - private String prompt; - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyRes.java deleted file mode 100644 index 569047c..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiImageMidjourneyRes.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.iocoder.yudao.module.ai.vo; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * midjourney - * - * @author fansili - * @time 2024/4/28 17:42 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiImageMidjourneyRes { -} -- libgit2 0.21.4