GraphRAG 索引 🤖
GraphRAG 索引包是一个数据管道和转换套件,旨在使用 LLM 从非结构化文本中提取有意义的结构化数据。
索引管道是可配置的。它们由工作流、标准和自定义步骤、提示模板以及输入/输出适配器组成。我们的标准管道设计用于:
- 从原始文本中提取实体、关系和声明
- 在实体中执行社区检测
- 生成多粒度级别的社区摘要和报告
- 将实体嵌入到图向量空间中
- 将文本块嵌入到文本向量空间中
管道的输出可以存储在多种格式中,包括 JSON 和 Parquet,或者可以通过 Python API 手动处理。
入门指南
要求
有关设置开发环境的详细信息,请参阅 入门指南 中的 要求 部分。
索引引擎可以在默认配置模式或自定义管道模式下使用。要配置 GraphRAG,请参阅 配置 文档。在您拥有配置文件后,可以使用 CLI 或 Python API 运行管道。
使用方法
CLI
# 通过 Poetry
poetry run poe cli --root <data_root> # 默认配置模式
poetry run poe cli --config your_pipeline.yml # 自定义配置模式
# 通过 Node
yarn run:index --root <data_root> # 默认配置模式
yarn run:index --config your_pipeline.yml # 自定义配置模式
Python API
from graphrag.index import run_pipeline
from graphrag.index.config import PipelineWorkflowReference
workflows: list[PipelineWorkflowReference] = [
PipelineWorkflowReference(
steps=[
{
# 内置动词
"verb": "derive", # https://github.com/microsoft/datashaper/blob/main/python/datashaper/datashaper/verbs/derive.py
"args": {
"column1": "col1", # 来自上方
"column2": "col2", # 来自上方
"to": "col_multiplied", # 新列名
"operator": "*", # 将两列相乘
},
# 由于我们试图对默认输入进行操作,因此不需要显式指定输入
}
]
),
]
dataset = pd.DataFrame([{"col1": 2, "col2": 4}, {"col1": 5, "col2": 10}])
outputs = []
async for output in await run_pipeline(dataset=dataset, workflows=workflows):
outputs.append(output)
pipeline_result = outputs[-1]
print(pipeline_result)