Commit 31453e19d4a33296cae0395d5545391bb56b8ee2
1 parent
1676f671
【新增】AI:聊天角色管理(80%)
Showing
9 changed files
with
27 additions
and
30 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModelController.java
| @@ -78,7 +78,8 @@ public class AiChatModelController { | @@ -78,7 +78,8 @@ public class AiChatModelController { | ||
| 78 | @Parameter(name = "status", description = "状态", required = true, example = "1") | 78 | @Parameter(name = "status", description = "状态", required = true, example = "1") |
| 79 | public CommonResult<List<AiChatModelRespVO>> getChatModelSimpleList(@RequestParam("status") Integer status) { | 79 | public CommonResult<List<AiChatModelRespVO>> getChatModelSimpleList(@RequestParam("status") Integer status) { |
| 80 | List<AiChatModelDO> list = chatModelService.getChatModelList(status); | 80 | List<AiChatModelDO> list = chatModelService.getChatModelList(status); |
| 81 | - return success(convertList(list, model -> new AiChatModelRespVO().setId(model.getId()).setName(model.getName()))); | 81 | + return success(convertList(list, model -> new AiChatModelRespVO().setId(model.getId()) |
| 82 | + .setName(model.getName()).setModel(model.getModel()))); | ||
| 82 | } | 83 | } |
| 83 | 84 | ||
| 84 | } | 85 | } |
| 85 | \ No newline at end of file | 86 | \ No newline at end of file |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatRoleController.java
| 1 | package cn.iocoder.yudao.module.ai.controller.admin.model; | 1 | package cn.iocoder.yudao.module.ai.controller.admin.model; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; | ||
| 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 8 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRolePageReqVO; | ||
| 9 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleRespVO; | ||
| 10 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleSaveReqVO; | 6 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRolePageReqVO; |
| 7 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleRespVO; | ||
| 8 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveReqVO; | ||
| 11 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; | 9 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 12 | import cn.iocoder.yudao.module.ai.service.model.AiChatRoleService; | 10 | import cn.iocoder.yudao.module.ai.service.model.AiChatRoleService; |
| 13 | import io.swagger.v3.oas.annotations.Operation; | 11 | import io.swagger.v3.oas.annotations.Operation; |
| 14 | import io.swagger.v3.oas.annotations.Parameter; | 12 | import io.swagger.v3.oas.annotations.Parameter; |
| 15 | import io.swagger.v3.oas.annotations.tags.Tag; | 13 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 16 | import jakarta.annotation.Resource; | 14 | import jakarta.annotation.Resource; |
| 17 | -import jakarta.servlet.http.HttpServletResponse; | ||
| 18 | import jakarta.validation.Valid; | 15 | import jakarta.validation.Valid; |
| 19 | import org.springframework.security.access.prepost.PreAuthorize; | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 20 | import org.springframework.validation.annotation.Validated; | 17 | import org.springframework.validation.annotation.Validated; |
| 21 | import org.springframework.web.bind.annotation.*; | 18 | import org.springframework.web.bind.annotation.*; |
| 22 | 19 | ||
| 23 | -import java.io.IOException; | ||
| 24 | -import java.util.List; | ||
| 25 | - | ||
| 26 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 27 | 21 | ||
| 28 | @Tag(name = "管理后台 - AI 聊天角色") | 22 | @Tag(name = "管理后台 - AI 聊天角色") |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRolePageReqVO.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/chatRole/AiChatRolePageReqVO.java
| 1 | -package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; | 1 | +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole; |
| 2 | 2 | ||
| 3 | import lombok.*; | 3 | import lombok.*; |
| 4 | -import java.util.*; | ||
| 5 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | -import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | -import java.time.LocalDateTime; | ||
| 9 | - | ||
| 10 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | 6 | ||
| 12 | @Schema(description = "管理后台 - AI 聊天角色分页 Request VO") | 7 | @Schema(description = "管理后台 - AI 聊天角色分页 Request VO") |
| 13 | @Data | 8 | @Data |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleRespVO.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/chatRole/AiChatRoleRespVO.java
| 1 | -package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; | 1 | +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; | ||
| 4 | +import com.fhs.core.trans.anno.Trans; | ||
| 5 | +import com.fhs.core.trans.constant.TransType; | ||
| 6 | +import com.fhs.core.trans.vo.VO; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 7 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 8 | import lombok.Data; |
| 5 | 9 | ||
| @@ -7,7 +11,7 @@ import java.time.LocalDateTime; | @@ -7,7 +11,7 @@ import java.time.LocalDateTime; | ||
| 7 | 11 | ||
| 8 | @Schema(description = "管理后台 - AI 聊天角色 Response VO") | 12 | @Schema(description = "管理后台 - AI 聊天角色 Response VO") |
| 9 | @Data | 13 | @Data |
| 10 | -public class AiChatRoleRespVO { | 14 | +public class AiChatRoleRespVO implements VO { |
| 11 | 15 | ||
| 12 | @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32746") | 16 | @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32746") |
| 13 | private Long id; | 17 | private Long id; |
| @@ -16,7 +20,12 @@ public class AiChatRoleRespVO { | @@ -16,7 +20,12 @@ public class AiChatRoleRespVO { | ||
| 16 | private Long userId; | 20 | private Long userId; |
| 17 | 21 | ||
| 18 | @Schema(description = "模型编号", example = "17640") | 22 | @Schema(description = "模型编号", example = "17640") |
| 23 | + @Trans(type = TransType.SIMPLE, target = AiChatModelDO.class, fields = {"name", "model"}, refs = {"modelName", "model"}) | ||
| 19 | private Long modelId; | 24 | private Long modelId; |
| 25 | + @Schema(description = "模型名字", example = "张三") | ||
| 26 | + private String modelName; | ||
| 27 | + @Schema(description = "模型标识", example = "gpt-3.5-turbo-0125") | ||
| 28 | + private String model; | ||
| 20 | 29 | ||
| 21 | @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | 30 | @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") |
| 22 | private String name; | 31 | private String name; |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/role/AiChatRoleSaveReqVO.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/chatRole/AiChatRoleSaveReqVO.java
| 1 | -package cn.iocoder.yudao.module.ai.controller.admin.model.vo.role; | 1 | +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | import cn.iocoder.yudao.framework.common.validation.InEnum; | 4 | import cn.iocoder.yudao.framework.common.validation.InEnum; |
| 5 | import io.swagger.v3.oas.annotations.media.Schema; | 5 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | import lombok.*; | 6 | import lombok.*; |
| 7 | -import java.util.*; | ||
| 8 | import jakarta.validation.constraints.*; | 7 | import jakarta.validation.constraints.*; |
| 8 | +import org.hibernate.validator.constraints.URL; | ||
| 9 | 9 | ||
| 10 | @Schema(description = "管理后台 - AI 聊天角色新增/修改 Request VO") | 10 | @Schema(description = "管理后台 - AI 聊天角色新增/修改 Request VO") |
| 11 | @Data | 11 | @Data |
| @@ -23,6 +23,7 @@ public class AiChatRoleSaveReqVO { | @@ -23,6 +23,7 @@ public class AiChatRoleSaveReqVO { | ||
| 23 | 23 | ||
| 24 | @Schema(description = "角色头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") | 24 | @Schema(description = "角色头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") |
| 25 | @NotEmpty(message = "角色头像不能为空") | 25 | @NotEmpty(message = "角色头像不能为空") |
| 26 | + @URL(message = "角色头像必须是 URL 格式") | ||
| 26 | private String avatar; | 27 | private String avatar; |
| 27 | 28 | ||
| 28 | @Schema(description = "角色类别", requiredMode = Schema.RequiredMode.REQUIRED, example = "创作") | 29 | @Schema(description = "角色类别", requiredMode = Schema.RequiredMode.REQUIRED, example = "创作") |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/AiChatRoleMapper.java
| @@ -3,10 +3,9 @@ package cn.iocoder.yudao.module.ai.dal.mysql; | @@ -3,10 +3,9 @@ package cn.iocoder.yudao.module.ai.dal.mysql; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRolePageReqVO; | 6 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRolePageReqVO; |
| 7 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; | 7 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 8 | import org.apache.ibatis.annotations.Mapper; | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | -import org.springframework.stereotype.Repository; | ||
| 10 | 9 | ||
| 11 | /** | 10 | /** |
| 12 | * AI 聊天角色 Mapper | 11 | * AI 聊天角色 Mapper |
| @@ -21,7 +20,7 @@ public interface AiChatRoleMapper extends BaseMapperX<AiChatRoleDO> { | @@ -21,7 +20,7 @@ public interface AiChatRoleMapper extends BaseMapperX<AiChatRoleDO> { | ||
| 21 | .likeIfPresent(AiChatRoleDO::getName, reqVO.getName()) | 20 | .likeIfPresent(AiChatRoleDO::getName, reqVO.getName()) |
| 22 | .eqIfPresent(AiChatRoleDO::getCategory, reqVO.getCategory()) | 21 | .eqIfPresent(AiChatRoleDO::getCategory, reqVO.getCategory()) |
| 23 | .eqIfPresent(AiChatRoleDO::getPublicStatus, reqVO.getPublicStatus()) | 22 | .eqIfPresent(AiChatRoleDO::getPublicStatus, reqVO.getPublicStatus()) |
| 24 | - .orderByDesc(AiChatRoleDO::getId)); | 23 | + .orderByAsc(AiChatRoleDO::getSort)); |
| 25 | } | 24 | } |
| 26 | 25 | ||
| 27 | } | 26 | } |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiChatModelServiceImpl.java
| @@ -95,8 +95,7 @@ public class AiChatModelServiceImpl implements AiChatModelService { | @@ -95,8 +95,7 @@ public class AiChatModelServiceImpl implements AiChatModelService { | ||
| 95 | 95 | ||
| 96 | @Override | 96 | @Override |
| 97 | public List<AiChatModelDO> getChatModelList(Integer status) { | 97 | public List<AiChatModelDO> getChatModelList(Integer status) { |
| 98 | - chatModelMapper.selectList(status); | ||
| 99 | - return null; | 98 | + return chatModelMapper.selectList(status); |
| 100 | } | 99 | } |
| 101 | 100 | ||
| 102 | @Override | 101 | @Override |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiChatRoleService.java
| 1 | package cn.iocoder.yudao.module.ai.service.model; | 1 | package cn.iocoder.yudao.module.ai.service.model; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRolePageReqVO; | ||
| 5 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleSaveReqVO; | 4 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRolePageReqVO; |
| 5 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveReqVO; | ||
| 6 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; | 6 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 7 | import jakarta.validation.Valid; | 7 | import jakarta.validation.Valid; |
| 8 | 8 |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiChatRoleServiceImpl.java
| 1 | package cn.iocoder.yudao.module.ai.service.model; | 1 | package cn.iocoder.yudao.module.ai.service.model; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 7 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRolePageReqVO; | ||
| 8 | -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.role.AiChatRoleSaveReqVO; | 6 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRolePageReqVO; |
| 7 | +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveReqVO; | ||
| 9 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; | 8 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 10 | import cn.iocoder.yudao.module.ai.dal.mysql.AiChatRoleMapper; | 9 | import cn.iocoder.yudao.module.ai.dal.mysql.AiChatRoleMapper; |
| 11 | import jakarta.annotation.Resource; | 10 | import jakarta.annotation.Resource; |