UnicoLab Keras Ecosystem
FlowyML Notebook natively integrates with the UnicoLab ML ecosystem โ three open-source packages that work together to give you a complete Keras-based ML workflow: preprocessing, model building, and training.
All packages are optional
Adapters gracefully degrade when packages are not installed. SmartPrep and Algorithm Matchmaker still work with scikit-learn โ ecosystem packages add additional deep-learning recommendations.
Quick Install
Ecosystem Packages
KDP โ Keras Data Processor
Auto-configure Keras preprocessing layers with intelligent feature type detection.
| Feature | Description |
|---|---|
| Auto Feature Types | Maps DataFrame columns to FeatureType enums (normalized, categorical, text, etc.) |
| Distribution-Aware Encoding | Learns optimal transforms for skewed features |
| Tabular Attention | Cross-feature attention layers for complex interactions |
| In-Model Preprocessing | Preprocessing deploys as part of your Keras model โ no separate pipeline |
Integration Point: SmartPrep Advisor โ KDP suggestions appear as top-priority "recommended" entries with ready-to-use code.
KerasFactory โ Reusable Keras Layers & Models
38+ production-ready Keras layers and model architectures for tabular data.
| Layer | Use Case |
|---|---|
BaseFeedForwardModel |
One-liner fully connected model with dropout |
GatedResidualNetwork |
Feature-wise gating for complex interactions |
TabularAttention |
Self-attention for tabular features |
DistributionTransformLayer |
Automatic distribution normalization |
GatedFeatureFusion |
Multi-source feature combination |
Integration Point: Algorithm Matchmaker โ generates two recommendations:
- KerasFactory Neural Network โ
BaseFeedForwardModelwith adaptive scoring - KerasFactory Advanced (GRN + Attention) โ Custom architecture with
GatedResidualNetworkandDistributionTransformLayer
KerasFactory Documentation ยท GitHub
MLPotion โ Managed Training Pipelines
Type-safe, reproducible training pipelines for Keras, TensorFlow, and PyTorch.
| Feature | Description |
|---|---|
ModelTrainingConfig |
Type-safe configuration โ no missing parameters |
ModelTrainer |
Managed training with history tracking |
| Adaptive Hyperparameters | Auto-adjusts epochs and batch size based on dataset size |
| Multi-Framework | Consistent interface across Keras, TF, and PyTorch |
Integration Point: Algorithm Matchmaker โ generates a "Keras + MLPotion Pipeline" recommendation with managed training.
MLPotion Documentation ยท GitHub
End-to-End Pipeline
When all three packages are installed, the Algorithm Matchmaker surfaces the flagship recommendation: a complete KDP โ KerasFactory โ MLPotion pipeline that preprocesses, builds, and trains in a single deployable Keras model.
Ecosystem Status API
Check which ecosystem packages are installed via the REST API:
Response:
Builtin Ecosystem Recipes
4 new multi-cell recipes are automatically available in the recipe library:
| Recipe | Package | Description |
|---|---|---|
kdp |
Auto-configure Keras preprocessing layers for your data | |
kerasfactory |
Build a tabular model with production-ready Keras layers | |
mlpotion |
Managed Keras training with type-safe configuration | |
| All 3 | Complete KDP โ KerasFactory โ MLPotion workflow |
Access these from the Snips panel in the sidebar โ they appear alongside your custom and shared recipes.
Architecture
The ecosystem integration uses a graceful degradation pattern:
graph TB
subgraph Notebook["FlowyML Notebook"]
SP[SmartPrep Advisor]
AM[Algorithm Matchmaker]
RC[Recipe Library]
ES[Ecosystem Status API]
end
subgraph Adapters["Integration Layer"]
KA[KDP Adapter]
KFA[KerasFactory Adapter]
MLA[MLPotion Adapter]
BR[Builtin Recipes]
end
subgraph Ecosystem["UnicoLab Packages (optional)"]
KDP[kdp]
KF[kerasfactory]
MLP[mlpotion]
end
SP --> KA
AM --> KFA
AM --> MLA
RC --> BR
KA -.-> KDP
KFA -.-> KF
MLA -.-> MLP
ES --> KA & KFA & MLA
- Solid arrows: Always active
- Dashed arrows: Only when package is installed
- Adapters generate code snippets and recommendations โ they do not call ecosystem packages at runtime
- Detection is handled by
UnicoLabEcosystem.is_available()usingimportlib