diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModelController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModelController.java index 16da3a7ac..010d143cc 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModelController.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiChatModelController.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelAddReqVO; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListReqVO; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListRespVO; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelUpdateReqVO; import cn.iocoder.yudao.module.ai.service.AiChatModelService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -46,9 +47,8 @@ public class AiChatModelController { @Operation(summary = "ai模型 - 修改") @PostMapping("/update") - public CommonResult update(@RequestParam("id") Long id, - @RequestBody @Validated AiChatModelAddReqVO req) { - aiChatModelService.update(id, req); + public CommonResult update(@RequestBody @Validated AiChatModelUpdateReqVO req) { + aiChatModelService.update(req); return CommonResult.success(null); } diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelListRespVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelListRespVO.java index 8a2bc5bc3..59a8900a6 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelListRespVO.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelListRespVO.java @@ -1,5 +1,9 @@ package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; +import cn.iocoder.yudao.framework.ai.AiPlatformEnum; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiApiKeyDO; +import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; @@ -15,27 +19,36 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class AiChatModelListRespVO { - @Schema(description = "id") + @Schema(description = "编号") private Long id; - @Schema(description = "模型平台 参考 AiPlatformEnum") - private String platform; + @Schema(description = "API 秘钥编号") + private Long keyId; - @Schema(description = "模型类型 参考 YiYanChatModel、XingHuoChatModel") - private String modal; - - @Schema(description = "模型名字") + @Schema(description = "模型名称") private String name; - @Schema(description = "模型照片") - private String image; + @Schema(description = "模型标志") + private String model; - @Schema(description = "禁用 0、正常 1、禁用") - private Integer disable; + @Schema(description = "平台") + private String platform; - @Schema(description = "排序 asc 排序") + @Schema(description = "排序值") private Integer sort; - @Schema(description = "modal 配置") - private String config; + @Schema(description = "状态") + private Integer status; + + // ========== 会话配置 ========== + + @Schema(description = "温度参数") + private Double temperature; + + @Schema(description = "单条回复的最大 Token 数量") + private Integer maxTokens; + + @Schema(description = "上下文的最大 Message 数量") + private Integer maxContexts; + } diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelUpdateReqVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelUpdateReqVO.java new file mode 100644 index 000000000..577e998e9 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiChatModelUpdateReqVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * ai chat modal + * + * @author fansili + * @time 2024/4/24 19:47 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiChatModelUpdateReqVO { + + @Schema(description = "编号") + @NotNull(message = "编号不能为空") + private Long id; + + @Schema(description = "API 秘钥编号") + @NotNull(message = "API 秘钥编号不能为空!") + private Long keyId; + + @Schema(description = "模型名字") + @Size(max = 60, message = "模型名字最大60个字符") + @NotNull(message = "模型名字不能为空!") + private String name; + + @Schema(description = "模型类型(qianwen、yiyan、xinghuo、openai)") + @Size(max = 32, message = "模型类型最大32个字符") + @NotNull(message = "model模型不能为空!") + private String model; + + @Size(max = 32, message = "模型平台最大32个字符") + @Schema(description = "模型平台 参考 AiPlatformEnum") + @NotNull(message = "平台不能为空!") + private String platform; + + @Schema(description = "排序") + @NotNull(message = "sort排序不能为空!") + private Integer sort; + + // ========== 会话配置 ========== + + @Schema(description = "温度参数") + private Integer temperature; + + @Schema(description = "单条回复的最大 Token 数量") + private Integer maxTokens; + + @Schema(description = "上下文的最大 Message 数量") + private Integer maxContexts; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModelConvert.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModelConvert.java index 666f7a23b..d6d57b5ef 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModelConvert.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiChatModelConvert.java @@ -1,8 +1,9 @@ package cn.iocoder.yudao.module.ai.convert; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRespVO; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelAddReqVO; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListRespVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRespVO; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelUpdateReqVO; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -37,6 +38,13 @@ public interface AiChatModelConvert { */ AiChatModelDO convertAiChatModalDO(AiChatModelAddReqVO req); + /** + * 转换 - AiChatModalDO + * + * @param req + * @return + */ + AiChatModelDO convertAiChatModalDO(AiChatModelUpdateReqVO req); /** * 转换 - AiChatModalRes diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiChatModelDO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiChatModelDO.java index 420de6fe1..8c86127c3 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiChatModelDO.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiChatModelDO.java @@ -75,6 +75,6 @@ public class AiChatModelDO extends BaseDO { /** * 上下文的最大 Message 数量 */ - private Integer i; + private Integer maxContexts; } diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModelService.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModelService.java index b685d2694..07a902dd8 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModelService.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModelService.java @@ -1,10 +1,7 @@ package cn.iocoder.yudao.module.ai.service; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelAddReqVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListReqVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListRespVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRespVO; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.*; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; /** @@ -34,10 +31,9 @@ public interface AiChatModelService { /** * ai modal - 更新 * - * @param id * @param req */ - void update(Long id, AiChatModelAddReqVO req); + void update(AiChatModelUpdateReqVO req); /** * ai modal - 删除 diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java index 7a40846a4..c831ab723 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java @@ -8,10 +8,7 @@ import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.ai.ErrorCodeConstants; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelAddReqVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListReqVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModelListRespVO; -import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiChatModalRespVO; +import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.*; import cn.iocoder.yudao.module.ai.convert.AiChatModelConvert; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; import cn.iocoder.yudao.module.ai.dal.mysql.AiChatModelMapper; @@ -70,14 +67,14 @@ public class AiChatModalServiceImpl implements AiChatModelService { } @Override - public void update(Long id, AiChatModelAddReqVO req) { + public void update(AiChatModelUpdateReqVO req) { // 校验 platform validatePlatform(req.getPlatform()); // 校验模型是否存在 - validateExists(id); + validateExists(req.getId()); // 转换 updateChatModalDO AiChatModelDO updateChatModalDO = AiChatModelConvert.INSTANCE.convertAiChatModalDO(req); - updateChatModalDO.setId(id); + updateChatModalDO.setId(req.getId()); // 更新数据库 aiChatModelMapper.updateById(updateChatModalDO); }