🔥三分鐘為GraphRAG實現3D知識圖譜!從Parquet到3D可視化,用Python打造3D知識圖譜:NetworkX與Plotly的完美結合 #graphrag #rag #知識圖譜 #ai

歡迎來到AI超言語
我爲GraphRack實現了3D知識圖譜
我們可以看一下
這是我實現的3D知識圖譜
因爲之前在評論區
很多小夥伴留言說
如何實現以知識圖譜的形式
來查看GraphRack生成的這些縮影
於是我就用開源的NetworkX加Platelet
爲大家實現了這個3D知識圖譜
我們可以看一下
這是完善版的知識圖譜
這裏我還實現了一個簡化版的知識圖譜
這個簡化版的知識圖譜
看起來就比較直觀
沒有其他多餘的功能
我們可以將鼠標旋停
來查看屍體的名稱
還有這些屍體的關係
而且這個知識圖譜
還支持360度旋轉
這是一個簡化版的
然後我實現了這個
就是功能比較完善的版本
而且這個版本
我們可以調節這些屍體節點的大小
我們可以直接用鼠標
拖動底部滾動條上這個圓點
來調節3D知識圖譜中節點的大小
我們繼續拖動
還可以繼續放大
這樣的話我們就能看到
更加清晰更加直觀
而且在知識圖譜的頂部
還加入了三個功能
包括屍體的節點
還有這些屍體關係的這些邊
而且這裏還可以
只顯示屍體的關係
我們直接點這個nodes only
這樣的話它就不顯示
這些屍體之間的這個邊
選擇這個顯示所有
它就會顯示這些屍體
還有這些屍體之間的關係
我們只需要將鼠標
旋停在某一個節點上
然後就會顯示
這個節點的屍體名稱
我們放大看一下
這個知識圖譜
我是基於前幾期視頻中
所創建的這個縮影
在上期和上上期的視頻中
我都是使用的這個項目
因爲這個項目在之前的視頻中
都有爲大家講解如何創建
這裏面的這些parket文件
都是位於這個inputs
artifacts文件夾下的
因爲大家如果直接用
官方給的這個命令
創建出來的這些parket文件
它是在默認的日期文件夾下的
並不是在inputs artifacts文件夾下的
所以大家如果不會創建的話
可以看我上期和上上期的視頻
這樣的話
我們就可以以知識圖譜的形式
來顯示我們用guide flag
創建的這些縮影
因爲在實際的企業項目開發中
很多客戶可能需要將知識圖譜
來集成到我們的
檢索增強系統的這個項目中
這樣的話
我們就會用開源的passing pool
來實現這種可視化的3D知識圖譜
而且它支持多種功能
看起來非常直觀
而且這些節點的顏色
大家也可以去自定義
並且我還在右下角
加入了這個度中心性分佈
我們這裏將鼠標旋停
就會顯示這些詳細的參數
右上角是節點度分佈
我們只需要將鼠標旋停
就可以查看這些詳細的信息
這樣的話
這個知識圖譜就非常完善了
我們只需要刷加修改
就可以加入到train later
或者上期視頻
爲大家演示的open web ui中
我們先看一下
這個知識圖譜的實現流程
首先它是讀取這個parking文件
將parking文件
用pandas進行處理
處理成data frame
然後再用開源的passing pool
network x實現這個圖譜的結構
最後再使用platelet框架
實現可視化顯示
也就是現在我們在瀏覽器中
看到的這種可視化的這個方案
我們先看一下
我們是如何實現的整個項目
我們這裏使用了3D膠布式圖形
使用platelet
創建可以旋轉縮放的3D圖形
我們看一下項目中
我們所用到的parking文件
它是一種劣勢存儲文件格式
旨在實現高效的數據存儲和檢索
由alpha7開發
廣泛用於大數據生態系統
我們看一下它的優點
能提高查詢性能
減少存儲空間
能實現高效的IO操作
具有模式演進支持
它能用於數據倉庫
用於分析數據庫的
我們再看一下
我們實現這個3D知識圖譜
用到的最重要的這個開源庫
network x
它是一個用於複雜網絡分析的passing pool
提供了創建操作
和研究複雜網絡結構的工具
支持有像圖和無像圖
提供大量圖算法
可以存儲節點和編的屬性
還能支持圖的可視化
我們再看一下
我們用到的這個platelet
它是一個用於
創建交互式圖表的passing pool
支持多種圖表類型
包括3D圖形
提供交互式功能
可以創建複雜的多詞圖補局
支持自定義樣式和主題
下面爲大家講一下
我們創建這個3D知識圖譜
所用的這個passing代碼
然後這個passing腳本的代碼量非常少
只有不到300行
首先我們導入了panas這個庫
它是用於數據處理和操作
然後再就是我們導入了networkx
它是用於創建和分析圖的結構
下面我們導入了platelet
這個是用於創建交互式可視化
下面我們看一下
這個腳本中這些重要的函數的功能
首先是讀取parking文件的這個函數
它的功能就是讀取指定目錄下的parking文件
併合併成一個data frame
下面我們再看一下
清理data frame這個方法
它的功能是清理data frame
移除無效的行
下面我們再看一下
這個創建知識圖譜的這個函數
它的功能是從data frame中創建知識圖譜
實現方式是使用networkx
創建遊向圖
下面這個函數的功能是
創建節點和編的三筆軌跡
這個函數的功能就是
創建編標籤和三筆軌跡
這個函數的功能就是
創建節點度分佈直方圖
這個函數的功能就是
創建節點中心分佈相線圖
然後這個函數
它的功能就是
使用platelet創建全面優化佈局的
高級交互式知識圖不可視化
下面就是這個主函數的功能
包括讀取parket文件
清理數據
創建知識圖譜
達印圖的統計信息
調用可視化函數
這裏的這個路徑
我就是填了inputs
artifacts的這個路徑
我們可以看一下
也就是在inputs
artifacts文件夾下
因爲我們之前創建索引的時候
所生成的這些parket文件
整個項目大家只需要
將這個路徑修改成自己的路徑就可以
只需要設置好這個路徑之後
我們就可以來運行這個教本了
我們還是在pycharm的終端
用python命令
加這個腳本的名稱
就可以來運行了
運行了之後
它會自動在瀏覽器中
爲我們打開這個項目的交互界面
而且我們可以看到右上角
就有非常多的功能
包括這個保存爲png的圖像
我們只測試一下
這個保存爲這個png
這裏它將這個項目
保存成了png格式的圖像
我們點開看一下
這樣的話
它就將剛纔的這個web界面
保存成了圖像格式
這個項目
我們都是用的python來實現的
本期視頻所用的代碼
我都會放在視頻的下方
如果你在視頻的下方沒有找到
說明這不是我的首發平臺
本期視頻就做到這裏
謝謝大家觀看