FalkorDB 是一款超快速、開源的多租戶屬性圖形資料庫,專為 LLM 知識圖譜與 GraphRAG(基於圖形的檢索增強生成)打造。作為 RedisGraph 的直接繼任者(Redis Inc. 於 2023 年停止維護),FalkorDB 已被越來越多需要在大型語言模型時代使用優化圖形資料庫效能的 AI 從業者採用。
在底層,FalkorDB 使用透過 GraphBLAS 標準實現的稀疏矩陣運算來表示與查詢圖形的鄰接矩陣。這種方法與大多數圖形資料庫使用的基於索引的遍歷有根本不同,這也是 FalkorDB 即使在擁有數百萬節點的圖形上也能實現毫秒級延遲查詢效能的關鍵。
graph TD
A[LLM 應用程式] --> B[自然語言查詢]
B --> C[GraphRAG 管線]
C --> D[Cypher 查詢翻譯]
D --> E[FalkorDB 引擎]
E --> F[GraphBLAS 稀疏矩陣]
F --> G[鄰接矩陣 A]
F --> H[鄰接矩陣 B]
G --> I[查詢結果]
H --> I
I --> C
C --> J[上下文增強的 LLM 回應]什麼是 FalkorDB?
FalkorDB 是一個屬性圖形資料庫,以 Redis 模組的形式實作。它將資料儲存為節點(實體)與邊(關係),兩者都帶有屬性。它與 Neo4j 等其他圖形資料庫的區別在於其計算引擎:FalkorDB 不是逐節點遍歷索引,而是將整個圖形表示為稀疏鄰接矩陣,並使用線性代數運算執行圖形查詢。
這種被稱為基於 GraphBLAS 的圖形計算的方法,使 FalkorDB 能夠在那些使用傳統基於索引的方法需要數秒才能遍歷的圖形上,實現亞毫秒級的查詢延遲。對於查詢速度直接影響使用者體驗的 AI 工作負載,這種效能差異至關重要。
FalkorDB 採用 Server Side Public License v1 (SSPLv1) 授權,只要不將軟體作為資料庫即服務產品提供,就允許自由使用、修改與重新分發。
FalkorDB 與 RedisGraph 相比如何?
RedisGraph 是一個先驅性的 Redis 圖形資料庫模組,但 Redis Inc. 在 2023 年因公司開源策略轉變而停止維護。FalkorDB 團隊分叉了最終的開源版本並繼續積極開發,增加了重要的新功能:
| 功能 | RedisGraph(已停止維護) | FalkorDB |
|---|---|---|
| 積極開發 | 否 | 是(每週發布) |
| 多租戶支援 | 單一資料庫 | 多租戶,資料庫隔離 |
| GraphRAG 工具包 | 無 | 完整工具包,含 LLM 整合 |
| QueryWeaver 最佳化器 | 無 | AI 驅動的查詢最佳化 |
| 客戶端函式庫 | Python、JS、Java | Python、TypeScript、Java、Go、.NET、Rust |
| 視覺化 | 最小 | FalkorDB Browser(TypeScript 網頁介面) |
| LangChain 整合 | 無 | 一級支援 |
| LlamaIndex 整合 | 無 | 一級支援 |
FalkorDB 保持與 RedisGraph 使用的 OpenCypher 查詢語言的 API 相容性,因此現有的 RedisGraph 使用者只需極少變更即可遷移。
什麼是 GraphRAG?
GraphRAG 代表基於圖形的檢索增強生成。它是標準的向量 RAG 方法的替代方案,向量 RAG 已成為將 LLM 回應錨定在事實資料中的主導模式。
傳統 RAG 的工作方式:
- 將文件嵌入為向量
- 儲存在向量資料庫中
- 尋找與查詢最相似的向量
- 將匹配的內容作為上下文提供給 LLM
GraphRAG 的工作方式不同:
- 實體與關係從文件中提取並儲存為圖形
- 當查詢進來時,沿著關係路徑遍歷圖形
- 遍歷的實體及其連線作為上下文回傳
- LLM 接收結構化、關係感知的上下文,而非平面文件區塊
GraphRAG 的關鍵優勢是多跳推理。向量搜尋可以找到與查詢類似的文件,但如果未經明確訓練,它無法回答「概念 A 如何透過中介 C 與概念 B 相關?」的問題。GraphRAG 可以遍歷 A -> X -> Y -> C -> B 的路徑,並回傳完整的關係鏈。
| 方法 | 優勢 | 劣勢 |
|---|---|---|
| 向量 RAG | 快速、簡單、適合語義相似度 | 無關係感知、平面上下文 |
| GraphRAG | 多跳推理、關係感知、結構化上下文 | 簡單查詢較慢、需要建構圖形 |
| 混合 | 兩者最佳 | 實作與維護更複雜 |
FalkorDB 透過與 LangChain、LlamaIndex 以及 GraphRAG Toolkit 等框架的整合,同時支援純 GraphRAG 與混合方法。
FalkorDB 使用什麼查詢語言?
FalkorDB 使用 OpenCypher,這是開放的標準屬性圖形查詢語言。典型的 FalkorDB 查詢如下所示:
MATCH (p:Person)-[:WORKS_AT]->(c:Company)
WHERE c.name = 'FalkorDB'
RETURN p.name, p.role
ORDER BY p.name
FalkorDB 以專有擴充功能延伸 OpenCypher,支援圖形投影、矩陣運算與多租戶資料庫管理等圖形特定操作。
快速開始與部署
開始使用 FalkorDB 只需不到一分鐘:
docker run -p 6379:6379 -p 3000:3000 -it --rm falkordb/falkordb:edge
這條指令會將 FalkorDB 作為 Redis 模組啟動在埠 6379,並在埠 3000 啟動 FalkorDB Browser 視覺化介面。您可以使用任何 Redis 客戶端(在埠 6379 使用 redis-cli)或使用以下客戶端函式庫之一連接:
- Python:
pip install falkordb(FalkorDB/falkordb-py) - TypeScript:
npm install falkordb(FalkorDB/falkordb-ts) - Java:(FalkorDB/JFalkorDB)
- Go:(社群:falkordb/falkordb-go)
- Rust:(FalkorDB/redismodule-rs)
FAQ
什麼是 FalkorDB? FalkorDB 是一款超快速、開源的多租戶屬性圖形資料庫,專為 LLM 知識圖譜與 GraphRAG 設計。它是 RedisGraph 的繼任者,使用稀疏矩陣 GraphBLAS 運算實現高效能圖形查詢。
FalkorDB 與 RedisGraph 相比如何? FalkorDB 是 RedisGraph 的直接演化版本。當 Redis Inc. 停止維護 RedisGraph 後,FalkorDB 團隊分叉並繼續開發,增加了多租戶支援、改進的 GraphRAG 功能以及持續的效能優化。
什麼是 GraphRAG? GraphRAG(基於圖形的檢索增強生成)是一種使用知識圖譜作為 LLM 檢索後端的方法。與向量相似度搜尋不同,GraphRAG 遍歷圖形關係以尋找上下文相關的資訊,實現多跳推理。
FalkorDB 使用什麼查詢語言? FalkorDB 使用帶有專有擴充功能的 OpenCypher。OpenCypher 是屬性圖形查詢語言的開放標準,最初由 Neo4j 開發。FalkorDB 透過圖形資料庫特定優化對其進行了擴充。
如何開始使用 FalkorDB? 執行 docker run -p 6379:6379 -p 3000:3000 -it –rm falkordb/falkordb:edge。這會將 FalkorDB 作為 Redis 模組啟動在埠 6379,並在埠 3000 啟動 FalkorDB Browser 介面。提供 Python、TypeScript、Java、Go、.NET 與 Rust 的客戶端函式庫。
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!