Agentic MLflow Model Development & Governance Platform
FlowForge AI is an open-source, containerized Machine Learning platform that automates the end-to-end ML lifecycle using AI Agents. It features a Human-in-the-Loop workflow, ensuring you stay in control while AI handles the heavy lifting of EDA, Feature Engineering, and Model Optimization.
The system is composed of several Docker services orchestrated via Docker Compose:
graph TD
User((User)) -->|Browser| UI[Streamlit UI : 8501]
UI -->|HTTP| API[FastAPI Backend : 8000]
API -->|Manage| Prefect[Prefect Orchestrator : 4200]
API -->|Log| MLflow[MLflow Tracking : 5000]
API -->|Prompt| Ollama[Ollama LLM GPU : 11434]
Prefect -->|Run| Workers[ML Workers]
Workers -->|Train| Optuna[Optuna Optimization]
Workers -->|Track| MLflow
API -->|RAG| Artifacts[File System /app/docs]
- Streamlit UI: Interactive Wizard-style interface.
- FastAPI Backend: Handles requests, runs Agents, and manages file I/O.
- Prefect: Orchestrates long-running flows (Model Training).
- MLflow: Tracks experiments, metrics, and models.
- Ollama: Local LLM inference (Llama 3 recommended) for Agents.
- Dozzle: Real-time log viewer.
- Docker and Docker Compose installed.
- NVIDIA GPU & NVIDIA Container Toolkit (for Ollama acceleration).
- Note: If you don't have a GPU, modify
docker-compose.ymlto remove thedeploysection underollama.
- Note: If you don't have a GPU, modify
-
Clone the Repository
git clone https://github.com/quickSilverShanks/FlowForge-AI.git cd FlowForge-AI -
Start the Platform
docker-compose up --build -d
The first run will take time to build images.
-
Initialize Ollama Model Once containers are running, download the LLM model (execute inside the ollama container or via API if implemented, typical manual step for first time):
docker exec -it flowforge_ollama ollama pull llama3
You can configure the LLM model used by the agents by setting the LLM_MODEL_NAME environment variable in the .env file at the root of the project.
- Create a
.envfile (if not present):cp .env.example .env
- Edit
.envand set your desired model:Note: Ensure the model you choose strictly matches the model name in Ollama.LLM_MODEL_NAME=llama3
Access the services at the following URLs:
| Service | URL | Description |
|---|---|---|
| App UI | http://localhost:8501 |
Main Interface (Streamlit) |
| Backend API | http://localhost:8000/docs |
API Swagger |
| MLflow | http://localhost:5000 |
Experiment Tracking |
| Prefect | http://localhost:4200 |
Workflow Orchestration |
| Logs | http://localhost:8888 |
Container Logs |
- Data Upload: Go to the "Data Upload" page and upload your CSV/Parquet file. Define your Target column.
- EDA: Switch to "EDA". Click "Run AI Analysis". The Agent will generate a "Vibe Check" and statistical summary.
- Feature Engineering: Go to "Feature Engineering". The Agent will propose a plan (Imputation, Encoding, etc.). Review, Edit, and Apply it.
- Model Training: Go to "Model Training". The Agent proposes a search space. Click "Start Training" to trigger the Prefect Flow. Watch the progress in the Prefect Dashboard.
- Validation: Evaluate fairness and performance on OOT data.
- Monitoring: Generate a drift detection config.
- Final Report: Chat with the
RAG Agentto ask questions about what happened during the session (e.g., "Why did we drop the Age column?").
- Backend Code:
app/api/ - UI Code:
app/ui/ - Agents:
app/core/agents/ - ML Logic:
app/core/ml/
To add a new dependency, update requirements.txt and rebuild:
docker-compose up --build -d