自带图
一些用户询问是否可以自带现有的图,并使用 GraphRAG 对其进行总结以进行查询。 有很多可能的方法可以做到这一点,但在这里我们将描述一种简单的方法,它可以很容易地与现有的 GraphRAG 工作流程保持一致。
为了涵盖 GraphRAG 查询的基本用例,您应该从数据中导出两到三个表
- entities.parquet - 这是数据集中找到的实体列表,它们是图的节点。
- relationships.parquet - 这是数据集中找到的关系列表,它们是图的边。
- text_units.parquet - 这是从中提取图的源文本块。 根据您打算使用的查询方法(稍后描述),这是可选的。
这里描述的方法是运行一个自定义 GraphRAG 工作流程管道,该管道假设文本分块、实体提取和关系提取已经发生。
表格
实体
请参阅完整的实体表格模式。 对于图摘要目的,您只需要 id、title、description 和 text_unit_ids 列表。
其他属性用于可选的图形可视化目的。
关系
请参阅完整的关系表格模式。 对于图摘要目的,您只需要 id、source、target、description、weight 和 text_unit_ids 列表。
注意:
weight
字段很重要,因为它用于正确计算 Leiden 社区!
工作流程配置
GraphRAG 包含仅指定您需要的特定工作流程步骤的能力。 对于基本的图摘要和查询,您需要在 settings.yaml 中包含以下配置
这将导致 GraphRAG 全局搜索 仅需最少的工作流程。
可选的其他配置
如果您想运行本地、DRIFT 或 基本搜索,您将需要包含 text_units 和一些嵌入。
文本单元
请参阅完整的 text_units 表格模式。 文本单元是您文档的块,这些块的大小经过调整以确保它们适合您模型的上下文窗口。 一些搜索方法会使用这些单元,因此如果您有这些单元,您可能需要包含它们。
扩展配置
要执行上述其他搜索类型,您需要嵌入某些内容。 只需添加嵌入工作流程
FastGraphRAG
FastGraphRAG 使用 text_units 进行社区报告,而不是实体和关系描述。 如果您的图是以某种不包含描述的方式获得的,这可能是一个有用的替代方案。 在这种情况下,您需要更新您的工作流程列表以包含文本变体
此方法要求您的实体和关系表具有指向 text_unit_ids 列表的有效链接。 另请注意,只有在您进行除全局搜索以外的搜索时,才仍然需要generate_text_embeddings
。
设置
将它们放在一起
input
:GraphRAG 确实需要一个输入文档集,即使您不需要我们处理它。 您可以创建一个输入文件夹并在其中放入一个 dummy.txt 文档来解决这个问题。output
:创建一个输出文件夹,并将您的实体和关系(以及可选的 text_units)parquet 文件放入其中。- 如上所述更新您的配置,以仅运行您需要的工作流程子集。
- 运行
graphrag index --root <您的项目根目录>