Commit 31453e19d4a33296cae0395d5545391bb56b8ee2

Authored by YunaiV
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&lt;AiChatRoleDO&gt; {
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;
... ...