How cmxau/auto-ml works
ML-AutoPilot is a browser-based, AI-assisted machine-learning workspace. Users organize work in projects, upload data for profiling and analysis, review and apply cleaning, then configure a DAG pipeline or train a model and inspect or download results. The README describes asynchronous jobs and an approval boundary: AI proposes, while users approve changes before execution. The graph shows the principal frontend-to-API paths and documented worker, storage, and model-training responsibilities; unsampled subsystem internals and uncertain wiring are left broad or omitted.
Main entry points: main.py FastAPI app · database.py Application records · client.ts API client · pipeline.py Pipeline control
Components 31
Browser workspace
- Web workspace
frontend/src/app/(auth)/login/page.tsx - Project pages
frontend/src/app/projects/[projectId]/page.tsx - Dataset pages
frontend/src/app/projects/[projectId]/datasets/[datasetId]/page.tsx - Pipeline canvas
frontend/src/components/pipeline/PipelineCanvas.tsx - Training results
frontend/src/app/projects/[projectId]/training/[runId]/page.tsx - API client
frontend/src/lib/api/client.ts
API and domain
- FastAPI app
backend/app/main.py - Authentication
backend/app/routers/auth.py - Dataset routes
backend/app/routers/datasets.py - Profiling
backend/app/services/profiling_service.py - AI analysis
backend/app/routers/ai.py - Exploration
backend/app/routers/eda.py - Data cleaning
backend/app/routers/cleaning.py - Pipeline control
backend/app/routers/pipeline.py - DAG validation
backend/app/services/pipeline_service.py - Model training
backend/app/routers/training.py - Job status
backend/app/routers/jobs.py - Storage access
backend/app/services/storage_service.py
Async execution
- Celery workers
backend/app/workers/celery_app.py - Profile worker
backend/app/workers/profiling_worker.py - AI worker
backend/app/workers/ai_worker.py - EDA worker
backend/app/workers/eda_worker.py - Cleaning worker
backend/app/workers/cleaning_worker.py - Pipeline runner
backend/app/workers/pipeline_worker.py - Training worker
backend/app/workers/training_worker.py
Persistent state
- Application records
backend/app/database.py
External systems
- MinIO
- Redis broker
- OpenAI API
- ML libraries
Other components
- Analyst
Connections 35
- Analyst → Web workspace: uses
- Web workspace → API client: requests
- Project pages → API client: loads projects
- Dataset pages → API client: loads data
- Pipeline canvas → API client: saves and validates
- Training results → API client: loads runs
- API client → FastAPI app: HTTP requests
- FastAPI app → Authentication: dispatches
- FastAPI app → Dataset routes: dispatches
- FastAPI app → AI analysis: dispatches
- FastAPI app → Exploration: dispatches
- FastAPI app → Data cleaning: dispatches
- FastAPI app → Pipeline control: dispatches
- FastAPI app → Model training: dispatches
- FastAPI app → Job status: dispatches
- Dataset routes → Profiling: profiles data
- Dataset routes → Storage access: stores uploads
- Pipeline control → DAG validation: validates graph
- Pipeline control → Pipeline runner: queues run
- Pipeline control → Application records: stores runs
- Profiling → Application records: stores profile
- Celery workers → Redis broker: uses broker
- Profile worker → Application records: writes profile
- AI worker → OpenAI API: requests analysis
- AI worker → Application records: stores insights
- EDA worker → Application records: stores results
- Cleaning worker → Storage access: reads and writes versions
- Cleaning worker → Application records: records versions
- Pipeline runner → Application records: reads graph and writes run
- Pipeline runner → Training worker: dispatches training
- Training worker → ML libraries: trains model
- Training worker → Application records: stores metrics
- Training worker → Storage access: stores artifact
- Storage access → MinIO: uploads and downloads
- Job status → Application records: reads job status