【功能新增】AI:聊天角色,新增 knowledge 的引用绑定
This commit is contained in:
parent
9126691ac0
commit
3bb57edc85
|
@ -1,5 +1,6 @@
|
||||||
package cn.iocoder.yudao.module.ai.controller.admin.knowledge;
|
package cn.iocoder.yudao.module.ai.controller.admin.knowledge;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
@ -17,7 +18,10 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
|
|
||||||
// TODO @芋艿:增加权限标识
|
// TODO @芋艿:增加权限标识
|
||||||
@Tag(name = "管理后台 - AI 知识库")
|
@Tag(name = "管理后台 - AI 知识库")
|
||||||
|
@ -62,4 +66,12 @@ public class AiKnowledgeController {
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/simple-list")
|
||||||
|
@Operation(summary = "获得知识库的精简列表")
|
||||||
|
public CommonResult<List<AiKnowledgeRespVO>> getKnowledgeSimpleList() {
|
||||||
|
List<AiKnowledgeDO> list = knowledgeService.getKnowledgeSimpleListByStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||||
|
return success(convertList(list, knowledge -> new AiKnowledgeRespVO()
|
||||||
|
.setId(knowledge.getId()).setName(knowledge.getName())));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,13 @@
|
||||||
package cn.iocoder.yudao.module.ai.controller.admin.knowledge;
|
package cn.iocoder.yudao.module.ai.controller.admin.knowledge;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.*;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentRespVO;
|
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateReqVO;
|
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentCreateListReqVO;
|
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateStatusReqVO;
|
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeDocumentCreateReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeDocumentCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO;
|
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO;
|
||||||
import cn.iocoder.yudao.module.ai.dal.mysql.knowledge.AiKnowledgeDocumentMapper;
|
|
||||||
import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeDocumentService;
|
import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeDocumentService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
@ -25,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
|
||||||
|
|
||||||
@Tag(name = "管理后台 - AI 知识库文档")
|
@Tag(name = "管理后台 - AI 知识库文档")
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -95,13 +87,4 @@ public class AiKnowledgeDocumentController {
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/simple-list")
|
|
||||||
@Operation(summary = "获得知识库文档的精简列表")
|
|
||||||
public CommonResult<List<AiKnowledgeDocumentRespVO>> getKnowledgeDocumentSimpleList() {
|
|
||||||
List<AiKnowledgeDocumentDO> list = documentService
|
|
||||||
.getKnowledgeDocumentListByStatus(CommonStatusEnum.ENABLE.getStatus());
|
|
||||||
return success(convertList(list, document -> new AiKnowledgeDocumentRespVO()
|
|
||||||
.setId(document.getId()).setName(document.getName())));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,8 +46,8 @@ public class AiChatRoleRespVO implements VO {
|
||||||
@Schema(description = "角色设定", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "角色设定", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private String systemMessage;
|
private String systemMessage;
|
||||||
|
|
||||||
@Schema(description = "知识库文档编号列表", example = "1,2,3")
|
@Schema(description = "引用的知识库编号列表", example = "1,2,3")
|
||||||
private List<Long> documentIds;
|
private List<Long> knowledgeIds;
|
||||||
|
|
||||||
@Schema(description = "是否公开", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@Schema(description = "是否公开", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
private Boolean publicStatus;
|
private Boolean publicStatus;
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class AiChatRoleSaveMyReqVO {
|
||||||
@NotEmpty(message = "角色设定不能为空")
|
@NotEmpty(message = "角色设定不能为空")
|
||||||
private String systemMessage;
|
private String systemMessage;
|
||||||
|
|
||||||
@Schema(description = "知识库文档编号列表", example = "1,2,3")
|
@Schema(description = "引用的知识库编号列表", example = "1,2,3")
|
||||||
private List<Long> documentIds;
|
private List<Long> knowledgeIds;
|
||||||
|
|
||||||
}
|
}
|
|
@ -44,8 +44,8 @@ public class AiChatRoleSaveReqVO {
|
||||||
@NotEmpty(message = "角色设定不能为空")
|
@NotEmpty(message = "角色设定不能为空")
|
||||||
private String systemMessage;
|
private String systemMessage;
|
||||||
|
|
||||||
@Schema(description = "知识库文档编号列表", example = "1,2,3")
|
@Schema(description = "引用的知识库编号列表", example = "1,2,3")
|
||||||
private List<Long> documentIds;
|
private List<Long> knowledgeIds;
|
||||||
|
|
||||||
@Schema(description = "是否公开", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@Schema(description = "是否公开", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
@NotNull(message = "是否公开不能为空")
|
@NotNull(message = "是否公开不能为空")
|
||||||
|
|
|
@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.ai.dal.dataobject.model;
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
|
import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
|
||||||
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO;
|
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
@ -68,12 +68,12 @@ public class AiChatRoleDO extends BaseDO {
|
||||||
private Long modelId;
|
private Long modelId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 知识库文档编号列表
|
* 引用的知识库编号列表
|
||||||
*
|
*
|
||||||
* 关联 {@link AiKnowledgeDocumentDO#getId()} 字段
|
* 关联 {@link AiKnowledgeDO#getId()} 字段
|
||||||
*/
|
*/
|
||||||
@TableField(typeHandler = LongListTypeHandler.class)
|
@TableField(typeHandler = LongListTypeHandler.class)
|
||||||
private List<Long> documentIds;
|
private List<Long> knowledgeIds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否公开
|
* 是否公开
|
||||||
|
|
|
@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnow
|
||||||
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO;
|
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AI 知识库 Mapper
|
* AI 知识库 Mapper
|
||||||
*
|
*
|
||||||
|
@ -23,4 +25,8 @@ public interface AiKnowledgeMapper extends BaseMapperX<AiKnowledgeDO> {
|
||||||
.orderByDesc(AiKnowledgeDO::getId));
|
.orderByDesc(AiKnowledgeDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<AiKnowledgeDO> selectListByStatus(Integer status) {
|
||||||
|
return selectList(AiKnowledgeDO::getStatus, status);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,12 +115,4 @@ public interface AiKnowledgeDocumentService {
|
||||||
return convertMap(getKnowledgeDocumentList(ids), AiKnowledgeDocumentDO::getId);
|
return convertMap(getKnowledgeDocumentList(ids), AiKnowledgeDocumentDO::getId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取指定状态的文档列表
|
|
||||||
*
|
|
||||||
* @param status 状态
|
|
||||||
* @return 文档列表
|
|
||||||
*/
|
|
||||||
List<AiKnowledgeDocumentDO> getKnowledgeDocumentListByStatus(Integer status);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ import cn.hutool.http.HttpUtil;
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentCreateListReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentCreateListReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateReqVO;
|
||||||
|
@ -211,9 +210,4 @@ public class AiKnowledgeDocumentServiceImpl implements AiKnowledgeDocumentServic
|
||||||
return knowledgeDocumentMapper.selectByIds(ids);
|
return knowledgeDocumentMapper.selectByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<AiKnowledgeDocumentDO> getKnowledgeDocumentListByStatus(Integer status) {
|
|
||||||
return knowledgeDocumentMapper.selectListByStatus(status);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnow
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeSaveReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO;
|
import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AI 知识库-基础信息 Service 接口
|
* AI 知识库-基础信息 Service 接口
|
||||||
*
|
*
|
||||||
|
@ -50,4 +52,12 @@ public interface AiKnowledgeService {
|
||||||
*/
|
*/
|
||||||
PageResult<AiKnowledgeDO> getKnowledgePage(AiKnowledgePageReqVO pageReqVO);
|
PageResult<AiKnowledgeDO> getKnowledgePage(AiKnowledgePageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定状态的知识库列表
|
||||||
|
*
|
||||||
|
* @param status 状态
|
||||||
|
* @return 知识库列表
|
||||||
|
*/
|
||||||
|
List<AiKnowledgeDO> getKnowledgeSimpleListByStatus(Integer status);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@ import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.KNOWLEDGE_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.KNOWLEDGE_NOT_EXISTS;
|
||||||
|
|
||||||
|
@ -76,4 +78,9 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||||
return knowledgeMapper.selectPage(pageReqVO);
|
return knowledgeMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AiKnowledgeDO> getKnowledgeSimpleListByStatus(Integer status) {
|
||||||
|
return knowledgeMapper.selectListByStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,14 +5,13 @@ import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRolePageReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRolePageReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveMyReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveMyReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveReqVO;
|
import cn.iocoder.yudao.module.ai.controller.admin.model.vo.chatRole.AiChatRoleSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO;
|
import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatRoleDO;
|
||||||
import cn.iocoder.yudao.module.ai.dal.mysql.model.AiChatRoleMapper;
|
import cn.iocoder.yudao.module.ai.dal.mysql.model.AiChatRoleMapper;
|
||||||
import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeDocumentService;
|
import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -23,7 +22,8 @@ import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.*;
|
import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.CHAT_ROLE_DISABLE;
|
||||||
|
import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.CHAT_ROLE_NOT_EXISTS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AI 聊天角色 Service 实现类
|
* AI 聊天角色 Service 实现类
|
||||||
|
@ -38,12 +38,12 @@ public class AiChatRoleServiceImpl implements AiChatRoleService {
|
||||||
private AiChatRoleMapper chatRoleMapper;
|
private AiChatRoleMapper chatRoleMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AiKnowledgeDocumentService knowledgeDocumentService;
|
private AiKnowledgeService knowledgeService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createChatRole(AiChatRoleSaveReqVO createReqVO) {
|
public Long createChatRole(AiChatRoleSaveReqVO createReqVO) {
|
||||||
// 校验文档
|
// 校验文档
|
||||||
validateDocuments(createReqVO.getDocumentIds());
|
validateDocuments(createReqVO.getKnowledgeIds());
|
||||||
|
|
||||||
// 保存角色
|
// 保存角色
|
||||||
AiChatRoleDO chatRole = BeanUtils.toBean(createReqVO, AiChatRoleDO.class);
|
AiChatRoleDO chatRole = BeanUtils.toBean(createReqVO, AiChatRoleDO.class);
|
||||||
|
@ -54,7 +54,7 @@ public class AiChatRoleServiceImpl implements AiChatRoleService {
|
||||||
@Override
|
@Override
|
||||||
public Long createChatRoleMy(AiChatRoleSaveMyReqVO createReqVO, Long userId) {
|
public Long createChatRoleMy(AiChatRoleSaveMyReqVO createReqVO, Long userId) {
|
||||||
// 校验文档
|
// 校验文档
|
||||||
validateDocuments(createReqVO.getDocumentIds());
|
validateDocuments(createReqVO.getKnowledgeIds());
|
||||||
|
|
||||||
// 保存角色
|
// 保存角色
|
||||||
AiChatRoleDO chatRole = BeanUtils.toBean(createReqVO, AiChatRoleDO.class).setUserId(userId)
|
AiChatRoleDO chatRole = BeanUtils.toBean(createReqVO, AiChatRoleDO.class).setUserId(userId)
|
||||||
|
@ -68,7 +68,7 @@ public class AiChatRoleServiceImpl implements AiChatRoleService {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateChatRoleExists(updateReqVO.getId());
|
validateChatRoleExists(updateReqVO.getId());
|
||||||
// 校验文档
|
// 校验文档
|
||||||
validateDocuments(updateReqVO.getDocumentIds());
|
validateDocuments(updateReqVO.getKnowledgeIds());
|
||||||
|
|
||||||
// 更新角色
|
// 更新角色
|
||||||
AiChatRoleDO updateObj = BeanUtils.toBean(updateReqVO, AiChatRoleDO.class);
|
AiChatRoleDO updateObj = BeanUtils.toBean(updateReqVO, AiChatRoleDO.class);
|
||||||
|
@ -83,7 +83,7 @@ public class AiChatRoleServiceImpl implements AiChatRoleService {
|
||||||
throw exception(CHAT_ROLE_NOT_EXISTS);
|
throw exception(CHAT_ROLE_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
// 校验文档
|
// 校验文档
|
||||||
validateDocuments(updateReqVO.getDocumentIds());
|
validateDocuments(updateReqVO.getKnowledgeIds());
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
AiChatRoleDO updateObj = BeanUtils.toBean(updateReqVO, AiChatRoleDO.class);
|
AiChatRoleDO updateObj = BeanUtils.toBean(updateReqVO, AiChatRoleDO.class);
|
||||||
|
@ -91,16 +91,16 @@ public class AiChatRoleServiceImpl implements AiChatRoleService {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验文档是否存在
|
* 校验知识库是否存在
|
||||||
*
|
*
|
||||||
* @param documentIds 文档编号列表
|
* @param knowledgeIds 知识库编号列表
|
||||||
*/
|
*/
|
||||||
private void validateDocuments(List<Long> documentIds) {
|
private void validateDocuments(List<Long> knowledgeIds) {
|
||||||
if (CollUtil.isEmpty(documentIds)) {
|
if (CollUtil.isEmpty(knowledgeIds)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 校验文档是否存在
|
// 校验文档是否存在
|
||||||
documentIds.forEach(knowledgeDocumentService::validateKnowledgeDocumentExists);
|
knowledgeIds.forEach(knowledgeService::validateKnowledgeExists);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue