Skip to content

Qredence/GraphFleet

Overview

streamlit-github.mp4

GraphFleet is an advanced implementation of GraphRAG from Microsoft, designed to enhance large language models' ability to reason about complex information and private datasets. It builds upon GraphRAG (Retrieval Augmented Generation using Graph structures) and will gradually adopt its own path to fulfill our roadmap at Qredence.

GraphFleet

GraphFleet uses knowledge graphs to provide substantial improvements in question-and-answer performance when reasoning about complex information. It addresses limitations of traditional RAG approaches:

Roadmap

  • Provide a FleetUI Design Kit and a quicker way of starting GraphFleet locally.
  • Provide a Toddle interface ready to use for GraphFleet
  • Add integrations of Composio
  • Add integrations of LangSmith
  • Add few selfhosting one click deploy solutions.
  • Access GraphFleet through a secure and enterprise-ready Azure Cloud hosting version.
  • And way more... 👀

Key Features

  • Structured, hierarchical approach to Retrieval Augmented Generation.
  • Knowledge graph extraction from raw text.
  • Community hierarchy building.
  • Hierarchical summarization.
  • Enhanced reasoning capabilities for LLMs on private datasets.

Our current API Endpoints : https://agenticfleet.apidocumentation.com/reference#tag/search/POST/search/global

Contribute

  • Leave us a star ♥
  • Fork and contribute to the project
  • Discord X (formerly Twitter) Follow

Getting Started

Prerequisites

  • Python 3.11

  • Poetry

  • Make sure to have a virtual environment manager such as virtualenv installed

Installation

  1. Clone the repository:

    git clone https://github.com/Qredence/GraphFleet.git
    cd GraphFleet
  2. Install the dependencies:

    poetry shell
    poetry install

Usage

  1. Configuration: Environment Variables: Set up your environment variables in a .env file (refer to the .env.example file for available options). Key variables include:

Fill in the .env file in the root folder and the one in the graphfleet folder.

export GRAPHRAG_API_KEY="your_api_key_here"
export GRAPHRAG_API_BASE="<https://your-azure-openai-resource.openai.azure.com/>"
export GRAPHRAG_API_VERSION=""
export GRAPHRAG_DEPLOYMENT_NAME="your_deployment_name"
export GRAPHRAG_API_TYPE="azure_openai"
export GRAPHRAG_EMBEDDING_MODEL="text-embedding-ada-002"
export GRAPHRAG_LLM_MODEL="gpt-4"
export GRAPHRAG_DATA_PATH="./your_data_directory"
export GRAPHRAG_EMBEDDING_TYPE="azure_openai_embedding"
export GRAPHRAG_EMBEDDING_KEY="your_embedding_key_here"
export GRAPHRAG_EMBEDDING_ENDPOINT="<https://your-azure-openai-embedding-resource.openai.azure.com/>"
export GRAPHRAG_EMBEDDING_DEPLOYMENT_NAME="your_embedding_deployment_name"

settings.yaml: Customize GraphFleet's behavior further by modifying the settings.yaml file within the graphfleet directory.

  1. Interacting with GraphFleet: settings.yaml: Customize GraphFleet's behavior further by modifying the settings.yaml file within the graphfleet directory. Jupyter Notebooks: Explore GraphFleet's capabilities with the provided notebooks: get-started-graphfleet.ipynb: A comprehensive guide to indexing your data and running basic queries. Local Search Notebook.ipynb: Demonstrates local search techniques. app.py (FastAPI Application): Run a Streamlit-powered web interface to interact with GraphFleet using a user-friendly chat-like interface.

Add your text files in ./graphfleet/input/ and run the auto_prompt function

!python -m graphrag.prompt_tune \
    --config ./graphfleet/settings.yaml \
    --root ./graphfleet \
    --no-entity-types \
    --output ./graphfleet/prompts

Data Indexing

Jupyter Notebook Guide: Follow the instructions provided in the get-started-graphfleet.ipynb notebook to learn how to index your data with GraphFleet. This notebook provides a hands-on experience for setting up your knowledge base.

! python -m graphrag.index \
    --verbose \
    --root ./graphfleet \
    --config ./graphfleet/settings.yaml

Recommended Run these notebook to get started with GraphFleet

Jupyter Notebooks: Explore GraphFleet's capabilities with the provided notebooks:

(Get Started Quickly.ipynb): A comprehensive guide to indexing your data and running basic queries. (Local Search Notebook.ipynb:) Demonstrates local search techniques.

(Global Search Notebook)

Running the API only (or run CLI commands for local search or global search)

To run the API, save the code in a file named api.py and execute the following command in your terminal:

uvicorn app:main --reload --port 8001 

Running Streamlit

To run the API, save the code in a file named api.py and execute the following command in your terminal:

streamlit run app/streamlit_app.py

Security

For details about our security policy, please see Security

License

This project is licensed under the Apache License 2.0. For the full license text, please see License

Star History

Star History Chart