Releases: stevereiner/flexible-graphrag
v0.6.2 migrated to LlamaParse 2.x, backend in docker fixes
- Migrated from using LlamaParse 1.x to using LlamaParse 2.x
- Fixed default port for Neo4j to be 7687 if no .env
- frontend package names fixed: now flexible-graphrag-react, flexible-graphrag-vue,
already had flexible-graphrag-angular (had leftover names from cmis-graphrag-react, etc.) - For backend in docker: docker.env was fixed to have new style db specific json config vars,
docker ontology paths fixed, access of postgres for inc update mgt fixed - In env-sample.txt, section with db config details in individual vars was removed,
with details moved to json examples in regular db sections, added lm studio examples for
openai_like llm and embedding. - for arcadedb embedded, readme.md and docs/getting-started/python-backend to have the correct
package name arcadedb-embedded
v0.6.1: packaging fix (missing adapter files), pypi readme/description update, ontology docs fixes
v0.6.1: packaging fix (fix missing adapter files), pypi README/description improvements, ontology docs path corrections
-
flexible-graphrag/pyproject.toml — bump to 0.6.1; add adapters* to
packages.find include (fixes ModuleNotFoundError: No module named
'adapters' after PyPI install); rewrite description to be keyword-rich -
flexible-graphrag/README.md — canonical intro paragraph; quick-install
code block; LlamaIndex-only caveat with Framework Config doc link;
corrected ontology schema paths (../schemas/); pointer to full README
for Docker/frontend/extras -
flexible-graphrag/start.py — fix docstring: uv run python -m start
replaced with python -m start (former only works from source checkout) -
flexible-graphrag-mcp/pyproject.toml — bump to 0.6.1; rewrite
description (replace "HTTP bridge" with "connects to", add DB/source counts) -
flexible-graphrag-mcp/README.md — top paragraph replaced with
canonical project intro; remove "HTTP bridge" and GET /api/status
references -
docs/DATABASES/RDF/ontology_examples_and_config.md — clarify
ontologies apply to both property graphs and RDF stores (not RDF-only);
remove misleading RDF_GRAPH_DB block; correct all schema paths to
../schemas/ (matching env-sample.txt); add install-type note -
CHANGELOG.md — 0.6.1 entry
v0.6.0 Full LangChain support in addition to LlamaIndex, more DBs (15 PG, 4 RDF)
v0.6.0 LlamaIndex or LangChain, 15 graph (8 + ArangoDB,AGE,Cosmos,SurrealDB,Spanner,HugeGraph,TigerGraph). 4 RDF (3 + Neptune RDF), 10 vector, 3 search
-
15 total property graph databases — 8 existing LlamaIndex stores with LangChain versions
added (Neo4j, ArcadeDB, FalkorDB, Memgraph, NebulaGraph, Neptune, Neptune Analytics,
LadybugDB); 6 new LC-only stores (ArangoDB, Apache AGE, Azure Cosmos DB Gremlin, Apache
HugeGraph, SurrealDB, TigerGraph); 1 new LI-only store (Google Cloud Spanner) -
10 LangChain vector backends (Qdrant, Elasticsearch, Milvus, Weaviate, LanceDB, Chroma,
Pinecone, pgvector, OpenSearch, Neo4j vector); 3 LangChain search backends (Elasticsearch,
OpenSearch, BM25); 4 RDF/triple-store backends (Fuseki, GraphDB, Oxigraph + new Amazon
Neptune RDF with IAM SigV4 auth) -
flexible-graphrag now runs fully on LlamaIndex, fully on LangChain, or any mix — both
frameworks are first-class peers. Each pipeline stage is independently configurable:
CHUNKER_BACKEND, KG_EXTRACTOR_BACKEND, GRAPH_BACKEND, VECTOR_BACKEND, SEARCH_BACKEND,
RETRIEVAL_FUSION, LLM_PROVIDER, EMBEDDING_KIND. Note: document readers / data sources
remain LlamaIndex-based (first pipeline stage). LangChain-only graph stores auto-select
GRAPH_BACKEND=langchain. -
Retrievers for both LI and LC with fusion support for both frameworks (RETRIEVAL_FUSION=
llamaindex uses QueryFusionRetriever; =langchain uses EnsembleRetriever when all stores are
LC-backed). LangChain retrievers include: Synonym Exploder (expands query terms for vector
search), pg_vector + neighborhood traversal for Neo4j (LANGCHAIN_PG_VECTOR_SEARCH,
USE_PG_NEIGHBORHOOD), and text-to-query graph QA for all LC property graph stores (generates
Cypher for Neo4j/ArcadeDB/Memgraph/FalkorDB/Ladybug/AGE, GQL for HugeGraph, SurrealQL for
SurrealDB, AQL for ArangoDB, SPARQL for all RDF stores). -
Matrix test support — run_matrix.py / run_all_profiles.py; 24+ integration test profiles
covering all PG, vector, search, RDF, and chunker combinations -
Docling OCR — DOCLING_OCR=true + DOCLING_OCR_ENGINE (auto / rapidocr / easyocr /
tesseract_cli / tesserocr / ocrmac); optional extras for easyocr, tesserocr, ocrmac -
Incremental update (add, delete, modify) end-to-end across property graph, RDF,
vector, and search databases on both LlamaIndex and LangChain backends -
scripts/cleanup.py — all 15 property graph stores have native-client cleanup; early skip
when store stage disabled to improve speed, postgres document state / datasource config
tabvle cleanup skipped ifuse incremental update false. -
Observability — upgraded OpenLIT + OpenInference LangChain instrumentation; both OTLP
producers (LlamaIndex via OpenLIT, LangChain via OpenInference) work simultaneously -
Docs site (zensical 0.0.40) + major doc updates — ARCHITECTURE.md (15 PG stores, 13 LLM
providers, framework backends section), per-store setup guides (Cosmos Gremlin, Neptune,
Spanner), CONFIG-PROPERTY-GRAPH, DATABASE-CONFIGURATION, UI-TAB-SEARCH, MCP-TOOLS; all
broken links fixed, README.md updated -
Per-store config isolation — each database and LLM/embedding provider has its own typed
config env var ({TYPE}_GRAPH_DB_CONFIG, {TYPE}_VECTOR_DB_CONFIG, {TYPE}_SEARCH_DB_CONFIG,
{KIND}_EMBEDDING_MODEL, etc.); per-store config takes precedence over generic fallback; no
shared config collisions across stores -
Time logging now separates out KG extraction time from graph storage time.
v0.5.2 ladybug pkg, py 3.14: MCP stdio and ingest text fixes
v0.5.2 Release Notes
v0.5.2 use ladybug package, llama-index-ladybug 0.3.1, py 3.14 MCP stdio fix, py 3.14 MCP/REST ingest_text, ingest_from_sample fix
Ladybug package rename
- Updated dependency from real-ladybug to ladybug>=0.15.3
- Updated dependency to llama-index-graph-stores-ladybug>=0.3.1
- factories.py import updated to match
Python 3.14 async fixes
- MCP stdio mode: removed nest_asyncio (broke on Python 3.14, was never needed)
- ingest_text / test_with_sample REST endpoints: call ingest/ingest_from_text: replaced sync refresh_ref_docs()
with async_add() in ingest/ingest_from_text.py, fixing crash on Python 3.14;
ingest_documents (used by UI) was unaffected as it already used the async path - nest-asyncio removed from flexible-graphrag-mcp dependencies
v0.5.1 added LadyBug, modularized hybrid_system.py
v0.5.1 flexible-graphrag release notes
v0.5.1: Added Ladybug support, modularized large hybrid_system.py, removed Kuzu support, /rdf/schemas moved to project root
- Added Ladybug support in config.py, factories.py, env-sample.txt, docker include for ladybug-explorer.yaml, added Ladybug info in /docs/
- Removed Kuzu support in config.py, factories.py, env-sample, removed kuzu-explorer.yamal and kuzu-api.yaml docker includes, and remomved Kuzu info in /docs/
- Split off code in hybrid_system.py into ingest/, process/, stores/, query_engine, retriever_setup, schema_manager; hybrid_system.py wires submodules.
- FalkorDB ingest: patch falkordb.helpers and falkordb.graph stringify (bool, numpy, map keys) via llamaindex/graph/falkordb_param_patch.py.
- docs/PERFORMANCE.md: legacy banner. will be completely redone; left Kuzu, will test Ladybug when redon; note about future split of KG extraction time with given LLM vs graph DB insert time.
- File moving: cleanup.py and check_elasticsearch.py under moved to scripts/; Neptune wrapper under llamaindex/graph, removed unused cmis_util.py
- README.md: Added LLM provider list to features section, Added Ladybug (Kuzu fork), removed Kuzu
- requirements.txt removed — uv / pyproject.toml is the only supported install method
- Bump flexible-graphrag and flexible-graphrag-mcp to v0.5.1.
- flexible-graphrag-mcp/main.py — nest_asyncio.apply() moved out of HTTP mode; only applied in stdio mode to avoid anyio conflict on Python 3.14.
- rdf/ontology_manager.py — relative ontology paths now resolve against os.getcwd() only
- flexible-graphrag/rdf/schemas TTL files schemas now live at repo-root /schemas
v0.5.0 RDF ontologies, RDF Stores, 4 new LLM providers
Added support for 3 RDF stores, RDF ontologies, LangChain retrievers/llm, 4 new LlamaIndex LLM providers
- Flexible GraphRAG now supports RDF-based ontologies for both property graph databases and RDF triple store databases
- Added support for 3 RDF stores: Ontotext GraphDB, Fuseki, and Oxigraph.
- The RDF stores support the same full pipeline as property graphs: document ingestion with KG extraction, auto incremental data source change detection, and UI search (hybrid search, AI query, and AI chat)
- Add OWL/RDFS ontology-guided KG extraction (ontology_manager.py) — works with all property graph and RDF stores; URI map round-trip; XSD-typed literals from DatatypeProperty ranges
- Add LangChain RDF QA fusion retriever (langchain/graph/) — TextToGraphQueryRetriever, SynonymExpander, GraphEntityVectorRetriever, GraphNeighborhoodRetriever
- SynonymExpander can be configured on a retriever (LPG, RDF, etc) basis to improve LLM results
- With SynonymExpander and GraphEntityVectorRetriever results from property graphs (initially with Neo4j)
- Added native LangChain LLM factory (langchain/llm/) — all 13 providers with same config mapped to
use LangChain LLMs - Added 4 new LLM providers on the LlamaIndex side: OpenRouter, LiteLLM proxy, openai_like, vLLM; scripts/litellm_config.yaml sample config
- Added bundled ontology schemas (company_classes.ttl, company_properties.ttl, common_ontology.ttl, foaf_ontology.ttl); multi-ontology file support via ONTOLOGY_PATHS / ONTOLOGY_DIR
- Added / updated docs: RDF-STORE-USER-GUIDE.md (implementation status, store dashboards), LANGCHAIN-GRAPH-INTEGRATION.md, LLM-EMBEDDING-CONFIG.md; README features, prerequisites, project structure;
- Bumped version to 0.5.0
v0.4.0 ArcadeDB embedded mode added, pypi built releases (0.4.0)
ArcadeDB embedded mode added, pypi built releases (0.4.0) for flexible-graphrag and flexible-graphrag-mcp, readme updated, search fixes
- ArcadeDB embedded mode: factories.py, config.py, env-sample.txt — runs in-process via ARCADEDB_MODE=embedded; optional HTTP/Studio via ARCADEDB_EMBEDDED_SERVER=true; arcadedb-embedded>=26.2.1 added as commented-out dependency
- llama-index-graph-stores-arcadedb bumped to >=0.4.1 in requirements.txt and pyproject.toml for embedded seport
- hybrid_system.py: X->REL->Y bare relation links filtered in all modes (not just graph-only); filtered before top_k slice
- hybrid_system.py: Elasticsearch/OpenSearch-only ingestion error fixed
- pyproject.toml: version 0.4.0; PEP 639 license; all 14 py-modules; incremental_updates package; Dockerfile/env-sample/requirements/uv.toml in sdist; placeholder README.md
- start.py + pyproject.toml: flexible-graphrag console script entry point added
- flexible-graphrag-mcp/pyproject.toml: version 0.4.0; Apache 2.0 license; author; readme reference
- .gitignore: arcadedb_data/ and log/ excluded
- README.md: badges added, backend pip install from pypi quickstart added; MCP server quickstart setup section added, mcp tools moved after; project/file structure updated; UI Usage moved after frontend setup; Testing cleanup mentions cleanup.py