New Tabbed UI for Flexible GraphRAG (and Flexible RAG)

See Flexible GraphRAG Initial Version Blog Post

Flexible GraphRAG on GitHub

X.com Steve Reiner @stevereiner LinkedIn Steve Reiner LinkedIn

The Angular, React, and Vue frontend clients now have different stages organized into different tabs so they have room. They all can be switched between a dark and light theme using the slider at the top right corner. New functionality beyond the old UI includes a file upload dialog, drag/drop upload, a table with file processing progress bars, and a new Chat UI. Note the github readme.md page has collapse / expand sections to look at screenshots with dark and light themes for React, and only shows the light theme for Angular and Vue.

Sources Tab


Allows you to choose file to upload from the file system, or paths file or folder path in Alfresco or CMIS repositories. For filesystem files you can now use a file upload dialog and drag/drop files onto the drop area in the source tab view.

For Alfresco and CMIS their no file picker UI currently (only a field for folder or file path) Note the file path is a basic CMIS style path like /Shared/GraphRAG/cmispress.txt. You also specify username, password and base URL like prefilled http://localhost:8080/alfresco for Alfresco and http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom for CMIS.

You then click on “Configure Processing


Processing Tab

Here you can modify what files get processed by unselecting / selecting file checkboxes, Remove from processing list by using x a on file row, our use the remove selected button.
The click on Start Processing to process selected files.
There is an overall progress bar, and per file progress bars. Note currently all files are processed as one batch in the backend, so the file progress bars will be showing the same status.
You can cancel processing by using the cancel button

Search Tab

Here you can do a Hybrid Search (Fulltext+Vector RAG+GraphRAG) or (Fulltext+Vector RAG) depending on configuration. This gives you a traditional results list. For now ignore the scores and extra results just check results order.

