Metadata-Version: 2.4
Name: flexible-graphrag
Version: 0.6.1
Summary: Open source AI context platform: document processing, knowledge graph auto-building, ontologies, GraphRAG/RAG, hybrid search (vector, property graph, RDF/SPARQL, fulltext), 13 LLM providers, 15 property graph DBs, 4 RDF triple stores, 10 vector DBs, LlamaIndex + LangChain, FastAPI, MCP server
Author: Steve Reiner
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/stevereiner/flexible-graphrag
Project-URL: Documentation, https://stevereiner.github.io/flexible-graphrag/
Project-URL: Repository, https://github.com/stevereiner/flexible-graphrag
Project-URL: Changelog, https://github.com/stevereiner/flexible-graphrag/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/stevereiner/flexible-graphrag/issues
Keywords: graphrag,rag,ai-context-platform,ai-agents,llm,knowledge-graph,property-graph,neo4j,arcadedb,falkordb,ladybugdb,llamaindex,langchain,fastapi,sparql,rdf,ontology,owl,fuseki,graphdb,oxigraph,neptune,semantic-search,vector-database,qdrant,search-database,hybrid-search,elasticsearch,opensearch,incremental-sync,mcp,mcp-server,document-processing,docling,llamaparse,alfresco
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Database
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <3.15,>=3.12
Description-Content-Type: text/markdown
Requires-Dist: fastapi
Requires-Dist: uvicorn
Requires-Dist: python-multipart
Requires-Dist: fastmcp
Requires-Dist: python-jose[cryptography]
Requires-Dist: passlib[bcrypt]
Requires-Dist: python-dotenv
Requires-Dist: nest-asyncio
Requires-Dist: wikipedia
Requires-Dist: cmislib
Requires-Dist: python-alfresco-api>=1.1.5
Requires-Dist: docling-slim[standard]
Requires-Dist: llama-parse<1.0
Requires-Dist: llama-cloud<2.0
Requires-Dist: neo4j
Requires-Dist: numpy
Requires-Dist: rapidfuzz
Requires-Dist: spacy
Requires-Dist: openai
Requires-Dist: ollama
Requires-Dist: pydantic
Requires-Dist: pydantic-settings
Requires-Dist: llama-index-core
Requires-Dist: llama-index-llms-openai
Requires-Dist: llama-index-llms-ollama
Requires-Dist: llama-index-llms-google-genai
Requires-Dist: llama-index-llms-azure-openai
Requires-Dist: llama-index-llms-anthropic
Requires-Dist: llama-index-llms-bedrock-converse
Requires-Dist: llama-index-llms-groq
Requires-Dist: llama-index-llms-fireworks
Requires-Dist: llama-index-llms-openai-like
Requires-Dist: llama-index-llms-vllm
Requires-Dist: llama-index-llms-litellm
Requires-Dist: llama-index-llms-openrouter
Requires-Dist: llama-index-embeddings-openai
Requires-Dist: llama-index-embeddings-ollama
Requires-Dist: llama-index-embeddings-google-genai
Requires-Dist: llama-index-embeddings-azure-openai
Requires-Dist: llama-index-embeddings-bedrock
Requires-Dist: llama-index-embeddings-fireworks
Requires-Dist: llama-index-embeddings-openai-like
Requires-Dist: llama-index-embeddings-litellm
Requires-Dist: llama-index-vector-stores-neo4jvector
Requires-Dist: llama-index-vector-stores-qdrant
Requires-Dist: llama-index-vector-stores-elasticsearch
Requires-Dist: llama-index-vector-stores-opensearch
Requires-Dist: llama-index-vector-stores-chroma
Requires-Dist: llama-index-vector-stores-milvus
Requires-Dist: llama-index-vector-stores-weaviate
Requires-Dist: llama-index-vector-stores-pinecone
Requires-Dist: llama-index-vector-stores-postgres
Requires-Dist: llama-index-vector-stores-lancedb
Requires-Dist: llama-index-graph-stores-neo4j
Requires-Dist: llama-index-graph-stores-falkordb
Requires-Dist: llama-index-graph-stores-memgraph
Requires-Dist: llama-index-graph-stores-nebula
Requires-Dist: nebula3-python>=3.8.3
Requires-Dist: llama-index-graph-stores-neptune
Requires-Dist: ladybug>=0.16.1
Requires-Dist: llama-index-graph-stores-ladybug>=0.3.3
Requires-Dist: llama-index-retrievers-bm25
Requires-Dist: arcadedb-python>=0.4.0
Requires-Dist: llama-index-graph-stores-arcadedb>=0.4.4
Requires-Dist: elasticsearch
Requires-Dist: opensearch-py
Requires-Dist: qdrant-client
Requires-Dist: chromadb
Requires-Dist: pymilvus
Requires-Dist: weaviate-client
Requires-Dist: psycopg2-binary
Requires-Dist: lancedb
Requires-Dist: pinecone
Requires-Dist: llama-index-readers-web
Requires-Dist: llama-index-readers-wikipedia
Requires-Dist: llama-index-readers-youtube-transcript
Requires-Dist: youtube_transcript_api
Requires-Dist: llama-index-readers-s3
Requires-Dist: llama-index-readers-gcs
Requires-Dist: llama-index-readers-google
Requires-Dist: llama-index-readers-azstorage-blob
Requires-Dist: llama-index-readers-microsoft-onedrive
Requires-Dist: llama-index-readers-microsoft-sharepoint
Requires-Dist: llama-index-readers-box
Requires-Dist: llama-index-readers-file
Requires-Dist: box-sdk-gen>=1.17.0
Requires-Dist: s3fs
Requires-Dist: boto3
Requires-Dist: google-cloud-storage
Requires-Dist: google-api-python-client
Requires-Dist: google-auth-httplib2
Requires-Dist: google-auth-oauthlib
Requires-Dist: azure-storage-blob
Requires-Dist: asyncpg>=0.29.0
Requires-Dist: watchdog>=4.0.0
Requires-Dist: google-cloud-pubsub>=2.18.0
Requires-Dist: azure-storage-blob-changefeed>=12.0.0b5
Requires-Dist: msgraph-sdk>=1.0.0
Requires-Dist: azure-identity>=1.14.0
Requires-Dist: rdflib>=7.0.0
Requires-Dist: pyoxigraph>=0.3.20
Requires-Dist: requests>=2.31.0
Provides-Extra: observability
Requires-Dist: openinference-instrumentation-llama-index; extra == "observability"
Requires-Dist: openinference-instrumentation-langchain; extra == "observability"
Requires-Dist: opentelemetry-exporter-otlp; extra == "observability"
Requires-Dist: opentelemetry-sdk; extra == "observability"
Requires-Dist: opentelemetry-api; extra == "observability"
Provides-Extra: observability-openlit
Requires-Dist: openlit>=1.41.2; extra == "observability-openlit"
Requires-Dist: opentelemetry-exporter-otlp; extra == "observability-openlit"
Requires-Dist: opentelemetry-sdk; extra == "observability-openlit"
Requires-Dist: opentelemetry-api; extra == "observability-openlit"
Provides-Extra: observability-dual
Requires-Dist: openinference-instrumentation-llama-index; extra == "observability-dual"
Requires-Dist: openinference-instrumentation-langchain; extra == "observability-dual"
Requires-Dist: openlit>=1.41.2; extra == "observability-dual"
Requires-Dist: opentelemetry-exporter-otlp; extra == "observability-dual"
Requires-Dist: opentelemetry-sdk; extra == "observability-dual"
Requires-Dist: opentelemetry-api; extra == "observability-dual"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Provides-Extra: rdf
Requires-Dist: rdflib>=7.0.0; extra == "rdf"
Requires-Dist: pyoxigraph>=0.3.20; extra == "rdf"
Requires-Dist: requests>=2.31.0; extra == "rdf"
Provides-Extra: rdf-full
Requires-Dist: rdflib>=7.0.0; extra == "rdf-full"
Requires-Dist: pyoxigraph>=0.3.20; extra == "rdf-full"
Requires-Dist: requests>=2.31.0; extra == "rdf-full"
Requires-Dist: SPARQLWrapper>=2.0.0; extra == "rdf-full"
Provides-Extra: langchain
Requires-Dist: langchain>=1.0; extra == "langchain"
Requires-Dist: langchain-community>=0.4; extra == "langchain"
Requires-Dist: langchain-openai; extra == "langchain"
Requires-Dist: langchain-anthropic>=1.3; extra == "langchain"
Requires-Dist: langchain-aws; extra == "langchain"
Requires-Dist: langchain-ollama>=1.0; extra == "langchain"
Requires-Dist: langchain-google-genai>=4.0; extra == "langchain"
Requires-Dist: langchain-groq>=1.1; extra == "langchain"
Requires-Dist: langchain-fireworks>=1.0; extra == "langchain"
Requires-Dist: langchain-qdrant; extra == "langchain"
Requires-Dist: langchain-milvus; extra == "langchain"
Requires-Dist: langchain-weaviate; extra == "langchain"
Requires-Dist: langchain-pinecone; extra == "langchain"
Requires-Dist: langchain-chroma; extra == "langchain"
Requires-Dist: langchain-elasticsearch; extra == "langchain"
Requires-Dist: langchain-experimental; extra == "langchain"
Requires-Dist: rank-bm25; extra == "langchain"
Requires-Dist: langchain-ladybug>=0.3.0; extra == "langchain"
Provides-Extra: langchain-extras
Requires-Dist: langchain-neo4j; extra == "langchain-extras"
Requires-Dist: langchain-postgres; extra == "langchain-extras"
Requires-Dist: langchain-arcadedb; extra == "langchain-extras"
Requires-Dist: langchain-arangodb; extra == "langchain-extras"
Requires-Dist: gremlinpython>=3.7.0; extra == "langchain-extras"
Requires-Dist: azure-mgmt-cosmosdb>=9.5.0; extra == "langchain-extras"
Requires-Dist: hugegraph-python>=1.5.0; extra == "langchain-extras"
Requires-Dist: pyTigerGraph>=1.0.0; extra == "langchain-extras"
Requires-Dist: requests-aws4auth>=1.2.0; extra == "langchain-extras"
Requires-Dist: SPARQLWrapper>=2.0.0; extra == "langchain-extras"
Requires-Dist: litellm>=1.81; extra == "langchain-extras"
Provides-Extra: docling-ocr-easyocr
Requires-Dist: docling-slim[feat-ocr-easyocr]; extra == "docling-ocr-easyocr"
Provides-Extra: docling-ocr-tesserocr
Requires-Dist: docling-slim[feat-ocr-tesserocr]; extra == "docling-ocr-tesserocr"
Provides-Extra: docling-ocr-ocrmac
Requires-Dist: docling-slim[feat-ocr-mac]; extra == "docling-ocr-ocrmac"
Provides-Extra: surrealdb-extras
Requires-Dist: langchain-surrealdb>=0.2.0; extra == "surrealdb-extras"
Provides-Extra: age-extras
Requires-Dist: langchain-age==0.1.2; extra == "age-extras"
Provides-Extra: spanner-extras
Requires-Dist: llama-index-spanner>=0.1.5; extra == "spanner-extras"
Requires-Dist: google-cloud-spanner; extra == "spanner-extras"

