Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dashAI

PyPI Documentation Status

A graphical toolbox for training, evaluating and deploying state-of-the-art AI models.

dashAI Logo

DashAI pairs a visual, interactive workbench with reproducible execution: you design datasets, experiments and pipelines in the browser, while Kedro governs pipeline runs with an explicit DAG, per-run reproducibility manifests and exportable standalone projects (see Kedro integration).

Quickstart (from source)

git clone https://github.com/DashAISoftware/DashAI.git
cd DashAI
./start.sh

start.sh creates a virtual environment, installs the backend, builds the frontend if Node/Yarn are available, and launches the app at http://localhost:8000. Useful flags:

./start.sh --port 8080        # serve on another port
./start.sh --no-browser       # don't auto-open the browser
./start.sh --dev              # backend with DEBUG logging (pair with 'yarn start' for the frontend)
./start.sh --skip-install     # fast start when deps are already installed
./start.sh --build-front      # force a frontend rebuild
./start.sh -- --window-mode   # pass extra flags through to 'python -m DashAI'

Run ./start.sh --help for the full list.

macOS Intel note: torch 2.2.2 (the last release with x86_64 macOS wheels) is built against NumPy 1.x, while the newest scipy/shap/opencv releases require NumPy ≥ 2 and recent numba/llvmlite ship no Intel-mac wheels at all. start.sh resolves this automatically by applying constraints/macos-intel.txt (numpy<2 plus the last NumPy-1-compatible releases of the affected packages) to every install and repair step. If installing manually, use pip install -e . -c constraints/macos-intel.txt. On Apple Silicon, make sure you are not using an Intel (Rosetta) Python — check with python -c "import platform; print(platform.machine())".

Desktop installers (Windows / macOS / Linux)

The easiest way to get started. Desktop installers, ready to use, are published with every release. They are CPU only and bundle everything you need, so no Python or extra setup is required.

Download the file for your system from the latest release:

  • Windows (x64): dashAI-<version>-x64-windows.exe
  • macOS (Apple Silicon): dashAI-<version>-arm-osx.dmg
  • macOS (Intel): dashAI-<version>-x64-osx.dmg
  • Linux (x64): dashAI-<version>-x64-linux.AppImage

On Windows and macOS, run the installer, launch dashAI, and the graphical interface opens automatically.

On Linux, make the AppImage executable and run it:

chmod +x dashAI-<version>-x64-linux.AppImage
./dashAI-<version>-x64-linux.AppImage

The AppImage bundles its own Python, so nothing needs to be installed. It requires glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora 36+, and most distributions from 2022 on) and FUSE 2 to mount. If FUSE is missing, run it with ./dashAI-<version>-x64-linux.AppImage --appimage-extract-and-run.

When double clicked, the AppImage opens a terminal window to show the server logs. This needs a terminal emulator, which every standard desktop (GNOME, KDE, XFCE, and others) already provides, so no setup is required. On a minimal system with no terminal emulator the log window is skipped, but the app still starts and opens the browser as usual.

Note: the desktop installers ship with CPU only PyTorch and llama-cpp-python. For NVIDIA (CUDA) or AMD (ROCm) GPU acceleration, use the pip installation below.

Installation (PyPI)

dashAI needs Python 3.10 or greater. We strongly recommend installing it inside an isolated environment (venv or conda) to avoid clashes with other packages.

Installing dashAI also installs PyTorch with the default build for your platform, which works out of the box on CPU. To enable GPU acceleration (NVIDIA CUDA or AMD ROCm), or to force a CPU only build, reinstall PyTorch from the matching index as shown in step 3. llama-cpp-python is required to run LLM models (GGUF / Llama, Mistral, Qwen, and similar) inside the app, but it is never installed automatically, so install it in step 3 if you need those models.

1. Create an environment

Linux / macOS (venv)

python3 -m venv dashai-env
source dashai-env/bin/activate

Windows (venv)

python -m venv dashai-env
dashai-env\Scripts\activate

conda (any platform)

conda create -n dashai python=3.12
conda activate dashai

2. Install dashAI

pip install dashai

3. (Optional) GPU acceleration and LLM support

This step is optional on CPU (step 2 already installed a working PyTorch).

CPU only (smaller install on Linux):

pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu --force-reinstall --no-cache-dir
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu --force-reinstall --no-cache-dir

NVIDIA (CUDA):

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128 --force-reinstall --no-cache-dir
pip install llama-cpp-python -C cmake.args="-DGGML_CUDA=on" --force-reinstall --no-cache-dir --verbose

AMD (ROCm):

pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.4 --force-reinstall --no-cache-dir
pip install llama-cpp-python -C cmake.args="-DGGML_HIP=on" --force-reinstall --no-cache-dir --verbose

Build tools for GPU llama-cpp

