Skip to main content

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 mlExperimentPalette.ts.

SectionSample kinds
SourceDataset, DatasetPreset, IcebergSlice, FetcherSource, PipelineManifestRef, FeatureSet
PipelinePreprocessing, MLScale, MLWinsorize, MLLag, MLRolling, MLDecompose, MLPyODOutliers, MLImputation
SplitSplit, WalkForward, PurgedKFold, Quarterly, ChronologicalRatio
ModelSklearnModel, KerasModel, TensorflowModel, TorchModel, LightGBMModel, XGBoostModel, ProphetModel, SktimeModel, PyODModel, HuggingFaceModel
RecordsRecords, SignalRecord
ExperimentExperiment, ForecastExperiment, ClassificationExperiment, AnomalyExperiment, AlphaBacktestExperiment, FlowPreview
TestSinglePredictTest, BatchPredictTest, ABCompareTest, ScenarioTest
DeployRegisterModelVersion, PromoteToProduction, CreateModelDeployment

Dispatch

mlExperimentSerializer.ts::dispatchFromGraph inspects the canvas and routes to the right backend endpoint:

  • Graph contains an AlphaBacktestExperiment node → POST /ml/alpha-backtest-runs
  • Graph contains a Test* node → POST /ml/test/{single|batch|compare|scenario}
  • Otherwise → POST /ml/experiment-runs

This means a single canvas serializes either an experiment-style run or an alpha-backtest run depending on what the user dropped on it.

Interactive Workbench drawer

The toolbar exposes an "Interactive Workbench" button that opens a right-hand drawer wrapping the /ml/flows catalog. The form is auto-generated from GET /ml/flows so adding a new flow lights up here automatically.

Adding a new palette tile

  1. Append an entry to the appropriate PaletteSection in mlExperimentPalette.ts.
  2. Add an accent color to ML_EXPERIMENT_ACCENTS.
  3. If the new kind needs special serialization (e.g. it must reach a bespoke endpoint), extend mlExperimentSerializer.ts's helper sets and dispatchFromGraph.