# Flexible GraphRAG

Flexible GraphRAG is an open source AI context platform supporting a document processing pipeline (Docling or LlamaParse), 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.

**Quick install (PyPI):**

```bash
uv pip install flexible-graphrag
```

Then copy `env-sample.txt` to `.env`, set your LLM API key (e.g. `OPENAI_API_KEY=...`) and any other provider config, and run `flexible-graphrag` to start the API server. If you use ontology schemas, also copy the `rdf/schemas/` directory from the repository to your working directory. This gives you a LlamaIndex-only setup; for LangChain or mixed LlamaIndex/LangChain per-stage configuration see the **Prerequisites**, **Setup**, and **Framework Config** sections of the full README, or the [Framework Configuration](https://stevereiner.github.io/flexible-graphrag/CONFIGURATION/LANGCHAIN-CONFIGURATION/) docs page.

Optional dependency groups (`langchain`, RDF extras, observability, and more) are available. For Docker services, frontend installs, source checkout setup, and optional extras (which involve `extras-overrides.txt`), refer to the **Prerequisites** and **Setup** sections of the full README and documentation linked below.

- **Repository**: [github.com/stevereiner/flexible-graphrag](https://github.com/stevereiner/flexible-graphrag)
- **Full README**: [README.md on GitHub](https://github.com/stevereiner/flexible-graphrag/blob/main/README.md)
- **Documentation**: [stevereiner.github.io/flexible-graphrag](https://stevereiner.github.io/flexible-graphrag/)