The -C cmake.args=... commands above compile llama-cpp-python from source. They require:

  • CMake (required to drive the build)
  • A C compiler:
    • Linux: gcc or clang
    • Windows: Visual Studio (C++ build tools / MSVC) or MinGW
    • macOS: Xcode
  • NVIDIA (CUDA): NVIDIA drivers and the NVIDIA CUDA Toolkit. Use version >=12.8 for RTX 5000 series GPUs to work.
  • AMD (ROCm): the ROCm / HIP SDK and AMD drivers.

If you want to skip compilation, precompiled llama-cpp-python wheels are available for CPU and CUDA:

pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu --force-reinstall --no-cache-dir
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/<cuda-version> --force-reinstall --no-cache-dir

Replace <cuda-version> with your CUDA tag. Prebuilt wheels are published for cu118, cu121, cu122, cu123, cu124, cu125, cu130 and cu132 (for example cu124). See the llama-cpp-python installation docs for the available wheels and other backend options.

4. Run dashAI

Start the server and graphical interface with:

dashai

Then open http://localhost:8000/ in your browser to access the dashAI graphical interface.

Useful options:

dashai --port 8080          # serve on another port (or set DASHAI_PORT)
dashai --no-browser         # don't auto-open the browser
dashai --window-mode        # native desktop window (PyWebView)
dashai --local-path <dir>   # data directory (default ~/.DashAI)
dashai --logging-level DEBUG

Kedro integration

DashAI includes a visual pipeline editor backed by two compatible execution paths: the native DashAI runner and a Kedro-governed runner. The same saved visual graph is used by both engines. DashAI owns the interactive workflow, component configuration, job supervision and results UI; Kedro owns the reproducible DAG execution, DataCatalog lifecycle, run manifests and project export.

Visual pipeline editor

The editor stores the node configuration (steps) and the visual connections (edges) as a directed acyclic graph. Connections are not decorative: they are validated by the backend and become real execution dependencies in both the native runner and Kedro.

DashAI visual pipeline with Data Selector, Data Exploration, Train Model and Prediction

The current pipeline nodes have the following contracts:

Node Input Output Valid next nodes
Data Selector Stored DashAI dataset Dataset context Data Exploration, Train Model, Retrieve Model
Data Exploration Dataset context Persisted exploration results Terminal node
Train Model Dataset context Trained-model contract, metrics and model artifact Prediction
Retrieve Model Prediction dataset context Loaded model contract from a previous pipeline Prediction
Prediction Model contract produced by Train Model or Retrieve Model Persisted predictions Terminal node

A common branched workflow is:

                         ┌──> Data Exploration
                         │
Data Selector ───────────┤
                         │
                         └──> Train Model ───> Prediction

For inference with an already trained model, use:

Data Selector ───> Retrieve Model ───> Prediction

Prediction intentionally has one predecessor. Train Model and Retrieve Model carry the selected dataset and model metadata through their branch context, so a second edge from Data Selector to Prediction is not required.

Node configuration and validation

Data Selector selects an existing dataset and propagates its id, name, path and in-memory dataset object to the next node.

Selecting the students dataset in Data Selector

Data Exploration supports one or more DashAI explorers in the same node. Explorer parameters and selected columns are validated against the component schema and dataset dtypes before execution. Results are persisted under the DashAI local data directory and are rendered in the pipeline RESULTS view.

Configuring Correlation Matrix and Density Heatmap explorers

Train Model uses 1-based column selections in the UI (ranges such as 1-7 are supported), split proportions, task, model, model hyperparameters and metrics. Before saving the node, DashAI normalises the selected indexes to canonical dataset column names and validates task compatibility. The backend also accepts legacy 1-based indexes for stored pipelines, rejects out-of-range or duplicated columns, and prevents input/output overlap.

Train Model configuration with task, Logistic Regression and metrics

The graph validator additionally rejects invalid node types, duplicate semantic nodes, incompatible edges, missing required predecessors, self-connections, multiple predecessors and cycles. The same constraints are checked again by the execution layer as a safety net.

Native Run and Kedro Run

The toolbar exposes the normal RUN action and, when Kedro is available, a KEDRO action showing the installed Kedro version.

Run and Kedro controls

Execution mode Behaviour
RUN Executes the saved graph through DashAI's PipelineJob and Huey job queue. Every node receives only its direct predecessor's context, preventing state leakage between branches.
Run with Kedro Converts the same steps + edges graph into a real kedro.pipeline.Pipeline, executes it with DataCatalog + SequentialRunner, and tracks the run through the same DashAI job queue.
Export Kedro project Downloads a standalone Kedro project that rebuilds the visual DAG and can be executed with kedro run.

In the Kedro bridge, every visual edge becomes a catalog dependency (ctx__<node>). When a graph branches, each node receives a copy of its predecessor context; terminal branches are merged only after they complete. This makes branch execution deterministic instead of depending on the order of the JSON steps array.

Pipeline results

