GraphRAG 索引

GraphRAG 索引包是一个数据管道和转换套件,旨在使用 LLM 从非结构化文本中提取有意义的结构化数据。

索引管道是可配置的。它们由工作流、标准和自定义步骤、提示模板以及输入/输出适配器组成。我们的标准管道旨在:

从原始文本中提取实体、关系和声明
在实体中执行社区检测
生成多层次的社区摘要和报告
将实体嵌入到图向量空间中
将文本块嵌入文本向量空间
管道的输出可以存储为多种格式,包括 JSON 和 Parquet - 或者可以通过 Python API 手动处理。

入门
要求
有关设置开发环境的详细信息,请参阅“入门”中的要求部分。

索引引擎可以在默认配置模式下使用,也可以与自定义管道一起使用。要配置 GraphRAG,请参阅配置文档。获得配置文件后,您可以使用 CLI 或 Python API 运行管道。

用法

命令行界面

# Via Poetry
poetry run poe cli --root <data_root> # default config mode
poetry run poe cli --config your_pipeline.yml # custom config mode

# Via Node
yarn run:index --root <data_root> # default config mode
yarn run:index --config your_pipeline.yml # custom config mode

Python API

from graphrag.index import run_pipeline
from graphrag.index.config import PipelineWorkflowReference

workflows: list[PipelineWorkflowReference] = [
    PipelineWorkflowReference(
        steps=[
            {
                # built-in verb
                "verb": "derive",  # https://github.com/microsoft/datashaper/blob/main/python/datashaper/datashaper/engine/verbs/derive.py
                "args": {
                    "column1": "col1",  # from above
                    "column2": "col2",  # from above
                    "to": "col_multiplied",  # new column name
                    "operator": "*",  # multiply the two columns
                },
                # Since we're trying to act on the default input, we don't need explicitly to specify an input
            }
        ]
    ),
]

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)
作者:Jeebiz  创建时间:2024-08-06 22:02
最后编辑:Jeebiz  更新时间:2025-01-08 23:23