New 7/20/26 — v0.7.1 release: Document processing now supports LiteParse in addition to the previous Docling and LlamaParse support. Langflow integration ships with fixes and an optional Langflow Docker image bundling the 12 "Flexible" components. MS Graph delta query support was added for more efficient incremental updating with SharePoint and OneDrive data sources.
New 7/5/26: Optional Langflow visual flows — the app can run its ingest pipeline, hybrid search, and AI query through customizable Langflow flows (12 custom Flexible GraphRAG components), using your existing .env config. See Langflow Integration.
New 5/6/26: 15 property graph databases total: 8 supported on both LlamaIndex and LangChain, 1 LI-only (Google Cloud Spanner Graph), 6 LC-only (ArangoDB, Apache AGE, Azure Cosmos DB for Gremlin, Apache HugeGraph, SurrealDB, TigerGraph). AWS Neptune RDF/SPARQL added. All 10 vector databases, all 3 search engines, and all LLM/embedding providers work with both LlamaIndex and LangChain. Every pipeline stage (chunking, KG extraction, graph write, vector write, search write, and retrieval fusion) can be configured independently. (Data source reading is LlamaIndex only; RDF stores use framework-independent adapters with LangChain Text-to-SPARQL retrieval.)
New: Flexible GraphRAG now supports RDF-based ontologies for both property graph databases and RDF triple store databases (Graphwise Ontotext GraphDB, Fuseki, and Oxigraph). Document ingestion with KG extraction, auto incremental data source change detection, and UI search (hybrid search, AI query, and AI chat) are all supported with both database types.
New: Flexible GraphRAG supports automatic incremental updates (Optional) from most data sources, keeping your Vector, Search and Graph databases synchronized in real-time or near real-time.
New: KG Spaces Integration of Flexible GraphRAG in Alfresco ACA Client
Flexible GraphRAG
Flexible GraphRAG is an open source AI context platform supporting a document processing pipeline (Docling, LlamaParse, or LiteParse), knowledge graph auto-building, ontologies, schemas, many LLM providers, GraphRAG and RAG, hybrid semantic search (fulltext, vector, property graph, RDF/SPARQL), AI query, and AI chat. The backend is Python with LlamaIndex and LangChain as peer frameworks. LlamaIndex is the default for each pipeline stage; LangChain can be selected per stage in environment configuration. The API is a REST FastAPI service. Angular, React, and Vue TypeScript frontends and an MCP server are included. The stack supports 13 data sources (9 with incremental auto-sync), 15 property graph databases, 4 RDF triple stores (Apache Jena Fuseki, Ontotext GraphDB, Oxigraph, Amazon Neptune RDF), 10 vector databases, OpenSearch / Elasticsearch / BM25 search, and Alfresco. Services and dashboards can be enabled with the provided Docker Compose layout. Optionally, the ingest pipeline, hybrid search, and AI query can run through customizable Langflow visual flows (12 custom components).
v0.6.0 in brief
Version 0.6.0 broadens framework and database choice: LangChain is a full peer to LlamaIndex (per-stage env pickers for chunking, vector, search, property graph, KG extraction, fusion). 15 property graph backends: 8 on both frameworks, Google Cloud Spanner (LlamaIndex-only), 6 LangChain-only (ArangoDB, Apache AGE, Azure Cosmos DB for Gremlin, HugeGraph, SurrealDB, TigerGraph). RDF includes Apache Jena Fuseki, Ontotext GraphDB, Oxigraph, and Amazon Neptune RDF. Incremental delete, LangChain adapters, and cleanup paths were extended across stores (see CHANGELOG.md).
Features
- Hybrid Search: Configurable hybrid search combining vector search, full-text search, property-graph GraphRAG, and SPARQL against RDF stores.
- Knowledge Graph GraphRAG: Extracts entities and relationships from documents to build graphs in property graph databases and RDF stores. Optional schemas and ontologies guide extraction or act as a starting point for the LLM to extend.
- RDF/Ontology Support: Load OWL/RDFS ontologies to guide KG extraction into any property graph or RDF store; SPARQL 1.1 queries; RDF 1.2 triple annotations; full UI pipeline (ingest, hybrid search, AI query/chat, incremental auto-sync). See Ontology and RDF Support below.
- 15 Property Graph Databases: 8 on both LI+LC (Neo4j, ArcadeDB, FalkorDB, Ladybug, Memgraph, NebulaGraph, Amazon Neptune, Neptune Analytics), 1 LI-only (Google Cloud Spanner), 6 LC-only (ArangoDB, Apache AGE, Cosmos Gremlin, HugeGraph, SurrealDB, TigerGraph) — with KG extraction, hybrid search, and AI query/chat
- 4 RDF Triple Stores: Apache Jena Fuseki, Ontotext GraphDB, Oxigraph, Amazon Neptune RDF.
- 10 Vector Databases: Qdrant, Elasticsearch, OpenSearch, Neo4j, Chroma, Milvus, Weaviate, Pinecone, PostgreSQL pgvector, LanceDB — for semantic similarity search
- 3 Search Databases: Elasticsearch, OpenSearch, BM25 (built-in) — for full-text search and hybrid ranking
- LLM providers (KG extraction & chat): Ollama, OpenAI, Azure OpenAI, Google Gemini, Anthropic Claude, Google Vertex AI, Amazon Bedrock, Groq, Fireworks AI, OpenAI-compatible endpoints (
openai_like), OpenRouter, LiteLLM proxy, and vLLM — configurable viaLLM_PROVIDER; see Supported LLM Providers - Embedding providers: OpenAI, Ollama, Azure OpenAI, Google GenAI, Vertex AI, Bedrock, Fireworks, OpenAI-like (
EMBEDDING_KIND=openai_like), and LiteLLM — see LLM Configuration - Dual-framework pipeline: LlamaIndex and LangChain are first-class choices for chunking, vector and search adapters, property graphs, KG extraction, RDF text-to-SPARQL retrieval, and hybrid fusion—each stage can be set independently (LlamaIndex defaults). See Framework Configuration.
- Multi-Source Ingestion: Processes documents from 13 data sources (9 with incremental auto sync): (file upload, cloud storage, enterprise repositories, web sources) with Docling (default), LlamaParse (cloud API), or LiteParse (local, lightweight) document parsing.
- Observability: Built-in OpenTelemetry instrumentation with automatic LlamaIndex tracing, Prometheus metrics, Jaeger traces, and Grafana dashboards for production monitoring
- FastAPI Server with REST API: Python based FastAPI server with REST APIs for document ingesting, hybrid search, AI query, and AI chat.
- MCP Server: MCP server providing Claude Desktop and other MCP clients with tools for document/text ingesting (all 13 data sources with 9 supporting incremental auto sync), hybrid search, and AI query. Uses FastAPI backend REST APIs.
- UI Clients: Angular, React, and Vue UI clients support choosing the data source (filesystem, Alfresco, CMIS, etc.), ingesting documents, performing hybrid searches, AI queries, and AI chat. The UI clients use the REST APIs of the FastAPI backend.
- Docker Deployment Flexibility: Supports both standalone and Docker deployment modes. Docker infrastructure provides modular database selection via docker-compose includes - vector, graph, search engines, and Alfresco can be included or excluded with a single comment. Choose between hybrid deployment (databases in Docker, backend and UIs standalone) or full containerization.
- Langflow Visual Flows (optional): Run the ingest pipeline, hybrid search, and AI query through customizable Langflow flows built from 12 custom Flexible GraphRAG components — the same backend machinery (all database, LLM, and framework
.envconfig applies), orchestrated visually. See Langflow Integration.
Frontend Screenshots
Angular Frontend - Tabbed Interface
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
React Frontend - Tabbed Interface
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Vue Frontend - Tabbed Interface
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
System Components
FastAPI Backend (/flexible-graphrag)
- REST API Server: Provides endpoints for document ingestion, search, and AI query/chat
- Hybrid Search Engine: Combines vector similarity (RAG), fulltext (BM25), and graph traversal (GraphRAG)
- Document Processing: Advanced document conversion with Docling, LlamaParse, and LiteParse integration
- Configurable Architecture: Environment-based configuration for all components
- Async Processing: Background task processing with real-time progress updates
MCP Server (/flexible-graphrag-mcp)
- MCP Client support: Model Context Protocol server for Claude Desktop and other MCP clients
- Full API Parity: Tools like
ingest_documents()support all 13 data sources with source-specific configs: filesystem, repositories (Alfresco, SharePoint, Box, CMIS), cloud storage, web;skip_graphflag for all data sources;pathsparameter for filesystem/Alfresco/CMIS; Alfresco also supportsnodeDetailslist (multi-select for KG Spaces) - Additional Tools:
search_documents(),query_documents(),ingest_text(), system diagnostics, and health checks - Dual Transport: HTTP mode for debugging, stdio mode for production
- Tool Suite: 9 specialized tools for document processing, search, and system management
- Multiple Installation: pipx system installation or uvx no-install execution
UI Clients (/flexible-graphrag-ui)
- Angular Frontend: Material Design with TypeScript
- React Frontend: Modern React with Vite and TypeScript
- Vue Frontend: Vue 3 Composition API with Vuetify and TypeScript
- Unified Features: All clients support the 4 tab views, async processing, progress tracking, and cancellation
Docker Infrastructure (/docker)
- Modular Database Selection: Include/exclude vector, graph, and search engines, and Alfresco with single-line comments
- Flexible Deployment: Hybrid mode (databases in Docker, apps standalone) or full containerization
- NGINX Reverse Proxy: Unified access to all services with proper routing
- Built-in Database Dashboards: Most server dockers also provide built-in web interface dashboards (Neo4j browser, ArcadeDB, FalkorDB, OpenSearch, etc.)
- Separate Dashboards: Additional dashboard dockers are provided: including Kibana for Elasticsearch and optional Ladybug Explorer (see
docker/includes/ladybug-explorer.yaml).
Data Sources
Flexible GraphRAG supports 13 different data sources for ingesting documents into your knowledge base:
File & Upload Sources
- File Upload - Direct file upload through web interface with drag & drop support
Cloud Storage Sources
- Amazon S3 - AWS S3 bucket integration
- Google Cloud Storage (GCS) - Google Cloud storage buckets
- Azure Blob Storage - Microsoft Azure blob containers
- OneDrive - Microsoft OneDrive personal/business storage
- Google Drive - Google Drive file storage
Enterprise Repository Sources
- Alfresco - Alfresco ECM/content repository with two integration options:
- KG Spaces ACA Extension - Integrates the Flexible GraphRAG Angular UI as an extension plugin within the Alfresco Content Application (ACA), enabling multi-select document/folder ingestion with nodeIds directly from the Alfresco interface
- Flexible GraphRAG Alfresco Data Source - Direct integration using Alfresco paths (e.g., /Shared/GraphRAG, /Company Home/Shared/GraphRAG, or /Shared/GraphRAG/cmispress.txt)
- SharePoint - Microsoft SharePoint document libraries
- Box - Box.com cloud storage
- CMIS (Content Management Interoperability Services) - Industry-standard content repository interface
Web Sources
- Web Pages - Extract content from web URLs
- Wikipedia - Ingest Wikipedia articles by title or URL
- YouTube - Process YouTube video transcripts
Each data source includes:
- Configuration Forms: Easy-to-use interfaces for credentials and settings
- Progress Tracking: Real-time per-file progress indicators
- Flexible Authentication: Support for various auth methods (API keys, OAuth, service accounts)
Incremental Updates & Auto-Sync
NEW! Flexible GraphRAG supports automatic incremental updates (Optional) from most data sources, keeping your Vector, Search and Graph databases synchronized in real-time or near real-time:
| Data Source | Auto-Sync Support | Detection Method | Status | Notes |
|---|---|---|---|---|
| Alfresco | ✅ Real-time | Apache ActiveMQ | Ready | |
| Amazon S3 | ✅ Real-time | SQS event notifications | Ready | |
| Azure Blob Storage | ✅ Real-time | Change feed | Ready | |
| Google Cloud Storage | ✅ Real-time | Pub/Sub notifications | Ready | |
| Google Drive | ✅ Near real-time | Changes API (polling) | Ready | |
| OneDrive | ✅ Near real-time | MS Graph delta query | Ready | |
| SharePoint | ✅ Near real-time | MS Graph delta query | Ready | |
| Box | ✅ Near real-time | Events API (polling) | Ready | |
| Local Filesystem | ✅ Real-time | OS events (watchdog) | Ready | REST API and MCP Server only |
| File Upload UI, CMIS, Web Pages, Wikipedia, YouTube | ➖ Not supported | - | - | No support for incremental updates |
Features:
- Modification Date Tracking: Uses file modification timestamps (ordinal) to detect changes
- Content Hash Optimization: Skips reprocessing when file modification date changed but content hasn't
- Dual Mechanism: Event-driven streams (real-time) + periodic polling fallback
- LlamaIndex Integration: Uses proper abstractions for all databases
- UI, REST API, MCP Server: Setting up an auto update data source location can be done thru the 3 UIs, with the REST API, or with the MCP server
Setup Requirements:
Enable incremental updates in your .env file:
ENABLE_INCREMENTAL_UPDATES=true
# PostgreSQL database for state management
# By default, uses the pgvector database from docker-compose.yaml
POSTGRES_INCREMENTAL_URL=postgresql://postgres:password@localhost:5433/postgres
Note: The incremental updates system uses PostgreSQL to track document state. The docker-compose.yaml includes a pgvector container that can be used both as a vector database option and for incremental updates state management. The database connection creates the necessary tables automatically on first use.
Usage:
- Check the "Enable auto change sync" checkbox in the Processing tab when configuring your data source
- For S3: Also provide the "SQS Queue URL" for event notifications
- For GCS: Also provide the "Pub/Sub Subscription Name" for real-time updates
PostgreSQL for State Management:
The docker/includes/postgres-pgvector.yaml sets up two databases automatically on first start: flexible_graphrag (for optional pgvector vector storage) and flexible_graphrag_incremental (for incremental update state management, with its schema created automatically). pgAdmin is also configured at http://localhost:5050 with both databases pre-registered — just enter the master password admin when prompted, then use password for the server connection and save it. See docs/DATABASES/POSTGRES-SETUP.md for details.
Documentation:
- System overview:
docs/DATA-SOURCES/INCREMENTAL-UPDATE-AUTO-SYNC/README.md - Quick start:
docs/DATA-SOURCES/INCREMENTAL-UPDATE-AUTO-SYNC/QUICKSTART.md - Detailed setup:
docs/DATA-SOURCES/INCREMENTAL-UPDATE-AUTO-SYNC/SETUP-GUIDE.md - API reference:
docs/DATA-SOURCES/INCREMENTAL-UPDATE-AUTO-SYNC/API-REFERENCE.md - PostgreSQL setup:
docs/DATABASES/POSTGRES-SETUP.md
Scripts:
scripts/incremental/sync-now.sh|.ps1|.bat- Trigger immediate synchronizationscripts/incremental/set-refresh-interval.sh|.ps1|.bat- Configure polling intervalscripts/incremental/TIMING-CONFIGURATION.md- Timing configuration detailsscripts/incremental/README.md- Script usage documentation
Document Processing Options
All data sources support three document parser options (full per-parser format matrix in Supported File Formats):
Docling (Default):
- Open-source, local processing
- Free with no API costs
- GPU acceleration supported (CUDA/Apple Silicon) for 5-10x faster processing
- Built-in OCR for scanned documents and images —
DOCLING_OCR=true+DOCLING_OCR_ENGINE=auto|rapidocr|easyocr|tesseract_cli|tesserocr|ocrmac - Multi-language support (English, German, French, Spanish, Czech, Russian, Chinese, Japanese, etc.)
- Configured via:
DOCUMENT_PARSER=docling DOCLING_DEVICE=auto|cpu|cuda|mps— control GPU vs CPU processingSAVE_PARSING_OUTPUT=true— save intermediate parsing results for inspection (works for all three parsers)PARSER_FORMAT_FOR_EXTRACTION=auto|markdown|plaintext— control format used for knowledge graph extraction- See Docling GPU + OCR Configuration Guide for setup details | Quick Reference
LlamaParse:
- Cloud-based API service with advanced AI
- Multimodal parsing with Claude Sonnet 3.5
- Three modes available:
parse_page_without_llm- 1 credit/pageparse_page_with_llm- 3 credits/page (default)parse_page_with_agent- 10-90 credits/page
- Configured via:
DOCUMENT_PARSER=llamaparse+LLAMAPARSE_API_KEY - Get your API key from LlamaCloud
- New:
SAVE_PARSING_OUTPUT=true- Save parsed output and metadata for inspection - New:
PARSER_FORMAT_FOR_EXTRACTION=auto|markdown|plaintext- Control format used for knowledge graph extraction
LiteParse:
- Open-source, local processing (Rust/PyO3) — free, no API key
- Natively parses PDFs with bundled Tesseract OCR;
.txt/.mdread directly - Office formats need LibreOffice, images need ImageMagick — see Supported File Formats
- Optional complexity-based routing of scanned/complex docs to Docling or LlamaParse via
LITEPARSE_COMPLEX_ROUTING - Configured via:
DOCUMENT_PARSER=liteparse; installuv pip install liteparse - Supports
SAVE_PARSING_OUTPUTandPARSER_FORMAT_FOR_EXTRACTIONlike the other parsers
Supported File Formats
Flexible GraphRAG processes documents, images, and audio across its three parsers:
- Documents: PDF (
.pdf); Microsoft Office + legacy (.docx/.xlsx/.pptx,.doc/.xls/.ppt); web (.html/.htm/.xhtml); data (.csv/.tsv/.json/.xml); documentation (.md/.markdown/.asciidoc/.rtf/.txt/.epub) - Images:
.png/.jpg/.jpeg/.gif/.bmp/.webp/.tiff/.tif - Audio:
.wav/.mp3/.mp4/.m4a(speech recognition / transcription)
Capabilities vary by parser — Docling and LlamaParse handle all of the above natively (advanced layout/table/formula analysis, configurable OCR, VLM/multimodal, ASR); LiteParse parses PDFs natively and needs LibreOffice for Office formats / ImageMagick for images. Both markdown and plaintext are saved, and the best is auto-selected for knowledge-graph extraction, embeddings, and search (markdown for tables, plaintext for text-heavy docs; override with PARSER_FORMAT_FOR_EXTRACTION).
Full per-parser matrix, OCR/VLM options, and output formats: Supported File Formats.
Database Configuration
Flexible GraphRAG uses three types of databases for its hybrid search capabilities. Each can be configured independently via environment variables.
Search Databases (Full-Text Search)
Set SEARCH_DB to select the store and SEARCH_BACKEND=llamaindex or langchain for the framework.
-
BM25 (Built-in): Local in-memory BM25 full-text search with TF-IDF ranking
- Dashboard: None (file-based)
- Configuration:
SEARCH_DB=bm25 BM25_SEARCH_DB_CONFIG={"persist_dir": "./bm25_index"}
-
Elasticsearch: Enterprise search engine with advanced analyzers, faceted search, and real-time analytics
- Dashboard: Kibana (http://localhost:5601)
- Configuration:
SEARCH_DB=elasticsearch ELASTICSEARCH_SEARCH_DB_CONFIG={"hosts": ["http://localhost:9200"], "index_name": "hybrid_search"}
-
OpenSearch: AWS-led open-source fork with native hybrid scoring (vector + BM25) and k-NN algorithms
- Dashboard: OpenSearch Dashboards (http://localhost:5601)
- Configuration:
SEARCH_DB=opensearch OPENSEARCH_SEARCH_DB_CONFIG={"hosts": ["http://localhost:9201"], "index_name": "hybrid_search"}
-
None: Disable full-text search (vector search only)
- Configuration:
SEARCH_DB=none
- Configuration:
Vector Databases (Semantic Search)
Set VECTOR_DB to select the store and VECTOR_BACKEND=llamaindex or langchain for the framework.
When switching embedding models, delete existing vector indexes — dimensions differ by provider. See docs/DATABASES/VECTOR-DATABASES/VECTOR-DIMENSIONS.md for cleanup instructions.
Supported Vector Databases
-
Neo4j: Can be used as vector database with separate vector configuration
- Dashboard: Neo4j Browser (http://localhost:7474)
- Configuration:
VECTOR_DB=neo4j NEO4J_VECTOR_DB_CONFIG={"uri": "bolt://localhost:7687", "username": "neo4j", "password": "your_password", "index_name": "hybrid_search_vector"}
-
Qdrant: Dedicated vector database with advanced filtering
- Dashboard: Qdrant Web UI (http://localhost:6333/dashboard)
- Configuration:
VECTOR_DB=qdrant QDRANT_VECTOR_DB_CONFIG={"host": "localhost", "port": 6333, "collection_name": "hybrid_search"}
-
Elasticsearch: Can be used as vector database with separate vector configuration
- Dashboard: Kibana (http://localhost:5601)
- Configuration:
VECTOR_DB=elasticsearch ELASTICSEARCH_VECTOR_DB_CONFIG={"hosts": ["http://localhost:9200"], "index_name": "hybrid_search_vectors"}
-
OpenSearch: Can be used as vector database with separate vector configuration
- Dashboard: OpenSearch Dashboards (http://localhost:5601)
- Configuration:
VECTOR_DB=opensearch OPENSEARCH_VECTOR_DB_CONFIG={"hosts": ["http://localhost:9201"], "index_name": "hybrid_search_vectors"}
-
Chroma: Open-source vector database with dual deployment modes
- Dashboard: Swagger UI (http://localhost:8001/docs/) (HTTP mode)
- Configuration (Local Mode):
VECTOR_DB=chroma CHROMA_VECTOR_DB_CONFIG={"persist_directory": "./chroma_db", "collection_name": "hybrid_search"} - Configuration (HTTP Mode):
VECTOR_DB=chroma CHROMA_VECTOR_DB_CONFIG={"host": "localhost", "port": 8001, "collection_name": "hybrid_search"}
-
Milvus: Cloud-native, scalable vector database for similarity search
- Dashboard: Attu (http://localhost:3003)
- Configuration:
VECTOR_DB=milvus MILVUS_VECTOR_DB_CONFIG={"host": "localhost", "port": 19530, "collection_name": "hybrid_search"}
-
Weaviate: Vector search engine with semantic capabilities and data enrichment
- Dashboard: Weaviate Console (http://localhost:8081/console)
- Configuration:
VECTOR_DB=weaviate WEAVIATE_VECTOR_DB_CONFIG={"url": "http://localhost:8081", "index_name": "HybridSearch"}
-
Pinecone: Managed vector database service optimized for real-time applications
- Dashboard: Pinecone Console (web-based)
- Configuration:
VECTOR_DB=pinecone PINECONE_VECTOR_DB_CONFIG={"api_key": "your_api_key", "region": "us-east-1", "cloud": "aws", "index_name": "hybrid-search"}
-
PostgreSQL: Traditional database with pgvector extension for vector similarity search
- Dashboard: pgAdmin (http://localhost:5050)
- Configuration:
VECTOR_DB=postgres POSTGRES_VECTOR_DB_CONFIG={"host": "localhost", "port": 5433, "database": "postgres", "username": "postgres", "password": "your_password"}
-
LanceDB: Modern, lightweight vector database designed for high-performance ML applications
- Dashboard: LanceDB Viewer (http://localhost:3005)
- Configuration:
VECTOR_DB=lancedb LANCEDB_VECTOR_DB_CONFIG={"uri": "./lancedb", "table_name": "hybrid_search"}
RAG without GraphRAG
For faster document ingest processing (no graph extraction), and hybrid search with only full text + vector, configure:
VECTOR_DB=qdrant # Any vector store
SEARCH_DB=elasticsearch # Any search engine
PG_GRAPH_DB=none
Property Graph Databases (Knowledge Graph / GraphRAG)
Set PG_GRAPH_DB to select the store and GRAPH_BACKEND=llamaindex or langchain for the framework where both are supported. LangChain-only stores (ArangoDB, Apache AGE, HugeGraph, SurrealDB, TigerGraph, Cosmos Gremlin) route property-graph ingestion and retrieval through LangChain adapters regardless of other env defaults. LlamaIndex-only stores (Spanner): when PG_GRAPH_DB=spanner, startup forces GRAPH_BACKEND=llamaindex and ignores GRAPH_BACKEND=langchain.
-
Neo4j Property Graph: Primary knowledge graph storage with Cypher querying
- Dashboard: Neo4j Browser (http://localhost:7474)
- Configuration:
PG_GRAPH_DB=neo4j NEO4J_GRAPH_DB_CONFIG={"uri": "bolt://localhost:7687", "username": "neo4j", "password": "your_password"}
-
ArcadeDB: Multi-model database supporting graph, document, key-value, and search with SQL and Cypher
- Dashboard: ArcadeDB Studio (http://localhost:2480)
- Configuration:
PG_GRAPH_DB=arcadedb ARCADEDB_GRAPH_DB_CONFIG={"host": "localhost", "port": 2480, "username": "root", "password": "password", "database": "flexible_graphrag", "query_language": "sql"}
-
FalkorDB: High-performance graph database using GraphBLAS; purpose-built for LLM / GraphRAG
- Dashboard: FalkorDB Browser (http://localhost:3001)
- Configuration:
PG_GRAPH_DB=falkordb FALKORDB_GRAPH_DB_CONFIG={"url": "falkor://localhost:6379", "database": "falkor"}
-
Ladybug: Embedded property graph database (Cypher, single
.lbugfile) with optional structured schema and HNSW vector index on chunks; Explorer UI via Docker (port 7003)- Configuration:
PG_GRAPH_DB=ladybug LADYBUG_GRAPH_DB_CONFIG={"db_dir": "./ladybug", "db_file": "database.lbug", "use_vector_index": true, "has_structured_schema": false, "strict_schema": false}
- Configuration:
-
MemGraph: Real-time graph database with streaming support and advanced graph algorithms
- Dashboard: MemGraph Lab (http://localhost:3002)
- Configuration:
PG_GRAPH_DB=memgraph MEMGRAPH_GRAPH_DB_CONFIG={"url": "bolt://localhost:7687", "username": "", "password": ""}
-
NebulaGraph: Distributed graph database for large-scale data with horizontal scalability
- Dashboard: NebulaGraph Studio (http://localhost:7001)
- Configuration:
PG_GRAPH_DB=nebula NEBULA_GRAPH_DB_CONFIG={"space": "flexible_graphrag", "host": "localhost", "port": 9669, "username": "root", "password": "nebula"}
-
Amazon Neptune: Fully managed graph database service supporting property graph and RDF models
- Dashboard: Graph-Explorer (http://localhost:3007) or Neptune Workbench (AWS Console)
- Configuration:
PG_GRAPH_DB=neptune NEPTUNE_GRAPH_DB_CONFIG={"host": "your-cluster.region.neptune.amazonaws.com", "port": 8182}
-
Amazon Neptune Analytics: Serverless graph analytics with openCypher support
- Dashboard: Graph-Explorer (http://localhost:3007) or Neptune Workbench (AWS Console)
- Configuration:
PG_GRAPH_DB=neptune_analytics NEPTUNE_ANALYTICS_GRAPH_DB_CONFIG={"graph_identifier": "g-xxxxx", "region": "us-east-1"}
-
Google Cloud Spanner Graph (LlamaIndex only): Managed relational + property graph (GQL). Uses
llama-index-spanner— install withuv pip install -e ".[spanner-extras]"thenuv pip uninstall llama-index(see Optional under Prerequisites). LangChain is not supported for this store (langchain-google-spannerpins incompatiblelangchain-core).- Setup: docs/DATABASES/GRAPH-DATABASES/SPANNER-SETUP.md
- Configuration:
PG_GRAPH_DB=spanner # GRAPH_BACKEND=llamaindex is forced for Spanner (LlamaIndex-only); langchain is ignored SPANNER_GRAPH_DB_CONFIG={"project_id": "my-gcp-project", "instance_id": "my-spanner-instance", "database_id": "my-database", "graph_name": "knowledge_graph", "credentials_file": "./gcs.json"}
-
ArangoDB (LangChain only): Multi-model database with AQL graph queries
- Dashboard: ArangoDB Web UI (http://localhost:8529)
- Configuration:
PG_GRAPH_DB=arangodb ARANGODB_GRAPH_DB_CONFIG={"url": "http://localhost:8529", "database": "flexible_graphrag", "username": "root", "password": "password"}
-
Apache AGE (LangChain only): PostgreSQL extension for graph data via Cypher
- Dashboard: pgAdmin (http://localhost:5050)
- Configuration:
PG_GRAPH_DB=apache_age APACHE_AGE_GRAPH_DB_CONFIG={"host": "localhost", "port": 5434, "database": "flexible_graphrag_age", "username": "postgres", "password": "password", "graph_name": "knowledge_graph"}
-
HugeGraph (LangChain only): Distributed graph database with Gremlin and openCypher
- Dashboard: HugeGraph Hubble (http://localhost:8085)
- Configuration:
PG_GRAPH_DB=hugegraph HUGEGRAPH_GRAPH_DB_CONFIG={"host": "localhost", "port": 8082, "database": "hugegraph"}
-
SurrealDB (LangChain only): Multi-model database with SurrealQL graph queries
- Dashboard: Surrealist (http://localhost:8011)
- Configuration:
PG_GRAPH_DB=surrealdb SURREALDB_GRAPH_DB_CONFIG={"url": "ws://localhost:8010/rpc", "namespace": "test", "database": "flexible_graphrag", "username": "root", "password": "root"}
-
TigerGraph (LangChain only): Distributed graph database with GSQL
- Dashboard: GraphStudio (http://localhost:14240)
- Configuration:
PG_GRAPH_DB=tigergraph TIGERGRAPH_GRAPH_DB_CONFIG={"host": "http://localhost", "port": 14240, "restpp_port": 9002, "database": "MyGraph", "username": "tigergraph", "password": "tigergraph"}
-
Cosmos Gremlin (LangChain only): Azure Cosmos DB for Gremlin API
- Configuration:
PG_GRAPH_DB=cosmos_gremlin COSMOS_GREMLIN_GRAPH_DB_CONFIG={"url": "ws://localhost:8182/gremlin"}
- Configuration:
-
None: Disable knowledge graph extraction for RAG-only mode
- Configuration:
PG_GRAPH_DB=none
- Configuration:
Ontology and RDF Support
Flexible GraphRAG supports RDF/RDFS/OWL ontologies to guide knowledge graph extraction, with optional RDF graph store backends. Ontology-guided extraction works with any configured store — property graph, RDF graph store, or both.
- Load OWL/RDFS ontologies (
owl:Class,owl:ObjectProperty,owl:DatatypeProperty,rdfs:domain,rdfs:range) to constrain entity/relation extraction; OWL is supported but not required - Works with all 15 property graph databases — no RDF store required to use ontology-guided extraction
- Full pipeline for all 4 RDF graph stores: UI document ingest → KG extraction → RDF storage; auto incremental sync; Hybrid Search and AI Query/Chat fuse RDF store results alongside vector, BM25, and property graph results
- SPARQL 1.1 queries; RDF 1.2 triple terms and relation annotations (
{| |}syntax); XSD-typed literals from OWLDatatypePropertyranges
RDF Graph Store Configuration — set RDF_GRAPH_DB to select the store (all four support RDF 1.2 triple terms; Neptune is AWS-managed—no local compose include):
-
Apache Jena Fuseki — SPARQL 1.1 server; dashboard: http://localhost:3030
RDF_GRAPH_DB=fuseki FUSEKI_BASE_URL=http://localhost:3030 FUSEKI_DATASET=flexible-graphrag -
Ontotext GraphDB — enterprise RDF store with OWL reasoning; dashboard: http://localhost:7200
RDF_GRAPH_DB=graphdb GRAPHDB_BASE_URL=http://localhost:7200 GRAPHDB_REPOSITORY=flexible-graphrag GRAPHDB_USERNAME=admin GRAPHDB_PASSWORD=admin -
Oxigraph — lightweight local store, native RDF 1.2; dashboard: http://localhost:7878
RDF_GRAPH_DB=oxigraph OXIGRAPH_URL=http://localhost:7878 -
Amazon Neptune RDF — managed SPARQL 1.1 on Neptune (same cluster can host property graph and RDF; IAM SigV4 auth). See [Neptune RDF setup](https://github.com/stevereiner/flexible-graphrag/blob/main/docs/DATABASES/GRAPH-DAT
















No comments yet
Be the first to share your take.