A platform that enables users to visually construct, manage, and interact with Intelligent RAG (Retrieval-Augmented Generation) workflows.
This application allows you to build custom AI "Stacks" by dragging and dropping components to connect Google's Gemini LLM with personal document knowledge bases, all through a seamless visual interface.
- Visual Workflow Canvas: Built with
React Flowfor a high-performance, node-based experience. - RAG-as-a-Service: Upload PDFs and extract knowledge using Google Cloud Embeddings (
text-embedding-004). - Graph-Based Engine: A FastAPI backend that parses visual connections and executes workflows as Directed Acyclic Graphs (DAGs).
- Intelligent LLM Integration: Uses the latest
google-genaiSDK with built-in retry logic for handling API Quota (429) errors and strictv1API versioning to avoid 404 model errors. - Full Persistence: Metadata stored in PostgreSQL; Vector embeddings stored in a persistent ChromaDB instance.
- Frontend: React.js, Vite, React Flow, Tailwind CSS.
- Backend: FastAPI, SQLAlchemy, PyMuPDF (Text Extraction).
- AI/ML: Google Gemini (1.5 Flash), Google Cloud Embeddings.
- Vector Store: ChromaDB (Cloud-backed).
- Infrastructure: Docker, Docker Compose, Node-Serve.
- Docker & Docker Compose installed on your machine.
- Google AI Studio API Key: Obtain one for free at aistudio.google.com.
The entire stack (Frontend, Backend, PostgreSQL, and ChromaDB) is containerized for a one-command setup.
-
Clone the repository:
git clone https://github.com/amann-codes/workflowbuilder.git cd workflowbuilder -
Configure Environment Variables: Create a
.envfile in the root directory (wheredocker-compose.ymlis):GEMINI_API_KEY=your_actual_api_key_here
-
Launch the Stack:
docker compose up --build
-
Access the Application:
- Frontend UI: http://localhost:5173
- Backend API: http://localhost:8000
- Interactive API Docs (Swagger): http://localhost:8000/docs
If you wish to run the components without Docker:
cd workflow-builder-be- Create and activate a venv:
python -m venv venv->source venv/bin/activate - Install dependencies:
pip install -r requirements.txt - Set
.envwithGEMINI_API_KEYandDATABASE_URL=sqlite:///./test.db. - Run:
uvicorn main:app --reload --port 8000
cd workflow-builder- Install:
npm install - Set
.envwithVITE_API_URL=http://localhost:8000. - Run:
npm run dev
- Dashboard: Click "New Stack" and give your workflow a name.
- The Canvas: Drag components from the left sidebar onto the workspace.
- User Query: The entry point for your questions.
- Knowledge Base: Upload a PDF.
- LLM (Gemini): Configure your system prompt.
- Output: The final chat destination.
- Connections: Connect
User Query->LLMandKnowledge Base->LLM. Finally, connectLLM->Output. - Execution: Click the Save icon, then click the Play (Chat) button. Ask questions based on your uploaded document!