finds.dev← search

// the find

ml-tooling/opyrator

★ 3,136 · Python · MIT · updated Jun 2026

🪄 Turns your machine learning code into microservices with web API, interactive GUI, and more.

Opyrator wraps a single Pydantic-typed Python function and gives it a FastAPI HTTP endpoint plus a Streamlit UI, all from one CLI command. It's aimed at ML practitioners who want to demo or share a model without writing any web code. The alpha label is honest — several advertised features (Docker export, production deploy, Python client) are still marked WIP.

The core constraint — one input parameter, one return value, both Pydantic models — is genuinely smart: it forces clean interfaces and makes the auto-generated UI and OpenAPI spec reliable. Building on FastAPI and Streamlit rather than reinventing them means you get real OpenAPI docs and a functional interactive UI for free. The zip export that bundles source and can be pip-installed is a nice touch for sharing experiments without Docker overhead. The playground Docker image lets you spin up all the examples locally in one command, which is useful for evaluating before committing.

Half the headline features — Docker export, pex export, Python client, production deploy — are WIP stubs with no timeline. The single-function constraint that makes the UI work also means anything with stateful setup (model loading, connection pooling) has to be handled with module-level globals, which is ugly and doesn't compose. Streamlit's execution model re-runs the entire script on every interaction, so heavy models get reloaded unless you use `@st.cache_resource` yourself — Opyrator doesn't handle this for you. The repo hasn't shipped a tagged release in years and the issue tracker shows no active maintainer responses, so adopting this for anything beyond local demos is a real risk.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →