Chatbot that generates ML pipelines from casual conversation
Otto lets beginners describe what they want to predict in plain English, then builds the scikit-learn pipeline and spits out runnable Python code.

What it does
Otto is a browser-based chat app that guides novices through end-to-end machine learning. You type a goal like “I want to label flower species by petal length” or “detect fraudulent credit card activity,” and it infers the task (regression, classification, or NLP), picks a dataset or accepts your own, recommends a model and preprocessors, and finally generates annotated Python code you can copy or open in Google Colab.
The interesting bit
The heavy lifting isn’t a bespoke LLM—it’s a stack of three small Wit.ai NLP apps. One classifies your intent from 300 training phrases, another does fuzzy string matching to pick between KNN and Poisson regression based on how you describe your data, and a third even translates natural language into neural network architecture changes. It’s essentially a very clever layer of conversational glue over scikit-learn, Keras, and Wit.ai.
Key highlights
- Task inference from casual descriptions: “forecast stock prices” → regression, “summarize an article” → NLP, powered by a Wit app trained on 300 real-world objective statements
- Model recommendation via fuzzy phrase matching: 15+ phrases per model (e.g., “just a few columns” → KNN, “crime rates” → Poisson), with neural network or linear fit as fallback defaults
- Interactive neural network builder: preconfigured with Glorot-initialized layers, but tinkerable layer-by-layer; includes a dedicated Wit model for redesign-by-chat
- Sample dataset auto-matching: keyword-parses your subject against a built-in database to prefill the entire pipeline
- Export to clipboard or Google Colab: generated code includes your preprocessors, model, and annotations
Caveats
- Limited model depth: only 7 models supported (KNN, neural network, linear, Poisson, ordinal, sentiment, entity recognition); logistic regression, SVMs, and decision trees are listed as future work
- Wit.ai dependency: the NLP backend is a managed Facebook service, so offline use or long-term stability isn’t guaranteed
- No training execution: Otto generates and visualizes, but doesn’t actually train models in the browser—you run the code elsewhere
Verdict
Grab it if you’re teaching ML to beginners or want a polished demo of how conversational interfaces can abstract scikit-learn pipelines. Skip it if you need production AutoML, custom architectures, or anything beyond the supported seven-model roster.