Commit 410893bc2978ddb50976cc8ba3500a1ebf4ecdf0

Authored by cherishsince
1 parent c75e415b

chat角色增加,角色列表

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/ChatRoleConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.convert;
  2 +
  3 +import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatRoleDO;
  4 +import cn.iocoder.yudao.module.ai.vo.ChatRoleListRes;
  5 +import org.mapstruct.Mapper;
  6 +import org.mapstruct.factory.Mappers;
  7 +
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 聊天 对话 convert
  12 + *
  13 + * @author fansili
  14 + * @time 2024/4/18 16:39
  15 + * @since 1.0
  16 + */
  17 +@Mapper
  18 +public interface ChatRoleConvert {
  19 +
  20 + ChatRoleConvert INSTANCE = Mappers.getMapper(ChatRoleConvert.class);
  21 +
  22 + /**
  23 + * 转换 - ChatRoleListRes
  24 + *
  25 + * @param roleList
  26 + * @return
  27 + */
  28 + List<ChatRoleListRes> convertChatRoleListRes(List<AiChatRoleDO> roleList);
  29 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/ChatRoleService.java
1 package cn.iocoder.yudao.module.ai.service; 1 package cn.iocoder.yudao.module.ai.service;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.ai.vo.*; 5 import cn.iocoder.yudao.module.ai.vo.*;
5 6
  7 +import java.util.List;
  8 +
6 /** 9 /**
7 * chat 角色 10 * chat 角色
8 * 11 *
@@ -17,7 +20,7 @@ public interface ChatRoleService { @@ -17,7 +20,7 @@ public interface ChatRoleService {
17 * @param req 20 * @param req
18 * @return 21 * @return
19 */ 22 */
20 - CommonResult<ChatRoleListRes> list(ChatRoleListReq req); 23 + PageResult<ChatRoleListRes> list(ChatRoleListReq req);
21 24
22 /** 25 /**
23 * chat角色 - 添加 26 * chat角色 - 添加
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/ChatRoleServiceImpl.java
1 package cn.iocoder.yudao.module.ai.service.impl; 1 package cn.iocoder.yudao.module.ai.service.impl;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 +import cn.hutool.core.util.StrUtil;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.ai.convert.ChatRoleConvert;
  7 +import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatRoleDO;
  8 +import cn.iocoder.yudao.module.ai.mapper.AiChatRoleMapper;
4 import cn.iocoder.yudao.module.ai.service.ChatRoleService; 9 import cn.iocoder.yudao.module.ai.service.ChatRoleService;
5 import cn.iocoder.yudao.module.ai.vo.*; 10 import cn.iocoder.yudao.module.ai.vo.*;
6 import lombok.AllArgsConstructor; 11 import lombok.AllArgsConstructor;
7 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
8 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
9 14
  15 +import java.util.List;
  16 +
10 /** 17 /**
11 * chat 角色 18 * chat 角色
12 * 19 *
@@ -18,10 +25,25 @@ import org.springframework.stereotype.Service; @@ -18,10 +25,25 @@ import org.springframework.stereotype.Service;
18 @Slf4j 25 @Slf4j
19 public class ChatRoleServiceImpl implements ChatRoleService { 26 public class ChatRoleServiceImpl implements ChatRoleService {
20 27
  28 + private final AiChatRoleMapper aiChatRoleMapper;
21 29
22 @Override 30 @Override
23 - public CommonResult<ChatRoleListRes> list(ChatRoleListReq req) {  
24 - return null; 31 + public PageResult<ChatRoleListRes> list(ChatRoleListReq req) {
  32 + // 查询条件
  33 + LambdaQueryWrapperX<AiChatRoleDO> queryWrapperX = new LambdaQueryWrapperX<>();
  34 + // search 查询
  35 + if (!StrUtil.isBlank(req.getSearch())) {
  36 + queryWrapperX.eq(AiChatRoleDO::getRoleName, req.getSearch());
  37 + }
  38 + // 默认排序id desc
  39 + queryWrapperX.orderByDesc(AiChatRoleDO::getId);
  40 + //
  41 + PageResult<AiChatRoleDO> aiChatRoleDOPageResult = aiChatRoleMapper.selectPage(req, queryWrapperX);
  42 + Long total = aiChatRoleDOPageResult.getTotal();
  43 + List<AiChatRoleDO> roleList = aiChatRoleDOPageResult.getList();
  44 + // 换货res
  45 + List<ChatRoleListRes> chatRoleListResList = ChatRoleConvert.INSTANCE.convertChatRoleListRes(roleList);
  46 + return new PageResult<>(chatRoleListResList, total);
25 } 47 }
26 48
27 @Override 49 @Override
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/ChatRoleAddReq.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.ai.vo; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.ai.vo;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
  5 +import jakarta.validation.constraints.NotNull;
5 import lombok.Data; 6 import lombok.Data;
6 import lombok.experimental.Accessors; 7 import lombok.experimental.Accessors;
7 8
@@ -15,6 +16,39 @@ import lombok.experimental.Accessors; @@ -15,6 +16,39 @@ import lombok.experimental.Accessors;
15 @Accessors(chain = true) 16 @Accessors(chain = true)
16 public class ChatRoleAddReq extends PageParam { 17 public class ChatRoleAddReq extends PageParam {
17 18
18 - @Schema(description = "查询")  
19 - private String search; 19 + @NotNull
  20 + @Schema(description = "模型编号,关联到角色使用的特定模型")
  21 + private String modelId;
  22 +
  23 + @NotNull
  24 + @Schema(description = "角色名,角色的显示名称")
  25 + private String roleName;
  26 +
  27 + @NotNull
  28 + @Schema(description = "角色介绍,详细描述角色的功能或用途")
  29 + private String roleIntroduce;
  30 +
  31 + @NotNull
  32 + @Schema(description = "角色来源,如 system(系统预置)、customer(用户自定义)")
  33 + private String roleSource;
  34 +
  35 + @NotNull
  36 + @Schema(description = "分类,角色所属的类别,如娱乐、创作等")
  37 + private String classify;
  38 +
  39 + @NotNull
  40 + @Schema(description = "发布状态,0表示仅自己可见,1表示公开,2表示禁用")
  41 + private String visibility;
  42 +
  43 + @NotNull
  44 + @Schema(description = "生成时的Top-K采样候选集大小")
  45 + private Double topK;
  46 +
  47 + @NotNull
  48 + @Schema(description = "生成时使用的核采样方法的概率阈值")
  49 + private Double topP;
  50 +
  51 + @NotNull
  52 + @Schema(description = "用于控制随机性和多样性的温度参数")
  53 + private Double temperature;
20 } 54 }
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/ChatRoleListRes.java
1 package cn.iocoder.yudao.module.ai.vo; 1 package cn.iocoder.yudao.module.ai.vo;
2 2
  3 +import io.swagger.v3.oas.annotations.media.Schema;
3 import lombok.Data; 4 import lombok.Data;
4 import lombok.experimental.Accessors; 5 import lombok.experimental.Accessors;
5 6
@@ -12,4 +13,40 @@ import lombok.experimental.Accessors; @@ -12,4 +13,40 @@ import lombok.experimental.Accessors;
12 @Data 13 @Data
13 @Accessors(chain = true) 14 @Accessors(chain = true)
14 public class ChatRoleListRes { 15 public class ChatRoleListRes {
  16 +
  17 + @Schema(description = "id")
  18 + private Long id;
  19 +
  20 + @Schema(description = "用户id")
  21 + private Long userId;
  22 +
  23 + @Schema(description = "模型id")
  24 + private String modelId;
  25 +
  26 + @Schema(description = "角色名字")
  27 + private String roleName;
  28 +
  29 + @Schema(description = "角色介绍,详细描述角色的功能或用途")
  30 + private String roleIntroduce;
  31 +
  32 + @Schema(description = "角色来源,如 system(系统预置)、customer(用户自定义)")
  33 + private String roleSource;
  34 +
  35 + @Schema(description = "分类,角色所属的类别,如娱乐、创作等")
  36 + private String classify;
  37 +
  38 + @Schema(description = "发布状态,0表示仅自己可见,1表示公开,2表示禁用")
  39 + private String visibility;
  40 +
  41 + @Schema(description = "生成时的Top-K采样候选集大小")
  42 + private Double topK;
  43 +
  44 + @Schema(description = "生成时使用的核采样方法的概率阈值")
  45 + private Double topP;
  46 +
  47 + @Schema(description = "用于控制随机性和多样性的温度参数")
  48 + private Double temperature;
  49 +
  50 + @Schema(description = "角色的使用次数统计")
  51 + private Integer useCount;
15 } 52 }