GraphRAG Agent Deployment: Complete Steps to Deploy the Services Locally or with Docker
Deploy the GraphRAG Agent by cloning the repository, installing Python dependencies from requirements.txt, configuring environment variables in .env, optionally starting Neo4j via Docker Compose, and launching both the FastAPI backend (server/main.py) and Streamlit frontend (frontend/app.py).
The GraphRAG Agent is a modular Python project maintained in the 1517005260/graph-rag-agent repository that combines a FastAPI backend with a Streamlit UI to perform retrieval-augmented generation over knowledge graphs. Understanding the correct deployment steps ensures the graph database, LLM connections, and web interface initialize properly. Below is a complete walkthrough of the GraphRAG Agent deployment process, referencing specific source files and commands required to run the services.
Step-by-Step GraphRAG Agent Deployment
Clone the Repository
Start by cloning the source code and navigating into the project directory:
git clone https://github.com/1517005260/graph-rag-agent.git
cd graph-rag-agent
The repository layout and general project overview are documented in the root readme.md file.
Install Python Dependencies
Create an isolated virtual environment and install the required packages listed in requirements.txt:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
The requirements.txt file contains all necessary Python dependencies for the FastAPI server, Streamlit interface, and graph processing libraries.
Configure Environment Variables
Copy the example environment template and populate it with your credentials:
cp .env.example .env
# Edit .env with your Neo4j URI, OpenAI API key, and other secrets
The .env.example template specifies required variables including NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD, and OPENAI_API_KEY. The application reads these at runtime to connect to the graph database and LLM providers.
Start Supporting Services with Docker Compose
If you require a local Neo4j instance (and optional vector store), start the supporting infrastructure:
docker-compose up -d
The docker-compose.yaml file defines the Neo4j database service and any additional containers needed for the graph backend. This step is optional if you already have a remote Neo4j instance configured in your .env file.
Launch the FastAPI Backend
Start the ASGI server using Uvicorn with the application entry point defined in server/main.py:
uvicorn server.main:app --reload
The server/main.py file creates the FastAPI app object, registers API routes, and exposes the health check endpoint at http://127.0.0.1:8000/health. The backend automatically loads configuration from the .env file to establish connections to Neo4j and LLM services.
Start the Streamlit Frontend
In a separate terminal (with the virtual environment activated), launch the web interface:
streamlit run frontend/app.py
The frontend/app.py script initializes the Streamlit UI, while frontend/utils/api.py contains the helper functions that handle HTTP communication between the frontend and the FastAPI backend.
Verify the Deployment
Confirm the services are operational by checking the following endpoints:
- Backend Health: Navigate to
http://127.0.0.1:8000/healthor use the/healthroute implemented inserver/main.py - Streamlit UI: Open
http://localhost:8501in your browser to access the chat interface
Once verified, you can submit RAG queries through the UI or programmatically via the FastAPI routes.
Automated Deployment Script
For convenience, you can automate the entire GraphRAG Agent deployment using a bash script:
#!/usr/bin/env bash
set -e
# Install dependencies
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Configure environment
cp .env.example .env
echo "Edit .env with your credentials before proceeding"
# Start infrastructure
docker-compose up -d
# Start backend in background
uvicorn server.main:app --reload &
# Start frontend
streamlit run frontend/app.py
Summary
- Clone the
1517005260/graph-rag-agentrepository and install dependencies fromrequirements.txtinto a Python virtual environment - Configure the
.envfile based on the.env.exampletemplate, ensuringNEO4J_URIandOPENAI_API_KEYare set - Orchestrate supporting services (Neo4j) using
docker-compose up -das defined in docker-compose.yaml - Launch the FastAPI backend with
uvicorn server.main:app --reloadand the Streamlit frontend withstreamlit run frontend/app.py - Verify deployment via the
/healthendpoint and the Streamlit interface atlocalhost:8501
Frequently Asked Questions
What are the hardware requirements for GraphRAG Agent deployment?
The GraphRAG Agent requires a machine capable of running Python 3.8+ and Docker (if using the included Neo4j container). Minimum specifications include 4GB RAM for local development, though production deployments with large knowledge graphs should allocate additional memory for the Neo4j instance and LLM API processing.
Can I deploy GraphRAG Agent without Docker?
Yes, Docker is only required for the supporting Neo4j database defined in docker-compose.yaml. If you have an existing Neo4j instance (local or cloud-hosted), simply configure the connection details in your .env file and skip the docker-compose step. The FastAPI backend and Streamlit frontend run as standard Python processes.
How do I verify the backend is running correctly?
The FastAPI application exposes a health check endpoint at http://127.0.0.1:8000/health as implemented in server/main.py. A successful response indicates the server is operational and environment variables are loaded. You can also test the RAG functionality using the example Python client provided in the repository documentation.
Which environment variables are required for deployment?
The .env.example file lists all required variables, including NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD for graph database connectivity, and OPENAI_API_KEY (or equivalent) for LLM access. The application will fail to start if these critical connection parameters are missing from the .env file in the project root.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →