Metadata-Version: 2.4
Name: flexible-graphrag
Version: 0.6.0
Summary: Flexible GraphRAG system supporting multiple LLM providers, graph databases, vector stores, and data sources
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

Python package for the [Flexible GraphRAG](https://github.com/stevereiner/flexible-graphrag) stack: document processing (Docling or LlamaParse), knowledge graphs, ontologies, many LLMs, GraphRAG and RAG, hybrid search (fulltext, vector, property graph, RDF/SPARQL), AI query, and AI chat. **LlamaIndex** and **LangChain** are peer frameworks (**LlamaIndex** defaults per pipeline stage). REST API via **FastAPI**; optional **MCP** server; Angular / React / Vue clients live in the monorepo.

Install: `uv pip install flexible-graphrag` (or `uv pip install -e .` from this directory). Optional stacks (**LangChain**, RDF extras, observability, Spanner, AGE, SurrealDB, Docling OCR, …) are **only** defined as **`[project.optional-dependencies]`** in **`pyproject.toml`** — not via a separate requirements-style file.

- **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/)
