Skip to main content

No project description provided

Project description

circlemind fast-graphrag

fast-graphrag is released under the MIT license. PRs welcome! Circlemind Page

Streamlined and promptable Fast GraphRAG framework designed for interpretable, high-precision, agent-driven retrieval workflows.
Looking for a Managed Service? »

Install | Quickstart | Community | Report Bug | Request Feature

[!NOTE] Using The Wizard of Oz, fast-graphrag costs $0.08 vs. graphrag $0.48 — a 6x costs saving that further improves with data size and number of insertions.

News (and Coming Soon)

  • Support for IDF weightening of entities
  • Support for generic entities and concepts (initial commit)
  • [2024.12.02] Benchmarks comparing Fast GraphRAG to LightRAG, GraphRAG and VectorDBs released here

Features

  • Interpretable and Debuggable Knowledge: Graphs offer a human-navigable view of knowledge that can be queried, visualized, and updated.
  • Fast, Low-cost, and Efficient: Designed to run at scale without heavy resource or cost requirements.
  • Dynamic Data: Automatically generate and refine graphs to best fit your domain and ontology needs.
  • Incremental Updates: Supports real-time updates as your data evolves.
  • Intelligent Exploration: Leverages PageRank-based graph exploration for enhanced accuracy and dependability.
  • Asynchronous & Typed: Fully asynchronous, with complete type support for robust and predictable workflows.

Fast GraphRAG is built to fit seamlessly into your retrieval pipeline, giving you the power of advanced RAG, without the overhead of building and designing agentic workflows.

Install

Install from source (recommended for best performance)

# clone this repo first
cd fast_graphrag
poetry install

Install from PyPi (recommended for stability)

pip install fast-graphrag

Quickstart

Set the OpenAI API key in the environment:

export OPENAI_API_KEY="sk-..."

Download a copy of A Christmas Carol by Charles Dickens:

curl https://raw.githubusercontent.com/circlemind-ai/fast-graphrag/refs/heads/main/mock_data.txt > ./book.txt

Optional: Set the limit for concurrent requests to the LLM (i.e., to control the number of tasks processed simultaneously by the LLM, this is helpful when running local models)

export CONCURRENT_TASK_LIMIT=8

Use the Python snippet below:

from fast_graphrag import GraphRAG

DOMAIN = "Analyze this story and identify the characters. Focus on how they interact with each other, the locations they explore, and their relationships."

EXAMPLE_QUERIES = [
    "What is the significance of Christmas Eve in A Christmas Carol?",
    "How does the setting of Victorian London contribute to the story's themes?",
    "Describe the chain of events that leads to Scrooge's transformation.",
    "How does Dickens use the different spirits (Past, Present, and Future) to guide Scrooge?",
    "Why does Dickens choose to divide the story into \"staves\" rather than chapters?"
]

ENTITY_TYPES = ["Character", "Animal", "Place", "Object", "Activity", "Event"]

grag = GraphRAG(
    working_dir="./book_example",
    domain=DOMAIN,
    example_queries="\n".join(EXAMPLE_QUERIES),
    entity_types=ENTITY_TYPES
)

with open("./book.txt") as f:
    grag.insert(f.read())

print(grag.query("Who is Scrooge?").response)

The next time you initialize fast-graphrag from the same working directory, it will retain all the knowledge automatically.

Examples

Please refer to the examples folder for a list of tutorials on common use cases of the library:

  • custom_llm.py: a brief example on how to configure fast-graphrag to run with different OpenAI API compatible language models and embedders;
  • checkpointing.ipynb: a tutorial on how to use checkpoints to avoid irreversible data corruption;
  • query_parameters.ipynb: a tutorial on how to use the different query parameters. In particular, it shows how to include references to the used information in the provided answer (using the with_references=True parameter).

Contributing

Whether it's big or small, we love contributions. Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Check out our guide to see how to get started.

Not sure where to get started? You can join our Discord and ask us any questions there.

Philosophy

Our mission is to increase the number of successful GenAI applications in the world. To do that, we build memory and data tools that enable LLM apps to leverage highly specialized retrieval pipelines without the complexity of setting up and maintaining agentic workflows.

Fast GraphRAG currently exploit the personalized pagerank algorithm to explore the graph and find the most relevant pieces of information to answer your query. For an overview on why this works, you can check out the HippoRAG paper here.

Open-source or Managed Service

This repo is under the MIT License. See LICENSE.txt for more information.

The fastest and most reliable way to get started with Fast GraphRAG is using our managed service. Your first 100 requests are free every month, after which you pay based on usage.

circlemind fast-graphrag demo

To learn more about our managed service, book a demo or see our docs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fast_graphrag-0.0.5.tar.gz (47.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_graphrag-0.0.5-py3-none-any.whl (59.5 kB view details)

Uploaded Python 3

File details

Details for the file fast_graphrag-0.0.5.tar.gz.

File metadata

  • Download URL: fast_graphrag-0.0.5.tar.gz
  • Upload date:
  • Size: 47.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.9

File hashes

Hashes for fast_graphrag-0.0.5.tar.gz
Algorithm Hash digest
SHA256 eb6ff5d40687c190bbce8734df9ddd25cca1972f0e39098f649754de74cde536
MD5 2eae28507c8bd3b5d942dd5f594a20a1
BLAKE2b-256 37b57681dabbffa8ec6d93594bc444164176c804475caf28b1a9eda5cc3c1bd3

See more details on using hashes here.

File details

Details for the file fast_graphrag-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: fast_graphrag-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 59.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.9

File hashes

Hashes for fast_graphrag-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a9e3f22831bd0d9ddf5ec1d49b7468f7b842971ed8e10c5a61da745c8ac35a29
MD5 75816df759f8d018dc93f23ffb007d4d
BLAKE2b-256 14c985a6553dd0b2347aaca51b4ce61eb389d8a4bb24a3fc4a94176bb79b3c5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page