| # **GraphRAG** | |
| GraphRAG is a Python-based framework designed to build, manage, and query **Graph Retrieval-Augmented Generation (GraphRAG)** systems. It combines advanced graph processing tools like **Neo4j** and **NetworkX** with natural language capabilities powered by **LLMs (Large Language Models)** to create, visualize, and query knowledge graphs. | |
| --- | |
| ## **Features** | |
| - **Knowledge Graph Construction**: Extract entities and relationships from text and construct a knowledge graph. | |
| - **Graph Management**: | |
| - Store and query graphs in **Neo4j**. | |
| - Perform analysis and operations on **NetworkX** graphs. | |
| - **Graph Summarization**: Analyze and summarize communities within the graph. | |
| - **Natural Language Interaction**: Generate answers to queries using the knowledge graph and language models. | |
| - **Interactive Visualization**: Explore and interact with knowledge graphs using **Gradio**. | |
| - **Modular Design**: A highly organized and reusable codebase for scalable development. | |
| --- | |
| ## **File Structure** | |
| βββ graphRAG # Main project directory | |
| βββ init.py #Marks the directory as a Python package | |
| βββ main.py # Entry point to run the GraphRAG pipeline | |
| βββ community_summaries.pkl # Serialized summaries of graph communities | |
| βββ entities_extraction.py # Extract entities and relationships from text | |
| βββ generating_answers.py # Generate answers to queries using the graph | |
| βββ get_communities.py # Identify and analyze graph communities | |
| βββ gradio_viz.py # Gradio-based interactive graph visualization | |
| βββ graph_builder.py # Build the knowledge graph | |
| βββ graph_nx.py # Manage and analyze NetworkX-based graphs | |
| βββ KG_classes.py # Defines classes for knowledge graph objects | |
| βββ subgraphs.py # Extract and manage subgraphs | |
| βββ utils.py # Shared utility functions | |
| βββ graph.gpickle # Serialized NetworkX graph file | |
| βββ README.md # Project documentation (this file) |