Practical overview
When it fits
Use it when you are assembling a self-managed document retrieval or chat system and need choices across data sources, graph construction, storage and retrieval pipelines.
Who it is for
- Developers building RAG or GraphRAG applications over organizational documents.
- Teams that need to connect document repositories to graph and search databases.
- Engineers who want to select pipeline frameworks, parsers, models and retrieval stores.
Documented uses
- Ingest and synchronize documents from supported sources.
- Build knowledge graphs using ontologies or schemas.
- Search across graph, vector, RDF and full-text data stores.
- Add document-grounded AI query or chat to an application.
- Expose retrieval and chat capabilities through REST or MCP.
Requirements & limits
The repository is public and declares an Apache-2.0 license. The README lists Python 3.12, 3.13 and 3.14.
- LlamaIndex is the default for pipeline stages; LangChain can be selected independently for stages.
- The framework requires configuration of document sources, databases, language models and embedding providers.
- Document processing options include Docling, LlamaParse and LiteParse.
- Docker Compose can be used to enable databases and dashboards.
- Existing vector indexes need to be deleted when changing embedding models if dimensions differ.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Configure search, vector, and language-model providers
Set environment-based provider configuration for a Flexible GraphRAG retrieval setup.
Before you start
- Python 3.12, 3.13, or 3.14 is listed by the project.
- Choose supported search and vector stores and a supported LLM and embedding provider.
- For the OpenAI examples, provide an OpenAI API key; the Ollama examples specify a local Ollama base URL.
Steps
Choose a full-text search store by setting SEARCH_DB; the documented choices include bm25, elasticsearch, opensearch, and none. For example, BM25 configuration uses BM25_SEARCH_DB_CONFIG with a persist_dir.
Choose a vector store by setting VECTOR_DB and configure its provider-specific settings. Set VECTOR_BACKEND to llamaindex or langchain as needed.
Set LLM_PROVIDER and its provider-specific variables. The documented OpenAI example sets OPENAI_API_KEY and OPENAI_MODEL; the Ollama example sets OLLAMA_BASE_URL and OLLAMA_MODEL.
Set EMBEDDING_KIND and provider-specific embedding variables. The documented OpenAI example sets OPENAI_EMBEDDING_MODEL and OPENAI_API_KEY; the Ollama example sets OLLAMA_EMBEDDING_MODEL and OLLAMA_BASE_URL.
Expected outcome
Environment variables select search, vector, LLM, embedding, and framework backends for a retrieval configuration.
Guide limitations
- This recipe covers configuration only; it does not document starting the service, ingesting documents, or executing a search.
- Switching embedding models requires deleting existing vector indexes because embedding dimensions differ by provider.
- Some graph stores constrain backend selection: LangChain-only graph stores auto-select LangChain, while Spanner forces LlamaIndex.
Compare options for Retrieval-augmented applications
These projects document a common task and share a project role. This is a source-based comparison, not an execution benchmark or a guarantee of interchangeability.
| Project | Documented purpose | Platform | Access and requirements |
|---|---|---|---|
| Flexible Graphrag | Ingest and synchronize documents from supported sources. | Cloud, Server | The repository is public and declares an Apache-2.0 license. The README lists Python 3.12, 3.13 and 3.14. |
| Langsearch | Crawl website or local data for a knowledge base. | CLI, Self-hosted, Server | |
| Hybrid Search Rag | Combine document retrieval and language-model generation in a configurable workflow. |
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 13 October 2026
- Original website title
- stevereiner/flexible-graphrag · Official homepage title · retained in its source language

