Saltar al contenido principal

Graphical ML experiment builder

The /ml/builder page composes datasets, preprocessing, model definitions, experiment records, deployments, and quick tests on a shared XYFlow canvas. Same plumbing as the Bot Builder.

Where it lives​

Palette layout​

Each palette section maps onto a list of node kinds defined in mlPalette.ts. This is a deliberately "distilled" palette — one canonical tile per concept — rather than an earlier, larger tile catalogue; there is currently no separate Records or Deploy section on the canvas.

SectionKinds
SourceDataset, DatasetPreset, IcebergSlice, FetcherSource, FeatureSet
PipelinePreprocessing, MLScale, MLWinsorize, MLLag, MLRolling, MLDecompose
SplitWalkForward, PurgedKFold, ChronologicalRatio
ModelLightGBMModel, XGBoostModel, SklearnModel, TorchModel, KerasModel
ExperimentForecastExperiment, ClassificationExperiment, AnomalyExperiment
TestSinglePredictTest, BatchPredictTest, ABCompareTest

Dispatch​

mlSerializer.ts::serializeMlExperiment builds one MlExperimentRequest payload from whatever Dataset / Split / Preprocessing / Model / Experiment node it finds on the canvas (it throws if the Dataset or Model node is missing / unpopulated). The builder route always POSTs that payload to a single endpoint, POST /ml/experiment-runs, which queues a training Celery task — there is currently no per-node-kind dispatch to a separate alpha-backtest or test endpoint from this canvas. See AlphaBacktestExperiment for the (separately triggered) POST /ml/alpha-backtest-runs flow.

Adding a new palette tile​

  1. Append an entry to the appropriate PaletteSection in mlPalette.ts.
  2. Add an accent color to ML_NODE_ACCENTS.
  3. If the new kind needs special serialization, extend the relevant *_KINDS set and helper logic in mlSerializer.ts.