Commit 2fde9b124d6675c02635933d25b4b1d6ae2c73ec

Authored by cherishsince
1 parent 9e412ffe

增加ai modal(查询列表)

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/AiChatModalController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.controller;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.ai.service.AiChatModalService;
  6 +import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq;
  7 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListReq;
  8 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes;
  9 +import io.swagger.v3.oas.annotations.Operation;
  10 +import io.swagger.v3.oas.annotations.tags.Tag;
  11 +import lombok.AllArgsConstructor;
  12 +import lombok.extern.slf4j.Slf4j;
  13 +import org.springframework.validation.annotation.Validated;
  14 +import org.springframework.web.bind.annotation.*;
  15 +import org.springframework.web.multipart.MultipartFile;
  16 +
  17 +/**
  18 + * ai 模型
  19 + *
  20 + * @author fansili
  21 + * @time 2024/4/24 19:42
  22 + * @since 1.0
  23 + */
  24 +@Tag(name = "A6-AI模型")
  25 +@RestController
  26 +@RequestMapping("/ai/chat")
  27 +@Slf4j
  28 +@AllArgsConstructor
  29 +public class AiChatModalController {
  30 +
  31 + private final AiChatModalService aiChatModalService;
  32 +
  33 + @Operation(summary = "ai模型 - 模型照片上传")
  34 + @GetMapping("/modal/list")
  35 + public PageResult<AiChatModalListRes> list(@ModelAttribute AiChatModalListReq req) {
  36 + return aiChatModalService.list(req);
  37 + }
  38 +
  39 + @Operation(summary = "ai模型 - 添加")
  40 + @PutMapping("/modal")
  41 + public CommonResult add(@RequestBody @Validated AiChatModalAddReq req) {
  42 + aiChatModalService.add(req);
  43 + return CommonResult.success(null);
  44 + }
  45 +
  46 + @Operation(summary = "ai模型 - 模型照片上传")
  47 + @PutMapping("/modal/{id}/updateImage")
  48 + public CommonResult updateImage(@PathVariable("id") Long id,
  49 + MultipartFile file) {
  50 + // todo yunai 文件上传这里放哪里
  51 + return CommonResult.success(null);
  52 + }
  53 +
  54 +
  55 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/ChatModalConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.convert;
  2 +
  3 +import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatModalDO;
  4 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes;
  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 ChatModalConvert {
  19 +
  20 + ChatModalConvert INSTANCE = Mappers.getMapper(ChatModalConvert.class);
  21 +
  22 +
  23 + List<AiChatModalListRes> convertAiChatModalListRes(List<AiChatModalDO> list);
  24 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/AiChatModalDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.dal.dataobject;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import lombok.Data;
  5 +import lombok.experimental.Accessors;
  6 +
  7 +/**
  8 + * ai 模型
  9 + *
  10 + * @author fansili
  11 + * @time 2024/4/24 19:39
  12 + * @since 1.0
  13 + */
  14 +@Data
  15 +@Accessors(chain = true)
  16 +public class AiChatModalDO extends BaseDO {
  17 +
  18 + /**
  19 + * 编号
  20 + */
  21 + private Long id;
  22 + /**
  23 + * 模型名字
  24 + */
  25 + private Long modelName;
  26 + /**
  27 + * 模型类型(qianwen、yiyan、xinghuo、openai)
  28 + */
  29 + private String modelType;
  30 + /**
  31 + * 模型照片
  32 + */
  33 + private String modalImage;
  34 + /**
  35 + * 模型配置JSON
  36 + */
  37 + private String modelConfig;
  38 + /**
  39 + * 模型图片
  40 + */
  41 + private String modelImage;
  42 + /**
  43 + * 禁用 0、正常 1、禁用
  44 + */
  45 + private Integer disable;
  46 +
  47 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatModalMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.mapper;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  4 +import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatModalDO;
  5 +import org.apache.ibatis.annotations.Mapper;
  6 +import org.springframework.stereotype.Repository;
  7 +
  8 +/**
  9 + * chat modal
  10 + *
  11 + * @author fansili
  12 + * @time 2024/4/24 19:41
  13 + * @since 1.0
  14 + */
  15 +@Repository
  16 +@Mapper
  17 +public interface AiChatModalMapper extends BaseMapperX<AiChatModalDO> {
  18 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/AiChatModalService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.service;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq;
  5 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListReq;
  6 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes;
  7 +
  8 +/**
  9 + * ai modal
  10 + *
  11 + * @author fansili
  12 + * @time 2024/4/24 19:42
  13 + * @since 1.0
  14 + */
  15 +public interface AiChatModalService {
  16 +
  17 + PageResult<AiChatModalListRes> list(AiChatModalListReq req);
  18 +
  19 + void add(AiChatModalAddReq req);
  20 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/impl/AiChatModalServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.service.impl;
  2 +
  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.ChatModalConvert;
  7 +import cn.iocoder.yudao.module.ai.dal.dataobject.AiChatModalDO;
  8 +import cn.iocoder.yudao.module.ai.mapper.AiChatModalMapper;
  9 +import cn.iocoder.yudao.module.ai.service.AiChatModalService;
  10 +import cn.iocoder.yudao.module.ai.vo.AiChatModalAddReq;
  11 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListReq;
  12 +import cn.iocoder.yudao.module.ai.vo.AiChatModalListRes;
  13 +import lombok.AllArgsConstructor;
  14 +import lombok.extern.slf4j.Slf4j;
  15 +import org.springframework.stereotype.Service;
  16 +
  17 +import java.util.List;
  18 +
  19 +/**
  20 + * ai 模型
  21 + *
  22 + * @author fansili
  23 + * @time 2024/4/24 19:42
  24 + * @since 1.0
  25 + */
  26 +@AllArgsConstructor
  27 +@Service
  28 +@Slf4j
  29 +public class AiChatModalServiceImpl implements AiChatModalService {
  30 +
  31 + private final AiChatModalMapper aiChatModalMapper;
  32 +
  33 + @Override
  34 + public PageResult<AiChatModalListRes> list(AiChatModalListReq req) {
  35 + LambdaQueryWrapperX<AiChatModalDO> queryWrapperX = new LambdaQueryWrapperX<>();
  36 + // search
  37 + if (!StrUtil.isBlank(req.getSearch())) {
  38 + queryWrapperX.like(AiChatModalDO::getModelName, req.getSearch().trim());
  39 + }
  40 + // 默认排序
  41 + queryWrapperX.orderByDesc(AiChatModalDO::getId);
  42 + // 查询
  43 + PageResult<AiChatModalDO> aiChatModalDOPageResult = aiChatModalMapper.selectPage(req, queryWrapperX);
  44 + // 转换 res
  45 + List<AiChatModalListRes> resList = ChatModalConvert.INSTANCE.convertAiChatModalListRes(aiChatModalDOPageResult.getList());
  46 + return new PageResult<>(resList, aiChatModalDOPageResult.getTotal());
  47 + }
  48 +
  49 + @Override
  50 + public void add(AiChatModalAddReq req) {
  51 +
  52 + }
  53 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalAddReq.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.vo;
  2 +
  3 +import lombok.Data;
  4 +import lombok.experimental.Accessors;
  5 +
  6 +/**
  7 + * ai chat modal
  8 + *
  9 + * @author fansili
  10 + * @time 2024/4/24 19:47
  11 + * @since 1.0
  12 + */
  13 +@Data
  14 +@Accessors(chain = true)
  15 +public class AiChatModalAddReq {
  16 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListReq.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.vo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +import lombok.experimental.Accessors;
  7 +
  8 +/**
  9 + * modal list
  10 + *
  11 + * @author fansili
  12 + * @time 2024/4/24 19:56
  13 + * @since 1.0
  14 + */
  15 +@Data
  16 +@Accessors(chain = true)
  17 +public class AiChatModalListReq extends PageParam {
  18 +
  19 + @Schema(description = "名字搜搜")
  20 + private String search;
  21 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/AiChatModalListRes.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.vo;
  2 +
  3 +import lombok.Data;
  4 +import lombok.experimental.Accessors;
  5 +
  6 +/**
  7 + * modal list
  8 + *
  9 + * @author fansili
  10 + * @time 2024/4/24 19:56
  11 + * @since 1.0
  12 + */
  13 +@Data
  14 +@Accessors(chain = true)
  15 +public class AiChatModalListRes {
  16 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/vo/ChatMessageDeleteReq.java 0 → 100644
  1 +package cn.iocoder.yudao.module.ai.vo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Data;
  7 +import lombok.experimental.Accessors;
  8 +
  9 +/**
  10 + * chat message list req
  11 + *
  12 + * @author fansili
  13 + * @time 2024/4/14 16:12
  14 + * @since 1.0
  15 + */
  16 +@Data
  17 +@Accessors(chain = true)
  18 +public class ChatMessageDeleteReq extends PageParam {
  19 +
  20 + @Schema(description = "id")
  21 + @NotNull
  22 + private Long id;
  23 +
  24 + @Schema(description = "聊天ID,关联到特定的会话或对话")
  25 + @NotNull
  26 + private Long chatConversationId;
  27 +
  28 +}