OCI Artifact for ML model & metadata
Go to file
dependabot[bot] 4198b54cce
chore(deps-dev): bump ruff from 0.12.2 to 0.12.3 (#58)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.2 to 0.12.3.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.12.2...0.12.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.12.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 07:43:50 +02:00
.github deps: bump MR deployment to 0.2.20 (#57) 2025-07-07 10:16:43 +02:00
docs chore: change links following migration from tarilabs to containers 2024-08-14 07:40:34 +02:00
e2e deps: bump MR deployment to 0.2.20 (#57) 2025-07-07 10:16:43 +02:00
omlmd core: implement TODO and relative import cleanup (#24) 2024-10-30 10:18:18 +01:00
tests core: implement TODO and relative import cleanup (#24) 2024-10-30 10:18:18 +01:00
.gitignore enable large file upload (#13) 2024-10-03 09:58:41 +02:00
CONTRIBUTING.md Create CONTRIBUTING.md 2024-10-01 18:11:34 +02:00
LICENSE Initial commit 2024-07-20 12:38:41 +02:00
Makefile py: add listener mechanism (#8) 2024-08-11 13:35:27 +02:00
README.md chore: change links following migration from tarilabs to containers 2024-08-14 07:40:34 +02:00
mkdocs.yml chore: change links following migration from tarilabs to containers 2024-08-14 07:40:34 +02:00
poetry.lock chore(deps-dev): bump ruff from 0.12.2 to 0.12.3 (#58) 2025-07-14 07:43:50 +02:00
pyproject.toml chore(deps-dev): bump ruff from 0.11.13 to 0.12.0 (#53) 2025-06-23 08:08:43 +02:00

README.md

OCI Artifact for ML model & metadata

Python License Build E2E testing PyPI - Version

Static Badge GitHub Repo stars YouTube Channel Subscribers

This project is a collection of blueprints, patterns and toolchain (in the form of python SDK and CLI) to leverage OCI Artifact and containers for ML model and metadata.

Documentation: https://containers.github.io/omlmd

GitHub repository: https://github.com/containers/omlmd
YouTube video playlist: https://www.youtube.com/watch?v=W4GwIRPXE8E&list=PLdbdefeRIj9SRbg6Hkr15GeyPH0qpk_ww
Pypi distribution: https://pypi.org/project/omlmd

Installation

[!TIP] We recommend checking out the Getting Started tutorial in the documentation; below instructions are provided for a quick overview.

In your Python environment, use:

pip install omlmd

Push

Store ML model file model.joblib and its metadata in the OCI repository at localhost:8080:

from omlmd.helpers import Helper

omlmd = Helper()
omlmd.push("localhost:8080/matteo/ml-artifact:latest", "model.joblib", name="Model Example", author="John Doe", license="Apache-2.0", accuracy=9.876543210)

Pull

Fetch everything in a single pull:

omlmd.pull(target="localhost:8080/matteo/ml-artifact:latest", outdir="tmp/b")

Or fetch only the ML model assets:

omlmd.pull(target="localhost:8080/matteo/ml-artifact:latest", outdir="tmp/b", media_types=["application/x-mlmodel"])

Custom Pull: just metadata

The features can be composed in order to expose higher lever capabilities, such as retrieving only the metadata informatio. Implementation intends to follow OCI-Artifact convention

md = omlmd.get_config(target="localhost:8080/matteo/ml-artifact:latest")
print(md)

Crawl

Client-side crawling of metadata.

Note: Server-side analogous coming soon/reference in blueprints.

crawl_result = omlmd.crawl([
    "localhost:8080/matteo/ml-artifact:v1",
    "localhost:8080/matteo/ml-artifact:v2",
    "localhost:8080/matteo/ml-artifact:v3"
])

Example query

Demonstrate integration of crawling results with querying (in this case using jQ)

Of the crawled ML OCI artifacts, which one exhibit the max accuracy?

import jq
jq.compile( "max_by(.config.customProperties.accuracy).reference" ).input_text(crawl_result).first()

To be continued...

Don't forget to checkout the documentation website for more information!