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