Commit 1de70eeeb30868204e920ddf286c5d3357823264
1 parent
c05d7c9f
【优化】AI知识库:visibilityPermissions 使用 list
Showing
4 changed files
with
16 additions
and
8 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/vo/knowledge/AiKnowledgeCreateReqVO.java
| ... | ... | @@ -5,6 +5,8 @@ import jakarta.validation.constraints.NotBlank; |
| 5 | 5 | import jakarta.validation.constraints.NotNull; |
| 6 | 6 | import lombok.Data; |
| 7 | 7 | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 8 | 10 | @Schema(description = "管理后台 - AI 知识库创建 Request VO") |
| 9 | 11 | @Data |
| 10 | 12 | public class AiKnowledgeCreateReqVO { |
| ... | ... | @@ -16,8 +18,8 @@ public class AiKnowledgeCreateReqVO { |
| 16 | 18 | @Schema(description = "知识库描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "存储 ruoyi-vue-pro 操作文档") |
| 17 | 19 | private String description; |
| 18 | 20 | |
| 19 | - @Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") | |
| 20 | - private String visibilityPermissions; | |
| 21 | + @Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1,2,3]") | |
| 22 | + private List<Long> visibilityPermissions; | |
| 21 | 23 | |
| 22 | 24 | @Schema(description = "嵌入模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 23 | 25 | @NotNull(message = "嵌入模型不能为空") | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/vo/knowledge/AiKnowledgeUpdateReqVO.java
| ... | ... | @@ -5,6 +5,8 @@ import jakarta.validation.constraints.NotBlank; |
| 5 | 5 | import jakarta.validation.constraints.NotNull; |
| 6 | 6 | import lombok.Data; |
| 7 | 7 | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 8 | 10 | @Schema(description = "管理后台 - AI 知识库更新【我的】 Request VO") |
| 9 | 11 | @Data |
| 10 | 12 | public class AiKnowledgeUpdateReqVO { |
| ... | ... | @@ -21,7 +23,7 @@ public class AiKnowledgeUpdateReqVO { |
| 21 | 23 | private String description; |
| 22 | 24 | |
| 23 | 25 | @Schema(description = "可见权限,只能选择哪些人可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") |
| 24 | - private String visibilityPermissions; | |
| 26 | + private List<Long> visibilityPermissions; | |
| 25 | 27 | |
| 26 | 28 | @Schema(description = "嵌入模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 27 | 29 | @NotNull(message = "嵌入模型不能为空") | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/knowledge/AiKnowledgeDO.java
| ... | ... | @@ -2,10 +2,14 @@ package cn.iocoder.yudao.module.ai.dal.dataobject.knowledge; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler; | |
| 6 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | 7 | import com.baomidou.mybatisplus.annotation.TableId; |
| 6 | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
| 7 | 9 | import lombok.Data; |
| 8 | 10 | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 9 | 13 | /** |
| 10 | 14 | * AI 知识库 DO |
| 11 | 15 | * |
| ... | ... | @@ -40,7 +44,8 @@ public class AiKnowledgeDO extends BaseDO { |
| 40 | 44 | * <p> |
| 41 | 45 | * -1 所有人可见,其他为各自用户编号 |
| 42 | 46 | */ |
| 43 | - private String visibilityPermissions; | |
| 47 | + @TableField(typeHandler = LongListTypeHandler.class) | |
| 48 | + private List<Long> visibilityPermissions; | |
| 44 | 49 | /** |
| 45 | 50 | * 嵌入模型编号 |
| 46 | 51 | */ | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java
| ... | ... | @@ -156,11 +156,10 @@ public class AiChatMessageServiceImpl implements AiChatMessageService { |
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | private List<AiKnowledgeSegmentDO> recallSegment(String content, Long knowledgeId) { |
| 159 | - List<AiKnowledgeSegmentDO> segmentList = new ArrayList<>(); | |
| 160 | - if (Objects.nonNull(knowledgeId)) { | |
| 161 | - segmentList = knowledgeSegmentService.similaritySearch(new AiKnowledgeSegmentSearchReqVO().setKnowledgeId(knowledgeId).setContent(content)); | |
| 159 | + if (Objects.isNull(knowledgeId)) { | |
| 160 | + return Collections.emptyList(); | |
| 162 | 161 | } |
| 163 | - return segmentList; | |
| 162 | + return knowledgeSegmentService.similaritySearch(new AiKnowledgeSegmentSearchReqVO().setKnowledgeId(knowledgeId).setContent(content)); | |
| 164 | 163 | } |
| 165 | 164 | |
| 166 | 165 | private Prompt buildPrompt(AiChatConversationDO conversation, List<AiChatMessageDO> messages,List<AiKnowledgeSegmentDO> segmentList, | ... | ... |