企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程! 原创

发布于 2025-4-14 08:25
浏览
0收藏

什么是元数据

简单来说,元数据就是"描述数据的数据"。它就像我们为知识库文档贴上的各种标签和属性,例如文档的保密等级、创建者、所属类别等。每个文档可以拥有多组这样的描述信息。实际上,元数据早已渗透到我们日常生活的方方面面,只是大多数人并不熟悉这个专业术语而已。

为了更好地理解这个概念,我们可以观察一些常见例子。在计算机操作系统中,每个文件都包含一系列基础属性信息:文件格式、创建者、存储大小、最后修改时间等,这些都是典型的元数据表现形式。

在Dify知识管理系统中,元数据被分为两种类型:

  1. 系统元数据:这是Dify平台为每个知识文档自动生成的基础属性信息,用户无法手动修改这些预设字段,它们由系统自动维护和更新。
  2. 自定义元数据:Dify同时提供了灵活的元数据扩展功能,允许用户根据实际需求添加、编辑或删除自定义的描述属性。这种设计既保证了系统基础信息的规范性,又满足了不同用户的个性化需求。

通过这种双重元数据机制,Dify实现了文档管理的标准化与定制化的完美结合。

元数据过滤

元数据过滤是一种高效的文档检索技术,其核心在于利用文档的描述性属性进行初步筛选。当用户发起查询时,系统首先会根据预设的元数据条件对文档集合进行快速过滤,这个过程仅涉及文档的表面属性,无需深入解析文档内容,因此具有极高的执行效率。

分层检索的工作流程

  1. 元数据层筛选:系统基于文档的元数据属性(如分类、作者、日期等)进行第一轮筛选,这个阶段只检查文档的"标签"信息。
  2. 内容层检索:只有通过元数据筛选的文档才会进入下一阶段的内容检索,系统这时才会解析文档内部的具体内容。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区


如何管理知识库元数据?

在知识库管理界面,你可以创建、修改和删除元数据字段。

注意:所有在此界面进行的更新均为全局更新,这意味着对元数据字段列表的任何更改都会影响整个知识库,包括所有文档中标记的元数据。

在知识库管理界面,点击右上方的 元数据 按钮,进入元数据管理界面。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

在知识库中,元数据字段分为两类:内置元数据(Built-in) 和 自定义元数据

新建元数据字段

点击 +添加元数据 按钮,弹出 新建元数据 弹窗。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

  1. 字段值类型中选择元数据字段的值类型。
  2. 名称框中填写字段的名称。

字段名仅支持小写字母、数字和下划线(_)字符,不支持空格和大写字母。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

点击 保存 按钮,保存字段。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

修改元数据字段

点击单条元数据字段右侧的编辑按钮,弹出 重命名 弹窗。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

在 名称 框中修改字段名称。

此弹窗仅支持修改字段名称,不支持修改字段值类型。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

img

  1. 点击保存按钮,保存修改后的字段。

修改并保存后,该字段将在知识库中的所有相关文档中同步更新。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

删除元数据字段

点击单条元数据字段右侧的删除按钮,可以删除该字段。

如果删除单条字段,该字段及该字段下包含的字段值将从知识库的所有文档中删除。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

使用元数据筛选知识

聊天流/工作流

在 聊天流/工作流 的 知识检索 节点中,你可以使用 元数据筛选 功能精确检索文档。该功能有助于你根据文档的元数据字段(如标签、类别或访问权限)优化检索结果。

配置步骤

选择筛选模式

启用自动模式后,你依然需要在 模型 栏中选择合适的大模型以执行文档检索任务。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

  • 手动模式:用户可以手动配置筛选条件,自由设置筛选规则,适用于复杂的筛选需求。
  • 禁用模式(默认):禁用元数据筛选功能,不配置任何筛选条件。
  • 自动模式:系统会根据传输给该知识检索节点的查询变量自动配置筛选条件,适用于简单的筛选需求。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

如果你选择了手动模式,请参照以下步骤配置筛选条件:

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

当你输入常量筛选值时,该筛选值必须与该元数据字段值的文本完全一致,系统才能返回该文档。例如,当你设置筛选条件为 ​​starts with "App"​​​ 或 ​​contains "App"​​ 时,系统会返回标记为 “Apple” 的文档,但不会返回标记为 “apple” 或 “APPLE” 的文档。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

  • ​AND​​:当一个文档满足所有筛选条件时,才能检索到该文档。
  • ​OR​​:只要一个文档满足其中任意一个筛选条件,就可以检索到该文档。
  • 变量:选择变量(Variable),并选择该聊天流/工作流中需要用于筛选文档的变量。
  • 常量:选择常量(Constant),并手动输入你需要的常量值。
  • 可以从下拉列表中选择一个已选中知识库内的元数据字段,添加到筛选条件列表中。
  • 可以在搜索元数据搜索框中搜索你需要的字段,添加到筛选条件列表中。

配置筛选条件之间的逻辑关系 ​​AND​​​ 或 ​​OR​​。

选择并添加元数据筛选值:

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

时间 字段类型仅支持使用常量筛选文档。如果你选用时间字段筛选文档,系统会弹出时间选择器,供你选择具体的时间节点。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

  1. 如果需要添加多条字段,可以重复点击+添加条件按钮。
  2. 点击配置框中的+添加条件按钮:

如果你同时选择了多个知识库,下拉列表只会显示这些知识库共有的元数据字段。

 3.点击 条件 按钮,弹出配置框。

聊天助手

聊天助手中,元数据筛选 功能位于界面左下方的 上下文 板块下方,配置方法与聊天流/工作流中的操作一致。你可以按照相同的步骤配置元数据筛选条件。

企业级RAG如何实现权限控制?Dify 1.1.0 新版本元数据保姆级教程!-AI.x社区

总结

在实际生产过程中,元数据的作用还是比较明显的。例如,在我之前的一个项目中,我们需要处理大量文件。项目中有一个需求:希望 RAG 系统能够根据用户的不同权限级别提供相应的回答。具体来说,普通用户不应访问只有高管才能查看的文件,而高管则可以检索知识库中的所有文件。

我们通过元数据实现了基于用户角色的权限控制:普通用户查询时,系统会自动过滤高权限文件;而高管用户则可访问知识库中的全部文件内容。这种分级访问机制有效保障了企业数据安全。


本文转载自公众号AI 博物院 作者:longyunfeigu

原文链接:​​https://mp.weixin.qq.com/s/XSde9cnCX7IpTklbRAGfoA​


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-4-14 08:25:45修改
收藏
回复
举报


回复
相关推荐