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助你行銷加分!