The Q&A Query, Here you ask a question using conversational style (This is an AI query using the configured LLM and the information submitted in the processing tab (and in full text, vector, and graph “memory”)

Chat Tab

This a traditional chat style UI allowing you the enter multiple conversational Q&A queries (AI queries like the one at a time in the Search Tab). You hit enter or click the arrow button to submit a query. You can also use Shift+Enter to get a extra new line for your question. The chat view area displays a history of questions and answers. The you can clear things with the Clear History button

Flexible RAG

I used Flexible RAG in the title to indicate that Flexible GraphRAG can be configured to just be a RAG system. This would still have the flexibility that LlamaIndex abstractions provide to be able to plug in different search engines/databases, vector databases, and LLMs. You still get Angular, React, and Vue frontends, have MCP server support, a FastAPI backend, and Docker support. You could just configure a search engine. You could just configure a Graph database for auto graph building of knowledge graphs using the configurable schema support.

For RAG configuration:
Flexible GraphRAG can be setup to do RAG only without the GraphRAG (see env-sample.txt and setup your environment in .env, etc.):

  • Have SEARCH_DB and SEARCH_DB_CONFIG set for elasticsearch, opensearch, or bm25
  • Have VECTOR_DB and VECTOR_DB_CONFIG setup for neo4j, qdrant, elasticsearch, or opensearch
  • Have GRAPH_DB set to none and ENABLE_KNOWLEDGE_GRAPH=false.

Server Monitoring and Management UI

Basically you can use the docker setup and get a docker compose that run all the following at the same time (or a subset by commenting out a compose include) without having to these up individually: Alfresco docker compose (which has Share and ACA), Neo4j docker (which has a console URL), Kuzu API server (not used, used embedded), Kuzu explorer, Qdrant (which has a dashboard), Elasticsearch, Elasticsearch Kibana dashboard, OpenSearch which has a OpenSearch Dashboards URL.

So you can setup a browser window with tabs for all these dashboards, Alfresco Share / ACA, and Neo4J console. This is your monitoring and management UI.

You can uses the Neo4j, Elasticsearch Kibana, Qdrant dashboard, OpenSearch dashboards to delete full text indexes (Elasticsearch, OpenSearch), delete vector indexes (Qdrant, Neo4j, Elasticsearch, OpenSearch) and delete nodes and relationships (Neo4j and Kuzu consoles).

Flexible GraphRAG initial version

Flexible GraphRAG on GitHub

Flexible GraphRAG is an open source python platform supporting document processing, Knowledge Graph auto-building, Schema support, RAG and GraphRAG setup, hybrid search (fulltext, vector, graph), and AI Q&A query capabilities.

X.com Steve Reiner @stevereiner LinkedIn Steve Reiner LinkedIn

Has a MCP Server, Fast API Backend, Docker support, Angular, React, and Vue UI clients

Built with LlamaIndex which provides abstractions for allowing multiple vector, search graph databases, LLMs to be supported.

Supports currently:

Graph Databases: Neo4j, Kuzu

Vector Databases: Neo4j, Qdrant, Elasticsearch, OpenSearch

Search Databases/Engines: Elasticsearch, OpenSearch, LlamaIndex built-in BM25

LLMs: OpenAI, Ollama

Data Sources: File System, Hyland Alfresco, CMIS

A configurable hybrid search system that optionally combines vector similarity search, full-text search, and knowledge graph GraphRAG on document processed (Docling) from multiple data sources (filesystem, Alfresco, CMIS, etc.). It has both a FastAPI backend with REST endpoints and a Model Context Protocol (MCP) server for MCP clients like Claude Desktop, etc. Also has simple Angular, React, and Vue UI clients (which use the REST APIs of the FastAPI backend) for using interacting with the system.

  • Hybrid Search: Combines vector embeddings, BM25 full-text search, and graph traversal for comprehensive document retrieval

Knowledge Graph GraphRAG: Extracts entities and relationships from documents to create graphs in graph databases for graph-based reasoning

  • Configurable Architecture: LlamaIndex provides abstractions for vector databases, graph databases, search engines, and LLM providers
  • Multi-Source Ingestion: Processes documents from filesystems, CMIS repositories, and Alfresco systems
  • FastAPI Server with REST API: FastAPI server with REST API for document ingesting, hybrid search, and AI Q&A query
  • MCP Server: MCP server that provides MCP Clients like Claude Desktop, etc. tools for document and text ingesting, hybrid search and AI Q&A query.
  • UI Clients: Angular, React, and Vue UI clients support choosing the data source (filesystem, Alfresco, CMIS, etc.), ingesting documents, performing hybrid searches and AI Q&A Queries.
  • Deployment Flexibility: Supports both standalone and Docker deployment modes. Docker infrastructure provides modular database selection via docker-compose includes – vector, graph, and search databases can be included or excluded with a single comment. Choose between hybrid deployment (databases in Docker, backend and UIs standalone) or full containerization.

Check-ins 8/5/25 thru 8/9/25 provided:
1. Added LlamaIndex support, configurability, KG Building, GraphRAG, Hybrid Search, AI Q&A Query, Angular, React, and Vue UIs. Based on CMIS GraphRAG UI and CMIS GraphRAG which didn’t use LlamaIndex (used neo4j-graphrag python package)
2. Also added a FastMCP based MCP Server that uses the FastAPI server.

Check-in today 8/15/25 provided:

Added: Multiple Databases Support, Docker, Schemas, and Ollama support

  1. Leveraging LlamaIndex abstractions, added support for more search, vector and graph databases (beyond previous Neo4j, built-in BM25). Now support:
    Neo4j graph database, or Neo4j graph and vectors (also Neo4j browser / console)
    Elasticsearch search, or search and separate vector (also Kibana dashboard)
    OpenSearch search, or search+vector hybrid search (also OpenSearch Dashboards)
    Qdrant vector database (also its dashboard)
    Kuzu graph database support (also Kuzu explorer)
    LlamaIndex built-in local BM25 full text search
    (Note: LlamaIndex supports additonal vector and graph databases which we could support)
  2. Added composable Docker support
    a. As way to run search, graph, and vector databases. Also dashboards, and alfreso
    (comment out includes for what you have exernally or don’t use)
    b. Databases together with Flexible GraphRAG backend, and Angular, React, and Vue UIs
  3. Added Schema support for Neo4j (optional), and Kuzu (needed). Support default and custom
    schemas you configure in your environment (.env file, etc.)
  4. Added Ollama support in addition to OpenAI. Tested thru Ollama gpt-oss:20b, llama3.1, llama3.2.
    (Note: LlamaIndex supports additonal LLMs which we could support)

TypeScript for Alfresco and CMIS – Alfresco DevCon 2012 lightning talk slides and sample app

I also uploaded my slides to SlideShare from the second lightning talk presentation I made at Alfresco DevCon 2012 San Jose.

TypeScript for Alfresco and CMIS – Alfresco DevCon 2012 San Jose

This briefly covered some languages that can be translated to JavaScript (TypeScript, Dart, ActionScript, CoffeeScript) and used for developing HTML5/JS  desktop and mobile web applications. TypeScript seems to be the best choice. The IDEs and editors currently supporting TypeScript was then listed.

Finally, my plans to support various Alfresco and CMIS things with TypeScript was covered: port CMIS Spaces and FlexSpaces from Flex/AS3 to TypeScript, TypeScript wrappers for AlfJS and CMIS.JS, additional Alfresco and CMIS TypeScript libraries, sample showing a Share dashlet written in TypeScript, and a TypeScript definition file for intellisense / compile time type checking for Alfresco WebScripts.

The small TypeScript app (start on a repo browser) I started with definition wrappers for AlfJS, YUI3, with a dummy tree (no real data yet) and folder table (that displays data from Alfresco with AlfJS) is included here alf-yui-typescript-app1.zip (will add to github later). The definition for YUI3 comes from what this gist had with adds to get it to compile in Visual Studio 2012 with the TypeScript plugin.

First Test Version and Source of CMIS Spaces Mobile Available

CMIS Spaces is a Flex based RIA Client for CMIS content mgt repositories with Desktop (AIR App, Flex In Browser) and Mobile (Android Mobile AIR App, iOS Mobile AIR App) versions.

The source and first test version of CMIS Spaces Mobile is finally available on the CMIS Spaces Google Code site. Its geared more for Android tablets / iPads than smart phones.

A first test build of CMIS Spaces Mobile for Android is available for download. The iOS version can be built from the common source using Flash Builder 4.6 / Flex 4.6 .

A newer version of FlexSpaces Mobile for Alfresco and newer source is also available on the FlexSpaces Google Code site. CMIS Spaces and FlexSpaces share a good bit code between them. FlexSpaces has support for more features (workflow, etc.) and uses custom web scripts instead of CMIS binding APIs.

A third test build of FlexSpaces Mobile for Android is available for download. FlexSpaces Mobile for iOS can be built from the common FlexSpaces source.

Alfresco Add+Ons Catalog pages:
CMIS Spaces
Flex Spaces

New CMIS Spaces 2012.04.19 version

cmis-spaces-20120419-3.png

A new version of CMIS Spaces is now available on google code:

1. Now can set the cmis atompub url for your repository from a preferences dialog without changing the config file. The preferences dialog  is accessed by clicking on the “Preferences” button on the login page.

2. Has fixes for Alfresco 4.x opencmis atompub binding. Tested on Alfresco 4.0d (Alfresco 3.x atompub binding, 4.x opencmis atompub binding,  and soap binding),  IBM FileNet, Nuxeo 5.5,  and Adobe CRX). Still need to test on Microsoft SharePoint and EMC Documentum.

3. Now uses the video player instead of video display control (so has more controls and fullscreen option). A  “Play Video” menu was added to the File menu.

4. The code has been been split up into libraries (atompub, soap, main cmis spaces lib, etc.) and an app project. Further work is needed on the libraries, maybe could make more like Apache Chemistry OpenCMIS client APIs.

5. AIR and  “in browser” versions are available  A CMIS Spaces Mobile version (like FlexSpace Moble) is coming soon.