MLStudio Documentation
A guided, web-based machine learning workspace for creating projects, managing experiments, building visual workflows, and applying industry-focused scenarios — all from a single Flask application
On This Page
Overview
What MLStudio is and who it is for.
Core Capabilities
Projects, experiments, workflows, data, and industry guidance.
Quick Start
Launcher commands, first-run behavior, and default URL.
Architecture
Application-factory Flask, routes, services, models, templates.
User Guide
Getting started, core concepts, and data management.
Workflow Authoring
Node types, templates, and advanced pipelines.
Industry Guides
Vertical scenarios and switchable industry modes.
API Surface
Real REST endpoints under the API layer.
Configuration
Environment settings and configuration sources.
Dependencies
Actual Python packages from requirements.txt.
Developer Guide
Extending routes, services, and workflows.
Troubleshooting
Startup, environment, and database issues.
Overview
MLStudio (technical package name Beep.Python.MLStudio) is a Flask-based web application that makes machine learning project work more repeatable and accessible. It combines project management, experiment orchestration, visual workflow templates, dataset handling, and industry-focused guidance into a single browser UI, and it connects into the wider Beep platform ecosystem.
The platform is designed for two main audiences:
- Users who want to create and manage ML projects through guided UI flows — projects, datasets, experiments, and workflows.
- Developers who need to extend routes, services, workflows, integrations, and templates.
MLStudio ships with in-app help surfaces (documentation hub, tutorials, and FAQ) served directly from the running application, so guidance stays close to the tasks it describes.
Core Capabilities
Project & Experiment Management
Create and organize ML projects, track experiments, and compare runs. A project is the working container that groups datasets, notebooks, experiments, workflow definitions, and outputs by problem or use case.
Visual Workflow Authoring
Build ML pipelines as visual node graphs, reuse predefined workflow templates for common scenarios, link workflow steps to project operations, and evolve workflows through versions.
Data & Model Operations
Upload and preview datasets, work with training inputs and evaluation outputs, and browse or download datasets via the built-in Kaggle integration.
Industry Guidance
Switchable industry modes bring specialized terminology and scenario-driven onboarding, with seeded example scenarios and vertical-oriented templates.
Platform Integration
Optional coordination with Beep.Python.Host.Admin for environment management, ML server integration surfaces for model-serving scenarios, and community publishing flows.
AI-Assisted Features
Built-in clients for OpenAI-compatible APIs, Anthropic Claude models, and local Ollama inference support AI/MLOps-native features within the app.
In-App Help
Documentation, tutorials, and FAQ served from the running app at /documentation, /tutorials, and /faq.
Scheduling & Triggers
Cron-based workflow scheduling (APScheduler) and file-watch triggers (Watchdog) support repeatable, event-driven runs.
Quick Start
The recommended path is a single command. You do not need to manually create environments, install packages, or initialize the database — the launcher handles first-run setup for you. Only switch to direct execution once the environment and configuration are already stable.
Windows
run.batLinux or macOS
./run.shCross-Platform Python Launcher
python run_mlstudio.pyOn macOS you can also double-click run.command from Finder.
First-Run Behavior
The launcher performs setup automatically, in order:
- Check Python compatibility (Python 3.8+)
- Create the working virtual environment (
.venv) when missing - Install Python dependencies from
requirements.txt - Set up the local bootstrap Python runtime when required
- Create or repair the environment configuration (
.env) - Create required working directories (for example
data/andprojects/) - Initialize the database (
mlstudio.db) - Start the Flask app and open it in a browser
The default local application URL is http://127.0.0.1:5001.
Architecture
MLStudio uses an application-factory-based Flask architecture. Route blueprints, service modules, model definitions, template views, and static assets are separated by responsibility, so behavior is added through targeted modules rather than large monolithic handlers.
Application Factory
app/__init__.py creates and wires the Flask app, its extensions, and blueprint registration.
Route Blueprints
app/routes holds blueprint packages for UI and API behavior, isolating features such as projects, experiments, and documentation.
Service Layer
app/services concentrates business rules, content handling, workflow logic, and integration helpers.
Models
app/models contains SQLAlchemy models and persistence objects.
Templates
templates renders dashboard, documentation, workflows, experiments, setup, admin, and related views.
Static Assets
static holds CSS, JavaScript, fonts, and images.
Registered route groups include dashboard, projects, experiments, models, settings, industry, documentation, tutorials, faq, competitions, profile, admin, auth, setup, ml_server, and the versioned API blueprint mounted under /api/v1.
Source Layout
| Path | Purpose |
|---|---|
app/ | Main Flask application package |
app/routes/ | Route blueprints and page/API entry points |
app/routes/api/ | REST API route modules (mounted at /api/v1) |
app/services/ | Service-layer logic, content handling, and integration helpers |
app/models/ | SQLAlchemy data models |
templates/ | Jinja HTML templates |
static/ | CSS, JavaScript, fonts, and images |
scripts/ | Operational and seeding scripts (for example scenario seeds) |
workflow_templates/ | Reusable workflow definitions |
config/mlstudio_config.json | Application configuration source |
User Guide
The fastest path is to run a launcher script, let the app finish first-run setup, then create a project that acts as the container for your datasets, experiments, notebooks, and workflows.
Creating Your First Project
- Open Projects in the navigation menu.
- Click Create New Project.
- Enter a project name and description.
- Select your preferred ML framework (for example TensorFlow, PyTorch, or Scikit-learn).
- Click Create to initialize the project.
Understanding the Interface
- Dashboard: overview of your projects and recent activity
- Projects: manage and organize your ML projects
- Experiments: run and compare different model configurations
- Workflows: visual workflow builder for pipelines
- Industry: scenario and vertical-specific guidance
- Documentation: in-app user, API, workflow, and developer references
Core Concepts
- Projects are the primary working container — keep related datasets, notebooks, experiments, and workflow definitions grouped by problem or use case.
- Experiments represent a single run with specific parameters, data, and configuration, letting you test hyperparameters, compare performance, track metrics, and reproduce results.
- Workflows are visual, repeatable pipelines that standardize data preparation, model steps, evaluation, and scenario-specific logic.
Data Management
MLStudio supports common data formats: CSV, JSON, Parquet, Excel (.xlsx, .xls), and image formats such as JPG and PNG. To add data, open a project, click Upload Dataset, select the file, configure schema and preprocessing options, then upload. Validate datasets early and keep naming consistent so the right workflow or experiment can use them.
Running Experiments
- Open a project and click New Experiment.
- Select a dataset and choose a model algorithm.
- Configure hyperparameters and click Run.
- Monitor loss curves, accuracy metrics, progress, resource usage, and experiment-specific logs and output artifacts.
Workflow Authoring & Templates
Workflows are visual representations of ML pipelines, made of nodes connected by edges. To build one: open a project, click New Workflow, add nodes from the node library, connect output ports to input ports, configure each node's parameters, then save and run.
Node Types
- Data Nodes: load data from files, databases, or APIs
- Preprocessing Nodes: clean, transform, and prepare data
- Model Nodes: train machine learning models
- Evaluation Nodes: assess model performance
- Output Nodes: save results and deploy models
Workflow Templates
Pre-built templates cover common use cases: classification pipelines, regression workflows, time-series forecasting, image classification, and industry-specific templates. Reusable definitions live under workflow_templates/.
Advanced Workflows
- Conditional branching
- Loops and iterations
- Custom Python nodes
- Parallel processing
- External API integration
Industry Guides & Scenarios
MLStudio provides industry modes that bring specialized workflows and terminology. Switch to an industry mode to access its templates and scenarios.
Petroleum & Oil & Gas
Reservoir characterization and prediction, production optimization, equipment failure prediction, and supply chain optimization.
Healthcare
Medical image analysis, patient outcome prediction, drug discovery workflows, and clinical decision support.
Finance
Fraud detection, credit risk assessment, algorithmic trading, and market prediction.
Manufacturing
Predictive maintenance, quality control, supply chain optimization, and production planning.
Additional vertical-oriented scenario seeds (for example marine scenarios) are provided as seeding scripts so example content can be loaded and adapted to your own projects.
API Surface
REST endpoints are served by the API blueprint mounted under /api/v1 (dataset routes are also exposed under /api to match the frontend). The exact route set is defined by the modules registered in the API package. Real endpoint areas include:
| Area | Module |
|---|---|
| Health checks | health |
| Projects | projects |
| Experiments | experiments |
| Datasets & files | datasets, files |
| Workflows, runs & versions | workflows, workflow_runs, workflow_versions, workflow_templates |
| Project templates & snapshots | project_templates, project_snapshots |
| Environments | environments |
| Settings & credentials | settings, credentials |
| Industry modules | industry_modules |
| Database | database |
| ML server integration | ml_server |
| Community publishing | community |
| Webhooks | webhooks |
Example: Projects
List projects
GET /api/v1/projectsReturns a JSON payload of the project resources for the current context:
{
"success": true,
"projects": [
{
"id": 1,
"name": "My Project",
"description": "Project description",
"framework": "tensorflow",
"created_at": "2025-01-01T00:00:00Z"
}
]
}Create a project
POST /api/v1/projects{
"name": "New Project",
"description": "Project description",
"framework": "pytorch"
}Authentication & Errors
Authentication requirements depend on the deployed route set and configuration. Protected routes accept a bearer token or session-backed credentials. Responses generally follow a consistent JSON shape (success, data, optional message), and standard HTTP status codes apply — 400 bad request, 401 unauthorized, 403 forbidden, 404 not found, and 500 internal server error. Consult the in-app API reference at /documentation/api-reference for live guidance.
Configuration
The launcher creates a local environment configuration when needed. Typical settings include:
SECRET_KEY=change-me
DEBUG=true
HOST=127.0.0.1
PORT=5001
DATABASE_URL=sqlite:///mlstudio.db
MAX_UPLOAD_SIZE=100
UPLOAD_FOLDER=data
PROJECTS_FOLDER=projectsUse config/mlstudio_config.json and the settings guide as the authoritative references for supported settings and application behavior. To run on a different port, change PORT in the .env file (for example to 5002).
Dependencies
MLStudio targets Python 3.8+ and is licensed under the MIT License. The following packages are declared in requirements.txt:
| Package(s) | Purpose |
|---|---|
flask, flask-cors | Core web framework and CORS support |
flask-sqlalchemy, flask-migrate | ORM and Alembic-based database migrations |
flask-restx, flask-socketio, python-socketio, simple-websocket | REST API helpers and real-time WebSocket updates |
flask-login, flask-limiter | Session-based authentication and rate limiting |
PyJWT, flask-jwt-extended, cryptography | JWT handling and encryption for sensitive settings |
kaggle | Kaggle dataset browsing and downloading |
apscheduler, watchdog | Cron-based workflow scheduling and file-watch triggers |
requests, httpx | HTTP clients for API communication |
boto3, psycopg2-binary, pymysql | AWS S3/STS, PostgreSQL, and MySQL connectivity |
pandas, numpy | Data handling |
scikit-learn, scipy, nltk, beautifulsoup4 | Built-in workflow node runtime (ML, scientific, NLP, parsing) |
dask[dataframe] | Parallel/larger-than-memory dataframe processing |
plotly, kaleido | Interactive visualizations and chart export |
openpyxl, pyyaml | Excel and JSON/YAML handling |
jupyter-client, ipykernel | Notebook code execution |
openai, anthropic, ollama | AI/LLM integration (OpenAI-compatible, Claude, local Ollama) |
psutil, python-dotenv, jinja2, markupsafe | System utilities, environment files, and templating |
Heavier or optional integrations — such as MLflow, ChromaDB, Pinecone, sentence-transformers, TensorFlow, and PyTorch — are intentionally kept out of the default bootstrap and are installed on demand into project-specific virtual environments (via Beep.Python.Host.Admin) or by workflow/node package management, so the base app avoids pulling large transitive stacks.
Developer Guide
Use the standard launcher first so you work inside the same startup path as normal users. Only switch to direct execution once the environment and configuration are stable. Useful entry points include run_mlstudio.py, run.py, wsgi.py, and init_db.py.
How to Extend the Application
- Find the nearest existing route package for the feature area, and put request handling there.
- Put business rules in services, not in view functions.
- Add or update models only when the data contract changes.
- Keep templates focused on rendering, not business logic.
- Adjust API routes separately from browser templates when the contract differs.
- Update in-app help and README content when behavior changes.
Extension Points
- Documentation / tutorials / FAQ: route packages under
app/routes/documentation,app/routes/tutorials, andapp/routes/faq, backed by the help content service. - Workflows: reusable definitions under
workflow_templates/, seeding scripts underscripts/, and API-side handling in the workflow route modules. - Integrations: the app already contains surfaces for Host Admin, ML server, community publishing, workflow APIs, and webhooks — check whether an existing route group or service already owns a concern before adding a new one.
Troubleshooting
Application Does Not Start
- Verify Python 3.8+ is installed and on your PATH.
- Run the standard launcher rather than invoking internal modules directly.
- Confirm the bootstrap/embedded Python setup completed on first run.
- Review
startup_output.txtandstartup_error.txtwhen present.
Environment or Dependency Problems
- Re-run the launcher so the environment setup path can self-repair.
- Verify
requirements.txtis present and readable. - If first-run bootstrap fails, run
setup_embedded_python.bat(Windows) or./setup_embedded_python.sh(Linux/macOS). The bootstrap runtime creates.venv; MLStudio itself runs from.venvafterward.
Port Already in Use
- Change
PORTin.envto a free port (for example5002), or stop the process currently using port 5001.
Database Issues
- Review
init_db.pyandcheck_db.py. - Confirm the configured
DATABASE_URLis valid. - Use the generated setup and debug output files to trace startup behavior.
Help or Documentation Looks Incomplete
- Check the documentation routes under
/documentation. - Verify help content exists and template files under
templates/documentation,templates/tutorials, andtemplates/faqmatch the expected route behavior.