GraphRAG

Developing GraphRAG

Requirements

Name Installation Purpose
Python 3.10-3.12 Download The library is Python-based.
Poetry Instructions Poetry is used for package management and virtualenv management in Python codebases

Getting Started

Install Dependencies

# Install Python dependencies.
poetry install

Execute the Indexing Engine

poetry run poe index <...args>

Executing Queries

poetry run poe query <...args>

Azurite

Some unit and smoke tests use Azurite to emulate Azure resources. This can be started by running:

./scripts/start-azurite.sh

or by simply running azurite in the terminal if already installed globally. See the Azurite documentation for more information about how to install and use Azurite.

Lifecycle Scripts

Our Python package utilizes Poetry to manage dependencies and poethepoet to manage build scripts.

Available scripts are:

Troubleshooting

"RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config" when running poetry install

Make sure llvm-9 and llvm-9-dev are installed:

sudo apt-get install llvm-9 llvm-9-dev

and then in your bashrc, add

export LLVM_CONFIG=/usr/bin/llvm-config-9

"numba/_pymodule.h:6:10: fatal error: Python.h: No such file or directory" when running poetry install

Make sure you have python3.10-dev installed or more generally python<version>-dev

sudo apt-get install python3.10-dev

LLM call constantly exceeds TPM, RPM or time limits

GRAPHRAG_LLM_THREAD_COUNT and GRAPHRAG_EMBEDDING_THREAD_COUNT are both set to 50 by default. You can modify this values to reduce concurrency. Please refer to the Configuration Documents