Jetty.io
Visit ProjectManage dataset metadata with MLCommons Croissant validation/creation via Jetty.io.
Visit ProjectCategory
Tags
What is Jetty.io (MLC Bakery)?
MLC Bakery is a Python-based service for managing ML model provenance and lineage, with support for MLCommons Croissant metadata validation and creation.
How to use Jetty.io (MLC Bakery)?
To use MLC Bakery, you can either deploy it with Docker or run it locally:
Docker Deployment:
- Set up environment variables
- Start Docker containers with PostgreSQL and Typesense
- Run database migrations
Local Setup:
- Clone the repository
- Install dependencies using
uv
orpip
- Start the FastAPI application with
uvicorn
Key features of Jetty.io (MLC Bakery)?
- Dataset management with collection support
- Entity tracking and activity logging
- Provenance relationships tracking
- RESTful API endpoints for easy integration
- Croissant metadata validation
Use cases of Jetty.io (MLC Bakery)?
- Managing metadata for machine learning datasets
- Tracking model provenance and lineage
- Validating dataset metadata against MLCommons standards
- Providing API access to dataset management functionalities
FAQ from Jetty.io (MLC Bakery)?
-
What is Croissant?
Croissant is a dataset metadata format developed by MLCommons.
-
What are the system requirements?
Python 3.12+, Docker (for containerized deployment), PostgreSQL, and Typesense.
-
Is there API documentation available?
Yes, you can access Swagger UI at
http://bakery.localhost/docs
or ReDoc athttp://bakery.localhost/redoc
.
MLC Bakery
A Python-based service for managing ML model provenance and lineage, built with FastAPI and SQLAlchemy. Support for Croissant metadata validation.
Features
- Dataset management with collection support
- Entity tracking
- Activity logging
- Provenance relationships tracking
- RESTful API endpoints
Running with Docker
-
Set up Environment Variables: Create a
.env
file in the project root by copying the example:cp env.example .env
-
Start docker containers: The bakery relies on a postgres database and Typesense for search. The MCP server makes REST calls to the API server, which then calls the persistence layer.
docker compose up -d
-
Run Database Migrations: Apply the latest database schema using Alembic.
uv run
executes commands within the project's managed environment.docker compose exec db psql -U postgres -c "create DATABASE mlcbakery;" docker compose exec api alembic upgrade head
Access the bakery
By default, the API will be available on localhost.
- Swagger UI:
http://bakery.localhost/docs
- ReDoc:
http://bakery.localhost/redoc
- Streamable MCP HTTP:
http://mcp.localhost/mcp
(you may need to add this to your/etc/hosts
for local development)
Running the Server (Locally)
Prerequisites
- Python 3.12+
- uv (Python package manager)
Development steps
-
Clone the repository:
git clone git@github.com:jettyio/mlcbakery.git cd mlcbakery
-
Install Dependencies:
uv
usespyproject.toml
to manage dependencies. It will automatically create a virtual environment if one doesn't exist.curl -LsSf https://astral.sh/uv/install.sh | sh
pip install poetry uvicorn uv run poetry install --no-interaction --no-ansi --no-root --with mcp
Start the FastAPI application using uvicorn:
# Make sure your .env file is present for the DATABASE_URL
uv run uvicorn mlcbakery.main:app --reload --host 0.0.0.0 --port 8000
Running Tests
The tests are configured to run against a PostgreSQL database defined by the DATABASE_URL
environment variable. You can use the same database as your development environment or configure a separate test database in your .env
file if preferred (adjust connection string as needed).
# Ensure DATABASE_URL is set in your environment or .env file
uv run pytest