企業級RAG如何實現權限控制?Dify 1.1.0 新版本元數據保姆級教程! 原創
什么是元數據
簡單來說,元數據就是"描述數據的數據"。它就像我們為知識庫文檔貼上的各種標簽和屬性,例如文檔的保密等級、創建者、所屬類別等。每個文檔可以擁有多組這樣的描述信息。實際上,元數據早已滲透到我們日常生活的方方面面,只是大多數人并不熟悉這個專業術語而已。
為了更好地理解這個概念,我們可以觀察一些常見例子。在計算機操作系統中,每個文件都包含一系列基礎屬性信息:文件格式、創建者、存儲大小、最后修改時間等,這些都是典型的元數據表現形式。
在Dify知識管理系統中,元數據被分為兩種類型:
- 系統元數據:這是Dify平臺為每個知識文檔自動生成的基礎屬性信息,用戶無法手動修改這些預設字段,它們由系統自動維護和更新。
- 自定義元數據:Dify同時提供了靈活的元數據擴展功能,允許用戶根據實際需求添加、編輯或刪除自定義的描述屬性。這種設計既保證了系統基礎信息的規范性,又滿足了不同用戶的個性化需求。
通過這種雙重元數據機制,Dify實現了文檔管理的標準化與定制化的完美結合。
元數據過濾
元數據過濾是一種高效的文檔檢索技術,其核心在于利用文檔的描述性屬性進行初步篩選。當用戶發起查詢時,系統首先會根據預設的元數據條件對文檔集合進行快速過濾,這個過程僅涉及文檔的表面屬性,無需深入解析文檔內容,因此具有極高的執行效率。
分層檢索的工作流程
- 元數據層篩選:系統基于文檔的元數據屬性(如分類、作者、日期等)進行第一輪篩選,這個階段只檢查文檔的"標簽"信息。
- 內容層檢索:只有通過元數據篩選的文檔才會進入下一階段的內容檢索,系統這時才會解析文檔內部的具體內容。
如何管理知識庫元數據?
在知識庫管理界面,你可以創建、修改和刪除元數據字段。
注意:所有在此界面進行的更新均為全局更新,這意味著對元數據字段列表的任何更改都會影響整個知識庫,包括所有文檔中標記的元數據。
在知識庫管理界面,點擊右上方的 元數據 按鈕,進入元數據管理界面。
在知識庫中,元數據字段分為兩類:內置元數據(Built-in) 和 自定義元數據。
新建元數據字段
點擊 +添加元數據 按鈕,彈出 新建元數據 彈窗。
- 在字段值類型中選擇元數據字段的值類型。
- 在名稱框中填寫字段的名稱。
字段名僅支持小寫字母、數字和下劃線(_)字符,不支持空格和大寫字母。
點擊 保存 按鈕,保存字段。
修改元數據字段
點擊單條元數據字段右側的編輯按鈕,彈出 重命名 彈窗。
在 名稱 框中修改字段名稱。
此彈窗僅支持修改字段名稱,不支持修改字段值類型。
img
- 點擊保存按鈕,保存修改后的字段。
修改并保存后,該字段將在知識庫中的所有相關文檔中同步更新。
刪除元數據字段
點擊單條元數據字段右側的刪除按鈕,可以刪除該字段。
如果刪除單條字段,該字段及該字段下包含的字段值將從知識庫的所有文檔中刪除。
使用元數據篩選知識
聊天流/工作流
在 聊天流/工作流 的 知識檢索 節點中,你可以使用 元數據篩選 功能精確檢索文檔。該功能有助于你根據文檔的元數據字段(如標簽、類別或訪問權限)優化檢索結果。
配置步驟
選擇篩選模式
啟用自動模式后,你依然需要在 模型 欄中選擇合適的大模型以執行文檔檢索任務。
- 手動模式:用戶可以手動配置篩選條件,自由設置篩選規則,適用于復雜的篩選需求。
- 禁用模式(默認):禁用元數據篩選功能,不配置任何篩選條件。
- 自動模式:系統會根據傳輸給該知識檢索節點的查詢變量自動配置篩選條件,適用于簡單的篩選需求。
如果你選擇了手動模式,請參照以下步驟配置篩選條件:
當你輸入常量篩選值時,該篩選值必須與該元數據字段值的文本完全一致,系統才能返回該文檔。例如,當你設置篩選條件為 ?
?starts with "App"?
?? 或 ??contains "App"?
? 時,系統會返回標記為 “Apple” 的文檔,但不會返回標記為 “apple” 或 “APPLE” 的文檔。
- ?
?AND?
?:當一個文檔滿足所有篩選條件時,才能檢索到該文檔。 - ?
?OR?
?:只要一個文檔滿足其中任意一個篩選條件,就可以檢索到該文檔。 - 變量:選擇變量(Variable),并選擇該聊天流/工作流中需要用于篩選文檔的變量。
- 常量:選擇常量(Constant),并手動輸入你需要的常量值。
- 可以從下拉列表中選擇一個已選中知識庫內的元數據字段,添加到篩選條件列表中。
- 可以在搜索元數據搜索框中搜索你需要的字段,添加到篩選條件列表中。
配置篩選條件之間的邏輯關系 ??AND?
?? 或 ??OR?
?。
選擇并添加元數據篩選值:
時間 字段類型僅支持使用常量篩選文檔。如果你選用時間字段篩選文檔,系統會彈出時間選擇器,供你選擇具體的時間節點。
- 如果需要添加多條字段,可以重復點擊+添加條件按鈕。
- 點擊配置框中的+添加條件按鈕:
如果你同時選擇了多個知識庫,下拉列表只會顯示這些知識庫共有的元數據字段。
3.點擊 條件 按鈕,彈出配置框。
聊天助手
在聊天助手中,元數據篩選 功能位于界面左下方的 上下文 板塊下方,配置方法與聊天流/工作流中的操作一致。你可以按照相同的步驟配置元數據篩選條件。
總結
在實際生產過程中,元數據的作用還是比較明顯的。例如,在我之前的一個項目中,我們需要處理大量文件。項目中有一個需求:希望 RAG 系統能夠根據用戶的不同權限級別提供相應的回答。具體來說,普通用戶不應訪問只有高管才能查看的文件,而高管則可以檢索知識庫中的所有文件。
我們通過元數據實現了基于用戶角色的權限控制:普通用戶查詢時,系統會自動過濾高權限文件;而高管用戶則可訪問知識庫中的全部文件內容。這種分級訪問機制有效保障了企業數據安全。
本文轉載自公眾號AI 博物院 作者:longyunfeigu
原文鏈接:??https://mp.weixin.qq.com/s/XSde9cnCX7IpTklbRAGfoA??
