From 2b7e7763bfea8083320425e82fe807949e67356f Mon Sep 17 00:00:00 2001 From: cherishsince Date: Mon, 6 May 2024 17:11:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E8=B0=83=E6=95=B4=E3=80=91=E6=A0=B9?= =?UTF-8?q?=E6=8D=AEapi=E8=B0=83=E6=95=B4ai=E8=A7=92=E8=89=B2=EF=BC=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AF=B9modal=E5=85=B3=E8=81=94=20=E5=92=8C?= =?UTF-8?q?=20modal=20topK=20=E7=9B=B8=E5=85=B3=E8=AE=BE=E7=BD=AE=E3=80=82?= =?UTF-8?q?=E7=AE=80=E5=8D=95=E6=94=B9=E4=B8=BA=E5=8F=AA=E6=98=AF=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E8=A7=92=E8=89=B2=E7=9A=84=E9=A2=84=E8=AE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ityEnum.java => AiChatRoleEnableEnum.java} | 10 +++--- .../module/ai/enums/AiChatRoleSourceEnum.java | 36 ------------------- .../ai/controller/AiChatRoleController.java | 8 ++--- .../ai/dal/dataobject/AiChatRoleDO.java | 33 +++-------------- .../module/ai/service/AiChatRoleService.java | 2 +- .../impl/AiChatConversationServiceImpl.java | 2 +- .../service/impl/AiChatRoleServiceImpl.java | 17 ++++----- .../yudao/module/ai/vo/AiChatRoleAddReq.java | 28 +++------------ .../yudao/module/ai/vo/AiChatRoleListRes.java | 23 +++--------- .../module/ai/vo/AiChatRoleUpdateReq.java | 28 +++------------ .../ai/vo/AiChatRoleUpdateVisibilityReq.java | 4 +-- .../src/main/resources/http/chat-role.http | 26 +++++--------- 12 files changed, 45 insertions(+), 172 deletions(-) rename yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/{AiChatRoleVisibilityEnum.java => AiChatRoleEnableEnum.java} (64%) delete mode 100644 yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleSourceEnum.java diff --git a/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleVisibilityEnum.java b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleEnableEnum.java similarity index 64% rename from yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleVisibilityEnum.java rename to yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleEnableEnum.java index ec7a19a2c..81b29c0e5 100644 --- a/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleVisibilityEnum.java +++ b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleEnableEnum.java @@ -12,10 +12,10 @@ import lombok.Getter; */ @AllArgsConstructor @Getter -public enum AiChatRoleVisibilityEnum { +public enum AiChatRoleEnableEnum { - PUBLIC("public", "公开"), - PRIVATE("private", "私有的"), + OPEN("open", "公开"), + CLOSE("close", "关闭"), ; @@ -24,8 +24,8 @@ public enum AiChatRoleVisibilityEnum { private String name; - public static AiChatRoleVisibilityEnum valueOfType(String type) { - for (AiChatRoleVisibilityEnum itemEnum : AiChatRoleVisibilityEnum.values()) { + public static AiChatRoleEnableEnum valueOfType(String type) { + for (AiChatRoleEnableEnum itemEnum : AiChatRoleEnableEnum.values()) { if (itemEnum.getType().equals(type)) { return itemEnum; } diff --git a/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleSourceEnum.java b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleSourceEnum.java deleted file mode 100644 index 94b004456..000000000 --- a/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleSourceEnum.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.iocoder.yudao.module.ai.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * chat角色 source - * - * @author fansili - * @time 2024/4/24 16:37 - * @since 1.0 - */ -@AllArgsConstructor -@Getter -public enum AiChatRoleSourceEnum { - - SYSTEM("system", "系统"), - CUSTOMER("customer", "用户自定义"), - - - ; - - private String type; - - private String name; - - - public static AiChatRoleSourceEnum valueOfType(String type) { - for (AiChatRoleSourceEnum itemEnum : AiChatRoleSourceEnum.values()) { - if (itemEnum.getType().equals(type)) { - return itemEnum; - } - } - throw new IllegalArgumentException("Invalid MessageType value: " + type); - } -} 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 index 137b8bfa4..2b459cdcb 100644 --- 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 @@ -48,10 +48,10 @@ public class AiChatRoleController { } @Operation(summary = "chat角色 - 修改可见性") - @PostMapping("/role/{id}/update-visibility") - public CommonResult updateVisibility(@PathVariable("id") Long id, - @Validated @RequestBody AiChatRoleUpdateVisibilityReq req) { - chatRoleService.updateVisibility(id, req); + @PostMapping("/role/{id}/update-enable") + public CommonResult updateEnable(@PathVariable("id") Long id, + @Validated @RequestBody AiChatRoleUpdateVisibilityReq req) { + chatRoleService.updateEnable(id, req); return CommonResult.success(null); } diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/AiChatRoleDO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/AiChatRoleDO.java index 4683a81fa..8ceb886e4 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/AiChatRoleDO.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/AiChatRoleDO.java @@ -28,25 +28,15 @@ public class AiChatRoleDO extends BaseDO { */ private Long userId; - /** - * 模型编号,关联到角色使用的特定模型 - */ - private String modelId; - /** * 角色名,角色的显示名称 */ - private String roleName; + private String name; /** * 角色介绍,详细描述角色的功能或用途 */ - private String roleIntroduce; - - /** - * 角色来源,如 system(系统预置)、customer(用户自定义) - */ - private String roleSource; + private String introduce; /** * 分类,角色所属的类别,如娱乐、创作等 @@ -54,24 +44,9 @@ public class AiChatRoleDO extends BaseDO { private String classify; /** - * 发布状态,private 表示仅自己可见,public表示公开,disable表示禁用 + * 是否开启 open、close */ - private String visibility; - - /** - * 生成时的Top-K采样候选集大小 - */ - private Double topK; - - /** - * 生成时使用的核采样方法的概率阈值 - */ - private Double topP; - - /** - * 用于控制随机性和多样性的温度参数 - */ - private Double temperature; + private String enable; /** * 角色的使用次数统计 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 d3bd201e9..f0bab1a16 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 @@ -42,7 +42,7 @@ public interface AiChatRoleService { * @param id * @param req */ - void updateVisibility(Long id, AiChatRoleUpdateVisibilityReq req); + void updateEnable(Long id, AiChatRoleUpdateVisibilityReq req); /** * chat角色 - 删除 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 8e6a520c7..bc657b855 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 @@ -65,7 +65,7 @@ public class AiChatConversationServiceImpl implements AiChatConversationService AiChatRoleDO aiChatRoleDO = aiChatRoleMapper.selectById(req.getChatRoleId()); // 创建新的 Conversation AiChatConversationDO insertConversation = saveConversation(req.getTitle(), loginUserId, - req.getChatRoleId(), aiChatRoleDO.getRoleName(), AiChatConversationTypeEnum.ROLE_CHAT); + req.getChatRoleId(), aiChatRoleDO.getName(), AiChatConversationTypeEnum.ROLE_CHAT); // 转换 res return AiChatConversationConvert.INSTANCE.covnertChatConversationRes(insertConversation); } 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 870168e2a..3ca9375b3 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 @@ -9,8 +9,7 @@ import cn.iocoder.yudao.module.ai.ErrorCodeConstants; import cn.iocoder.yudao.module.ai.convert.AiChatRoleConvert; import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatRoleDO; import cn.iocoder.yudao.module.ai.enums.AiChatRoleClassifyEnum; -import cn.iocoder.yudao.module.ai.enums.AiChatRoleSourceEnum; -import cn.iocoder.yudao.module.ai.enums.AiChatRoleVisibilityEnum; +import cn.iocoder.yudao.module.ai.enums.AiChatRoleEnableEnum; import cn.iocoder.yudao.module.ai.mapper.AiChatRoleMapper; import cn.iocoder.yudao.module.ai.service.AiChatRoleService; import cn.iocoder.yudao.module.ai.vo.*; @@ -39,7 +38,7 @@ public class AiChatRoleServiceImpl implements AiChatRoleService { LambdaQueryWrapperX queryWrapperX = new LambdaQueryWrapperX<>(); // search 查询 if (!StrUtil.isBlank(req.getSearch())) { - queryWrapperX.eq(AiChatRoleDO::getRoleName, req.getSearch()); + queryWrapperX.eq(AiChatRoleDO::getName, req.getSearch()); } // 默认排序id desc queryWrapperX.orderByDesc(AiChatRoleDO::getId); @@ -56,8 +55,7 @@ public class AiChatRoleServiceImpl implements AiChatRoleService { public void add(AiChatRoleAddReq req) { // 转换enum,并校验enum AiChatRoleClassifyEnum.valueOfClassify(req.getClassify()); - AiChatRoleVisibilityEnum.valueOfType(req.getVisibility()); - AiChatRoleSourceEnum.valueOfType(req.getRoleSource()); + AiChatRoleEnableEnum.valueOfType(req.getEnable()); // 转换do AiChatRoleDO insertAiChatRoleDO = AiChatRoleConvert.INSTANCE.convertAiChatRoleDO(req); insertAiChatRoleDO.setUserId(SecurityFrameworkUtils.getLoginUserId()); @@ -70,8 +68,7 @@ public class AiChatRoleServiceImpl implements AiChatRoleService { public void update(Long id, AiChatRoleUpdateReq req) { // 转换enum,并校验enum AiChatRoleClassifyEnum.valueOfClassify(req.getClassify()); - AiChatRoleVisibilityEnum.valueOfType(req.getVisibility()); - AiChatRoleSourceEnum.valueOfType(req.getRoleSource()); + AiChatRoleEnableEnum.valueOfType(req.getEnable()); // 检查角色是否存在 validateChatRoleExists(id); // 转换do @@ -82,15 +79,15 @@ public class AiChatRoleServiceImpl implements AiChatRoleService { @Override - public void updateVisibility(Long id, AiChatRoleUpdateVisibilityReq req) { + public void updateEnable(Long id, AiChatRoleUpdateVisibilityReq req) { // 转换enum,并校验enum - AiChatRoleVisibilityEnum.valueOfType(req.getVisibility()); + AiChatRoleEnableEnum.valueOfType(req.getEnable()); // 检查角色是否存在 validateChatRoleExists(id); // 更新 aiChatRoleMapper.updateById(new AiChatRoleDO() .setId(id) - .setVisibility(req.getVisibility()) + .setEnable(req.getEnable()) ); } 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 index 63342c61b..15a803458 100644 --- 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 @@ -16,39 +16,19 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class AiChatRoleAddReq extends PageParam { - @NotNull - @Schema(description = "模型编号,关联到角色使用的特定模型") - private String modelId; - @NotNull @Schema(description = "角色名,角色的显示名称") - private String roleName; + private String name; @NotNull @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String roleIntroduce; - - @NotNull - @Schema(description = "角色来源,如 system(系统预置)、customer(用户自定义)") - private String roleSource; + private String introduce; @NotNull @Schema(description = "分类,角色所属的类别,如娱乐、创作等") private String classify; @NotNull - @Schema(description = "发布状态,private 表示仅自己可见,public表示公开,disable表示禁用\n") - private String visibility; - - @NotNull - @Schema(description = "生成时的Top-K采样候选集大小") - private Double topK; - - @NotNull - @Schema(description = "生成时使用的核采样方法的概率阈值") - private Double topP; - - @NotNull - @Schema(description = "用于控制随机性和多样性的温度参数") - private Double temperature; + @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/AiChatRoleListRes.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatRoleListRes.java index 8f582cc58..e018c43a2 100644 --- 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 @@ -20,32 +20,17 @@ public class AiChatRoleListRes { @Schema(description = "用户id") private Long userId; - @Schema(description = "模型id") - private String modelId; - @Schema(description = "角色名字") - private String roleName; + private String name; @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String roleIntroduce; - - @Schema(description = "角色来源,如 system(系统预置)、customer(用户自定义)") - private String roleSource; + private String introduce; @Schema(description = "分类,角色所属的类别,如娱乐、创作等") private String classify; - @Schema(description = "发布状态,0表示仅自己可见,1表示公开,2表示禁用") - private String visibility; - - @Schema(description = "生成时的Top-K采样候选集大小") - private Double topK; - - @Schema(description = "生成时使用的核采样方法的概率阈值") - private Double topP; - - @Schema(description = "用于控制随机性和多样性的温度参数") - private Double temperature; + @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 index c6197f8d4..707c015f6 100644 --- 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 @@ -16,39 +16,19 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class AiChatRoleUpdateReq extends PageParam { - @NotNull - @Schema(description = "模型编号,关联到角色使用的特定模型") - private String modelId; - @NotNull @Schema(description = "角色名,角色的显示名称") - private String roleName; + private String name; @NotNull @Schema(description = "角色介绍,详细描述角色的功能或用途") - private String roleIntroduce; - - @NotNull - @Schema(description = "角色来源,如 system(系统预置)、customer(用户自定义)") - private String roleSource; + private String introduce; @NotNull @Schema(description = "分类,角色所属的类别,如娱乐、创作等") private String classify; @NotNull - @Schema(description = "发布状态,0表示仅自己可见,1表示公开,2表示禁用") - private String visibility; - - @NotNull - @Schema(description = "生成时的Top-K采样候选集大小") - private Double topK; - - @NotNull - @Schema(description = "生成时使用的核采样方法的概率阈值") - private Double topP; - - @NotNull - @Schema(description = "用于控制随机性和多样性的温度参数") - private Double temperature; + @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 index d0d216b24..52685eb66 100644 --- 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 @@ -17,6 +17,6 @@ import lombok.experimental.Accessors; public class AiChatRoleUpdateVisibilityReq extends PageParam { @NotNull - @Schema(description = "发布状态,0表示仅自己可见,1表示公开,2表示禁用") - private String visibility; + @Schema(description = "开启状态 open、close") + private String enable; } diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/resources/http/chat-role.http b/yudao-module-ai/yudao-module-ai-biz/src/main/resources/http/chat-role.http index ae7e42c8f..8cbf517ba 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/resources/http/chat-role.http +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/resources/http/chat-role.http @@ -11,41 +11,33 @@ Authorization: {{token}} { "modelId": 1, - "roleName": "小红书写作v1", - "roleIntroduce": "采用gpt3.5模型,拥有小红书优质作者写作经验。", - "roleSource": "system", + "name": "小红书写作v1", + "introduce": "采用gpt3.5模型,拥有小红书优质作者写作经验。", "classify": "writing", - "visibility": "public", - "topK": 0.2, - "topP": 0.4, - "temperature": 0.7 + "enable": "open" } ### chat update -POST {{baseUrl}}/ai/chat/role/1 +POST {{baseUrl}}/ai/chat/role/6 Content-Type: application/json Authorization: {{token}} { "modelId": 1, - "roleName": "小红书写作v1---hh😄", - "roleIntroduce": "采用gpt3.5模型,拥有小红书优质作者写作经验。", - "roleSource": "system", + "name": "小红书写作v1---hh😄", + "introduce": "采用gpt3.5模型,拥有小红书优质作者写作经验。", "classify": "writing", - "visibility": "public", - "topK": 0.2, - "topP": 0.4, - "temperature": 0.7 + "enable": "close" } ### chat update -POST {{baseUrl}}/ai/chat/role/1/update-visibility +POST {{baseUrl}}/ai/chat/role/6/update-visibility Content-Type: application/json Authorization: {{token}} { - "visibility": "private" + "enable": "open" }