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 | 78 | @Parameter(name = "status", description = "状态", required = true, example = "1") |
| 79 | 79 | public CommonResult<List<AiChatModelRespVO>> getChatModelSimpleList(@RequestParam("status") Integer status) { |
| 80 | 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 | 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 | 1 | package cn.iocoder.yudao.module.ai.controller.admin.model; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; | |
| 4 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 6 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | 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 | 9 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 12 | 10 | import cn.iocoder.yudao.module.ai.service.model.AiChatRoleService; |
| 13 | 11 | import io.swagger.v3.oas.annotations.Operation; |
| 14 | 12 | import io.swagger.v3.oas.annotations.Parameter; |
| 15 | 13 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 16 | 14 | import jakarta.annotation.Resource; |
| 17 | -import jakarta.servlet.http.HttpServletResponse; | |
| 18 | 15 | import jakarta.validation.Valid; |
| 19 | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 20 | 17 | import org.springframework.validation.annotation.Validated; |
| 21 | 18 | import org.springframework.web.bind.annotation.*; |
| 22 | 19 | |
| 23 | -import java.io.IOException; | |
| 24 | -import java.util.List; | |
| 25 | - | |
| 26 | 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 27 | 21 | |
| 28 | 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 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 5 | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | 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 | 7 | @Schema(description = "管理后台 - AI 聊天角色分页 Request VO") |
| 13 | 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 | 7 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 8 | import lombok.Data; |
| 5 | 9 | |
| ... | ... | @@ -7,7 +11,7 @@ import java.time.LocalDateTime; |
| 7 | 11 | |
| 8 | 12 | @Schema(description = "管理后台 - AI 聊天角色 Response VO") |
| 9 | 13 | @Data |
| 10 | -public class AiChatRoleRespVO { | |
| 14 | +public class AiChatRoleRespVO implements VO { | |
| 11 | 15 | |
| 12 | 16 | @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32746") |
| 13 | 17 | private Long id; |
| ... | ... | @@ -16,7 +20,12 @@ public class AiChatRoleRespVO { |
| 16 | 20 | private Long userId; |
| 17 | 21 | |
| 18 | 22 | @Schema(description = "模型编号", example = "17640") |
| 23 | + @Trans(type = TransType.SIMPLE, target = AiChatModelDO.class, fields = {"name", "model"}, refs = {"modelName", "model"}) | |
| 19 | 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 | 30 | @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") |
| 22 | 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 | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.validation.InEnum; |
| 5 | 5 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | 6 | import lombok.*; |
| 7 | -import java.util.*; | |
| 8 | 7 | import jakarta.validation.constraints.*; |
| 8 | +import org.hibernate.validator.constraints.URL; | |
| 9 | 9 | |
| 10 | 10 | @Schema(description = "管理后台 - AI 聊天角色新增/修改 Request VO") |
| 11 | 11 | @Data |
| ... | ... | @@ -23,6 +23,7 @@ public class AiChatRoleSaveReqVO { |
| 23 | 23 | |
| 24 | 24 | @Schema(description = "角色头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") |
| 25 | 25 | @NotEmpty(message = "角色头像不能为空") |
| 26 | + @URL(message = "角色头像必须是 URL 格式") | |
| 26 | 27 | private String avatar; |
| 27 | 28 | |
| 28 | 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 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | 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 | 7 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | -import org.springframework.stereotype.Repository; | |
| 10 | 9 | |
| 11 | 10 | /** |
| 12 | 11 | * AI 聊天角色 Mapper |
| ... | ... | @@ -21,7 +20,7 @@ public interface AiChatRoleMapper extends BaseMapperX<AiChatRoleDO> { |
| 21 | 20 | .likeIfPresent(AiChatRoleDO::getName, reqVO.getName()) |
| 22 | 21 | .eqIfPresent(AiChatRoleDO::getCategory, reqVO.getCategory()) |
| 23 | 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 | 95 | |
| 96 | 96 | @Override |
| 97 | 97 | public List<AiChatModelDO> getChatModelList(Integer status) { |
| 98 | - chatModelMapper.selectList(status); | |
| 99 | - return null; | |
| 98 | + return chatModelMapper.selectList(status); | |
| 100 | 99 | } |
| 101 | 100 | |
| 102 | 101 | @Override | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiChatRoleService.java
| 1 | 1 | package cn.iocoder.yudao.module.ai.service.model; |
| 2 | 2 | |
| 3 | 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 | 6 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 7 | 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 | 1 | package cn.iocoder.yudao.module.ai.service.model; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 5 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 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 | 8 | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO; |
| 10 | 9 | import cn.iocoder.yudao.module.ai.dal.mysql.AiChatRoleMapper; |
| 11 | 10 | import jakarta.annotation.Resource; | ... | ... |