基准测试领先的准确性 · FalkorDB 高速 · 多租户 · 图遍历 · 5 分钟快速上手
大多数 GraphRAG 系统在演示中表现良好,但在生产环境压力下容易崩溃。GraphRAG SDK 基于真实部署经验诞生,核心理念简单直接:检索机制比模型本身更重要。最终形成了一个模块化、基准测试领先的框架,具有可预测的成本和合理的默认配置,让您能够在 5 分钟内从原始文档获得带有引用的答案。
| 排名 | 系统 | 小说(多文档) | 医学(单文档) | 总体 |
|---|---|---|---|---|
| 1 | FalkorDB GraphRAG SDK ◄ | 63.73 | 75.73 | 69.73 |
| 2 | G-Reasoner | 58.94 | 73.30 | 66.12 |
| 3 | AutoPrunedRetriever | 63.72 | 67.00 | 65.36 |
| 4 | HippoRAG2 | 56.48 | 64.85 | 60.67 |
| 5 | Fast-GraphRAG | 52.02 | 64.12 | 58.07 |
| 6 | RAG(带重排序)(向量 RAG) | 48.35 | 62.43 | 55.39 |
| 7 | LightRAG | 45.09 | 62.59 | 53.84 |
| 8 | HippoRAG | 44.75 | 59.08 | 51.92 |
| 9 | MS-GraphRAG(本地模式) | 50.93 | 45.16 | 48.05 |
总体准确率基于 GraphRAG-Bench 的小说(20 部小说,2010 个问题)和医学(1 个语料库,2062 个问题)数据集。FalkorDB 使用
gpt-4o-mini(Azure OpenAI)测试;其他系统的数据来自已发布的排行榜。总体准确率为小说和医学准确率的平均值。详见 docs/benchmark.md 的按类别分解、方法和复现说明。
向量匹配相似文本块,而图则遍历关系。每个答案都标注了来源。
pip install graphrag-sdk[litellm]
docker run -d -p 6379:6379 -p 3000:3000 --name falkordb falkordb/falkordb:latest
export OPENAI_API_KEY="sk-..."
如需处理 PDF,请安装
pip install graphrag-sdk[litellm,pdf]
在将数据写入图库之前,系统会自动清理 ID 和字符串属性中不支持的字符,有助于避免来自嘈杂 PDF 文件的 Cypher 解析错误。
import asyncio
from graphrag_sdk import GraphRAG, ConnectionConfig, LiteLLM, LiteLLMEmbedder
async def main():
async with GraphRAG(
connection=ConnectionConfig(host="localhost", graph_name="my_graph"), # graph_name = 每个租户隔离
llm=LiteLLM(model="openai/gpt-5.5"),
embedder=LiteLLMEmbedder(model="openai/text-embedding-3-large", dimensions=256),
) as rag:
# 导入原始文本(如果安装了 pdf 扩展,可以传入文件路径)
result = await rag.ingest(
text="Alice Johnson is a software engineer at Acme Corp in London.",
document_id="my_doc",
)
print(f"节点: {result.nodes_created}, 关系: {result.relationships_created}")
# 完成处理:去重实体、回填嵌入、创建索引
await rag.finalize()
# 完整 RAG:检索 + 生成
answer = await rag.completion("Where does Alice work?")
print(answer.answer)
asyncio.run(main())
from graphrag_sdk import GraphSchema, EntityType, RelationType
schema = GraphSchema(
entities=[
EntityType(label="Person", description="一个人类个体"),
EntityType(label="Organization", description="公司或机构"),
EntityType(label="Location", description="地理位置"),
],
relations=[
RelationType(label="WORKS_AT", description="受雇于", patterns=[("Person", "Organization")]),
RelationType(label="LOCATED_IN", description="位于", patterns=[("Organization", "Location")]),
],
)
async with GraphRAG(
connection=ConnectionConfig(host="localhost", graph_name="my_graph"),
llm=LiteLLM(model="openai/gpt-5.5"),
embedder=LiteLLMEmbedder(model="openai/text-embedding-3-large", dimensions=256),
schema=schema,
) as rag:
... # 按上述方式导入/查询
→ 完整入门教程:入门指南
→ 基准测试获胜配方:自定义策略
| 阶段 | 步骤 | 消耗资源 |
|---|---|---|
| 导入 | 提取实体与关系 | 大模型 |
| 导入 | 解析与去重实体 | 大模型 |
| 导入 | 嵌入与索引 | 大模型 |
| 检索 | 向量搜索 | 数据库 |
| 检索 | 全文搜索 | 数据库 |
| 检索 | 文本到 Cypher 查询 (实验性) | 大模型 |
| 检索 | Cypher 查询 | 数据库 |
| 检索 | 关系扩展 | 数据库 |
| 检索 | 余弦重排序 | 本地 |
💡 每个答案都可以通过
MENTIONS边追溯到其源文本块。在completion()中传入return_context=True可获取检索轨迹和答案。
可直接运行的示例 —— 下载后替换数据源即可部署。
| # | 示例 | 你将构建 |
|---|---|---|
| 1 | 快速开始 | 30 行内的第一个导入与查询循环 |
| 2 | PDF 带模式 | 带自定义实体和关系类型的 PDF 问答机器人 |
| 3 | 自定义策略 | 可直接投入使用的基准测试获胜流程 |
| 4 | 自定义提供者 | 通过清晰接口接入任意大模型或嵌入器 |
| 5 | 笔记本演示 | 展示来源追溯的交互式教程 |
| 指南 | 描述 |
|---|---|
| 入门指南 | 从安装到首次查询的分步教程 |
| 架构 | 流程设计、图谱模式、检索策略 |
| 配置 | 连接、提供者和调优参考 |
| 策略 | 所有抽象基类和内置实现 |
| 提供者 | 大模型和嵌入器配置指南 |
| 基准测试 | 方法、结果和复现说明 |
| API 参考 | 完整 API 文档 |
pip install graphrag-sdk==0.8.2我们欢迎贡献!请参阅 CONTRIBUTING.md 了解开发环境搭建、测试和代码风格指南。
请在参与前阅读我们的行为准则。
如果您在研究中使用 GraphRAG SDK,请引用:
@software{graphrag_sdk,
title = {GraphRAG SDK: A Modular Graph RAG Framework},
author = {FalkorDB},
year = {2026},
url = {https://github.com/FalkorDB/GraphRAG-SDK},
}