Pipeline outputs are written back to the saved pipeline and reused by the RESULTS tab regardless of whether the run used the native runner or Kedro. Exploration outputs use DashAI's existing visualizers (tabular, Plotly JSON and images), while training exposes model information, parameters, metrics and graphs. The GRAPHS tab reuses DashAI's standard results graph components and adapts the pipeline metrics for the train, validation and test splits, so bar/heatmap visualizations share the same rendering path as the regular model results UI. If no graphable metrics are available, the UI shows an empty-state message instead of failing the React render tree. Prediction runs persist their result and metadata as JSON.

Correlation Matrix result rendered in a pipeline

Exploration and Train results in the pipeline Results view

The result-bearing artifacts are stored below the configured DashAI LOCAL_PATH:

pipelines/exploration/<pipeline_id>/   # explorer notebooks/results
pipelines/train/<pipeline_id>          # trained model artifact
pipelines/predictions/prediction_*.json
kedro/runs/<run_id>/manifest.json      # Kedro reproducibility manifest
kedro/exports/                         # exported standalone projects

Reproducibility and API

Every Kedro run produces a manifest containing the pipeline id/name, exact steps and edges, a stable SHA-256-derived fingerprint of the canonical steps/configuration, Python/Kedro/DashAI versions, timestamps, final status and the keys produced by each node. A new Kedro run also clears previous pipeline outputs before it is enqueued so the UI does not display stale results while the worker is running.

The integration API lives at /api/v1/kedro:

Method & path Purpose
GET /api/v1/kedro/ Kedro availability, version and registered job type
POST /api/v1/kedro/runs/{pipeline_id} Enqueue a reproducible Kedro run
GET /api/v1/kedro/runs List recorded Kedro runs
GET /api/v1/kedro/runs/{run_id} Read a run manifest
GET /api/v1/kedro/pipelines/{pipeline_id}/dag Inspect the generated Kedro DAG
POST /api/v1/kedro/export/{pipeline_id} Export the visual pipeline as a standalone Kedro project

For implementation details, execution semantics, persistence paths and troubleshooting, see docs/docs/deep-dive/kedro.md. If Kedro is not installed, the core DashAI pipeline runner continues to work and the Kedro button is shown as unavailable.

Docker

dashAI can also run inside a container. Two Dockerfiles are provided at the repository root.

CPU image

Dockerfile builds a CPU only image (CPU PyTorch). Build and run it with:

docker build -t dashai .
docker run -p 8000:8000 dashai

NVIDIA GPU image (CUDA)

Dockerfile.cuda builds a CUDA enabled image (CUDA 12.8 PyTorch and llama-cpp-python compiled with CUDA offload). Build and run it with:

docker build -t dashai:cuda -f Dockerfile.cuda .
docker run --gpus all -p 8000:8000 dashai:cuda

Then open http://localhost:8000/ in your browser.

To pass the host GPU into the container with --gpus all you need the NVIDIA drivers plus the runtime that wires the GPU into Docker. How you get that runtime depends on your setup:

  • Native Linux Docker: install the NVIDIA Container Toolkit on the host.
  • Docker Desktop (Windows / macOS): the GPU runtime is bundled with the WSL 2 backend, so you only install the NVIDIA driver on Windows and enable the WSL 2 backend. See the Docker Desktop GPU docs.
  • Docker Engine inside a WSL 2 distro (without Docker Desktop): install the NVIDIA Container Toolkit inside the WSL distro, following the CUDA on WSL guide.

Test datasets

Some datasets you can use to try dashAI are available here.

Development

To download and run the development version of dashAI, first, download the repository and switch to the developing branch:

git clone https://github.com/DashAISoftware/DashAI.git
git checkout develop

The fastest way to a working dev setup is ./start.sh --dev, which prepares the environment and starts the backend with DEBUG logging. For the full manual setup:

Frontend

All commands in this section run from DashAI/front.

  1. Install the LTS node version.
  2. Install the Yarn package manager following the yarn getting started page.
  3. Install the project packages and start the dev server:
cd DashAI/front
yarn install
yarn start        # dev server on http://localhost:3000
yarn build        # production build served by the backend

Backend

Set up a Python (>= 3.10) environment, then:

pip install -e . -r requirements-dev.txt
pre-commit install
python -m DashAI --no-browser --logging-level DEBUG

Lint and format with ruff:

ruff check --fix
ruff format

Testing

From the repository root:

pytest tests/

The backend tests use an in-memory SQLite database, so no setup is needed. The database session is parametrized in every endpoint as db: Session = Depends(get_db) so endpoints are tested on a test database without touching the main one.

Acknowledgments

This project is developed in collaboration with:

Supported by ANID through Fondef IDEA ID25I10330, Fondef VIU23P 0110, and grants supporting the centers CENIA (FB210017) and IMFD (ICN17_002). Developed by students of DCC UChile and UTFSM.

Logos of collaborating institutions

To see the full list of contributors, visit Contributors in the dashAI repository on Github.

About

dashAI: an interactive platform for training, evaluating and deploying AI models

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages