【优化】AI知识库:visibilityPermissions 使用 list

This commit is contained in:
xiaoxin 2024-09-29 10:01:49 +08:00
parent c05d7c9f95
commit 1de70eeeb3
4 changed files with 16 additions and 8 deletions

View File

@ -5,6 +5,8 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - AI 知识库创建 Request VO") @Schema(description = "管理后台 - AI 知识库创建 Request VO")
@Data @Data
public class AiKnowledgeCreateReqVO { public class AiKnowledgeCreateReqVO {
@ -16,8 +18,8 @@ public class AiKnowledgeCreateReqVO {
@Schema(description = "知识库描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "存储 ruoyi-vue-pro 操作文档") @Schema(description = "知识库描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "存储 ruoyi-vue-pro 操作文档")
private String description; private String description;
@Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1,2,3]")
private String visibilityPermissions; private List<Long> visibilityPermissions;
@Schema(description = "嵌入模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "嵌入模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "嵌入模型不能为空") @NotNull(message = "嵌入模型不能为空")

View File

@ -5,6 +5,8 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - AI 知识库更新【我的】 Request VO") @Schema(description = "管理后台 - AI 知识库更新【我的】 Request VO")
@Data @Data
public class AiKnowledgeUpdateReqVO { public class AiKnowledgeUpdateReqVO {
@ -21,7 +23,7 @@ public class AiKnowledgeUpdateReqVO {
private String description; private String description;
@Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")
private String visibilityPermissions; private List<Long> visibilityPermissions;
@Schema(description = "嵌入模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "嵌入模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "嵌入模型不能为空") @NotNull(message = "嵌入模型不能为空")

View File

@ -2,10 +2,14 @@ package cn.iocoder.yudao.module.ai.dal.dataobject.knowledge;
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 com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* AI 知识库 DO * AI 知识库 DO
* *
@ -40,7 +44,8 @@ public class AiKnowledgeDO extends BaseDO {
* <p> * <p>
* -1 所有人可见其他为各自用户编号 * -1 所有人可见其他为各自用户编号
*/ */
private String visibilityPermissions; @TableField(typeHandler = LongListTypeHandler.class)
private List<Long> visibilityPermissions;
/** /**
* 嵌入模型编号 * 嵌入模型编号
*/ */

View File

@ -156,11 +156,10 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
} }
private List<AiKnowledgeSegmentDO> recallSegment(String content, Long knowledgeId) { private List<AiKnowledgeSegmentDO> recallSegment(String content, Long knowledgeId) {
List<AiKnowledgeSegmentDO> segmentList = new ArrayList<>(); if (Objects.isNull(knowledgeId)) {
if (Objects.nonNull(knowledgeId)) { return Collections.emptyList();
segmentList = knowledgeSegmentService.similaritySearch(new AiKnowledgeSegmentSearchReqVO().setKnowledgeId(knowledgeId).setContent(content));
} }
return segmentList; return knowledgeSegmentService.similaritySearch(new AiKnowledgeSegmentSearchReqVO().setKnowledgeId(knowledgeId).setContent(content));
} }
private Prompt buildPrompt(AiChatConversationDO conversation, List<AiChatMessageDO> messages,List<AiKnowledgeSegmentDO> segmentList, private Prompt buildPrompt(AiChatConversationDO conversation, List<AiChatMessageDO> messages,List<AiKnowledgeSegmentDO> segmentList,