
NodeRAG:開(kāi)源異構(gòu)圖 RAG 系統(tǒng),革新檢索與生成效率!
聲明:該文章由作者(是桃桃呀)發(fā)表,轉(zhuǎn)載此文章須經(jīng)作者同意并請(qǐng)附上出處(0XUCN)及本頁(yè)鏈接。。
傳統(tǒng) RAG 系統(tǒng)依賴文本塊檢索,難以捕捉信息間的復(fù)雜關(guān)系,導(dǎo)致上下文缺失或無(wú)關(guān)信息干擾,效率低下。
而在 RAG 技術(shù)愈發(fā)流行的今天,如何讓 AI 更聰明地?“理解信息之間的關(guān)系”,而不是僅僅“找一段相關(guān)文本”!
在 GitHub 上一款名叫?NodeRAG?的開(kāi)源項(xiàng)目,它讓 RAG 從傳統(tǒng)的“扁平檢索”,進(jìn)化成了真正的“知識(shí)網(wǎng)絡(luò)式”智能查詢。
它是一種基于異構(gòu)圖的 RAG 增強(qiáng)系統(tǒng),通過(guò)結(jié)構(gòu)化關(guān)系網(wǎng)整合文本、數(shù)據(jù)等多元信息,顯著提升檢索精準(zhǔn)度和生成質(zhì)量,讓 AI 能夠更快更準(zhǔn)的找到需求內(nèi)容。
為什么 NodeRAG 很特別?
傳統(tǒng) RAG 系統(tǒng)通常將文本切塊后通過(guò)向量檢索匹配,沒(méi)有結(jié)構(gòu)、不可解釋、冗余度高。
NodeRAG 引入了“異構(gòu)圖”這一概念:
? 不同類型的節(jié)點(diǎn):文檔段落、圖片、表格、知識(shí)點(diǎn)、實(shí)體等; ? 不同類型的邊:上下文引用、引用關(guān)系、語(yǔ)義關(guān)聯(lián)、時(shí)間順序、實(shí)體共現(xiàn)等; ? 最終構(gòu)建成一張復(fù)雜的“信息關(guān)系網(wǎng)”。
這讓檢索更細(xì)粒度、更精準(zhǔn),也讓生成過(guò)程更可追溯、可解釋。
主要功能
??構(gòu)建異構(gòu)知識(shí)圖譜:將文本、實(shí)體、表格等信息建模為不同類型節(jié)點(diǎn),邊表示語(yǔ)義或邏輯關(guān)系。 ??增量式更新:支持對(duì)已有圖譜進(jìn)行動(dòng)態(tài)擴(kuò)充,動(dòng)態(tài)添加節(jié)點(diǎn)和邊,無(wú)需重建整個(gè)圖結(jié)構(gòu)。 ??細(xì)粒度檢索:基于圖的上下文感知檢索,聚焦相關(guān)節(jié)點(diǎn)而非整塊文本。 ??可視化與Web界面:提供交互式 Web 界面,探索圖結(jié)構(gòu)、節(jié)點(diǎn)關(guān)系和檢索結(jié)果。
快速入手
NodeRAG 提供簡(jiǎn)潔的安裝流程和詳細(xì)文檔,以下是部署與使用步驟:
① 克隆項(xiàng)目
git?clone?https://github.com/Terry-Xu-666/NodeRAG.git
cd?NodeRAG
② 創(chuàng)建Python虛擬環(huán)境
conda create -n NodeRAG python=3.10
conda activate NodeRAG
③ 安裝uv管理器并安裝依賴
pip install uv
uv pip install NodeRAG
使用方法:
先構(gòu)建異構(gòu)圖,準(zhǔn)備好語(yǔ)料集和APIKEY,將語(yǔ)料集放入一個(gè)自定義目錄的input目錄下
python -m NodeRAG.build -f path/to/main_folder
如果想要實(shí)現(xiàn)增量更新,放入新的語(yǔ)料文件,執(zhí)行上述命令即可。
直接在代碼中導(dǎo)入模塊使用 NodeRAG。
from NodeRAG import NodeConfig, NodeSearch
# 從主文件夾加載配置
config = NodeConfig.from_main_folder(r"C:\Users\Terry_Xu\Desktop\HP")
# 初始化搜索引擎
search = NodeSearch(config)
# 查詢系統(tǒng)
ans = search.answer('who is harry potter?')
# 'ans' 是一個(gè)包含多個(gè)可訪問(wèn)屬性的對(duì)象:
# response:對(duì)您問(wèn)題的生成答案
print(ans.response)
# 答案中的 token 數(shù)量
print(ans.response_tokens)
# 檢索信息:用于生成答案的上下文
print(ans.retrieval_info)
# 檢索上下文中的 token 數(shù)量
print(ans.retrieval_tokens)
注意事項(xiàng):?search.answer()?返回一個(gè)對(duì)象,該對(duì)象同時(shí)包含答案和檢索上下文,以及有用的元數(shù)據(jù)。
這種方法非常適合快速集成到 Python 腳本或 Jupyter notebook 中,無(wú)需設(shè)置 API 服務(wù)器。
還支持本地命令行運(yùn)行,比如基本查詢:
python -m NodeRAG -f path/to/main_folder -q?"您的問(wèn)題"
# 返回帶檢索上下文的答案
python -m NodeRAG -f path/to/main_folder -q?"您的問(wèn)題"?-r
運(yùn)行WebUI指定,打開(kāi)界面服務(wù):
python -m NodeRAG.WebUI -f?"C:\Users\Terry_Xu\Desktop\HP"
在側(cè)邊欄中,可以查看當(dāng)前狀態(tài)和配置參數(shù)。
配置完成后,可點(diǎn)擊Build按鈕開(kāi)始為您的語(yǔ)料庫(kù)建立索引。
項(xiàng)目結(jié)構(gòu)速覽可以參考中文提示文檔。
寫在最后
NodeRAG?是一個(gè)創(chuàng)新的基于異構(gòu)圖的 RAG(檢索增強(qiáng)生成)系統(tǒng)。
它將多類型的數(shù)據(jù)(文本、表格、人物、組織、事件……)組織為一個(gè)統(tǒng)一的知識(shí)圖譜,并結(jié)合語(yǔ)言模型進(jìn)行更精準(zhǔn)、更結(jié)構(gòu)化的檢索與問(wèn)答。
它打破傳統(tǒng) RAG “文本碎片 + 向量匹配”的局限,用異構(gòu)圖(Heterogeneous Graph)結(jié)構(gòu)組織信息,讓生成更準(zhǔn)確、檢索更智能、結(jié)果更可解釋。
它可以實(shí)現(xiàn)用你的私有數(shù)據(jù)(筆記、文檔、代碼等)構(gòu)建一個(gè) NodeRAG 知識(shí)網(wǎng),給你定制“可解釋檢索+生成”的 QA 流程。
也為構(gòu)建真正“懂結(jié)構(gòu)”的 AI 知識(shí)問(wèn)答系統(tǒng)提供了完美模板。
GitHub 項(xiàng)目地址:https://github.com/Terry-Xu-666/NodeRAG
中文使用文檔:https://terry-xu-666.github.io/NodeRAG_web/zh/docs/
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級(jí)服務(wù)市場(chǎng):https://www.ijiandao.com/
- 1 像石榴籽一樣緊緊抱在一起 7904800
- 2 殲-35完成在福建艦上彈射起飛 7809314
- 3 深圳:建議準(zhǔn)備至少3天的應(yīng)急物資 7713369
- 4 唱著民歌迎豐收 7618862
- 5 日本“蘋果病”流行達(dá)歷史頂點(diǎn) 7523727
- 6 孩子的數(shù)學(xué)邏輯比運(yùn)算結(jié)果重要 7423704
- 7 背簍老人等公交被拒載 司機(jī)被開(kāi)除 7331317
- 8 榴蓮降至15元一斤 7239129
- 9 港珠澳大橋主橋?qū)⒎忾] 7139141
- 10 美團(tuán)回應(yīng)外賣功能癱瘓 7043921