- TypeScript 42%
- Python 39.8%
- CSS 16%
- Makefile 1.4%
- HTML 0.8%
| .forgejo/workflows | ||
| backend | ||
| frontend | ||
| licenses | ||
| .env.example | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
TabPFN Explorer
TabPFN Explorer is a small local web application for loading a labeled CSV, selecting its target, evaluating TabPFN-3 on a deterministic stratified holdout, and inspecting accuracy, log loss, confidence, predictions, and per-class probabilities. It is an interview-oriented TypeScript/React and FastAPI proof artifact rather than a hosted model service.
Architecture
CSV in the browser
-> Papa Parse + typed React state
-> POST /api/predict
-> FastAPI validation + stratified 80/20 split
-> process-local, locked TabPFN-3 classifier
-> metrics and held-out probabilities
Vite proxies /api to FastAPI during development.
After a production build, FastAPI serves frontend/dist/ and the API together from one process.
Inference runs on the local machine; this repository contains no model checkpoint or credential.
Prerequisites
- Python 3.12
- Node.js 22 or newer with npm
- A Prior Labs account with the applicable TabPFN-3 model license accepted
- Internet access for the one-time model checkpoint download
For headless authentication, set TABPFN_TOKEN before warmup.
TABPFN_MODEL_CACHE_DIR can select a persistent model-cache directory; .env.example documents both variable names without storing values.
Commands
The top-level Makefile is the public command surface.
make install
Creates .venv with python3.12, installs the backend and test dependencies, and installs the locked frontend dependencies with npm ci.
make warmup
Completes the explicit model-access step, downloads TabPFN-3 when necessary, and runs a real fit/predict smoke check.
The command must finish with TabPFN-3 is ready. before the first demo.
make dev
Starts FastAPI at http://127.0.0.1:8000 and Vite at http://127.0.0.1:5173.
make test
Runs backend Pytest and frontend Vitest contracts without downloading model weights.
make build && make serve
Builds the production frontend, checks the Python package, and serves the complete same-origin application at http://127.0.0.1:8000.
Iris walkthrough
- Run
make installandmake warmuponce. - Start
make devand openhttp://127.0.0.1:5173. - Select Load Iris sample.
- Confirm the suggested target is
species, then select Run stratified holdout. - Inspect the 120-row training and 30-row test split, metrics, predictions, confidence, and the three class-probability bars for every held-out row.
The committed Iris sample contains 150 labeled rows and follows the same parser and API path as an uploaded file.
Demo bounds
- CSV files: at most 5 MB
- Data rows: 20–500
- Feature columns: 1–100
- Target classes: 2–10, with at least five rows per class
- Holdout: stratified 20%,
random_state=42
Features are passed to TabPFN without scaling or one-hot encoding so the model can apply its own numeric and categorical preprocessing.
Licensing and attribution
This application is not a hosted service. It runs TabPFN-3 locally after each user separately completes Prior Labs' license and download flow. The TabPFN-3 model license permits specific non-commercial use; read the included model license before using the weights.
The root MIT license covers only the original demo code in this repository.
TabPFN code and model weights remain under Prior Labs' respective licenses, copied under licenses/, and no weights are redistributed here.
See NOTICE for the attribution and license pointers.