diff --git a/README.md b/README.md index 0d1ed677..a38b06b5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,52 @@ +### Change log [2025-12-31 07:49:10] +1. New item created: `verify_schema` (version: `1.0.0`) + +### Change log [2025-12-31 07:49:05] +1. Item Updated: `agent_deployer` (from version: `1.0.0` to `1.0.0`) +2. Item Updated: `histogram_data_drift` (from version: `1.0.0` to `1.0.0`) +3. Item Updated: `openai_proxy_app` (from version: `1.0.0` to `1.0.0`) +4. New item created: `vllm_module` (version: `1.0.0`) +5. Item Updated: `count_events` (from version: `1.0.0` to `1.0.0`) +6. Item Updated: `evidently_iris` (from version: `1.0.0` to `1.0.0`) + +### Change log [2025-12-31 07:48:55] +1. Item Updated: `test_classifier` (from version: `1.1.0` to `1.1.0`) +2. Item Updated: `sklearn_classifier` (from version: `1.2.0` to `1.2.0`) +3. Item Updated: `model_server_tester` (from version: `1.1.0` to `1.1.0`) +4. Item Updated: `azureml_serving` (from version: `1.1.0` to `1.1.0`) +5. Item Updated: `describe_dask` (from version: `1.2.0` to `1.2.0`) +6. Item Updated: `batch_inference` (from version: `1.8.0` to `1.8.0`) +7. Item Updated: `v2_model_server` (from version: `1.2.0` to `1.2.0`) +8. Item Updated: `gen_class_data` (from version: `1.3.0` to `1.3.0`) +9. Item Updated: `send_email` (from version: `1.2.0` to `1.2.0`) +10. Item Updated: `tf2_serving` (from version: `1.1.0` to `1.1.0`) +11. Item Updated: `aggregate` (from version: `1.4.0` to `1.4.0`) +12. Item Updated: `open_archive` (from version: `1.2.0` to `1.2.0`) +13. Item Updated: `describe` (from version: `1.4.0` to `1.4.0`) +14. Item Updated: `v2_model_tester` (from version: `1.1.0` to `1.1.0`) +15. Item Updated: `text_to_audio_generator` (from version: `1.3.0` to `1.3.0`) +16. Item Updated: `pii_recognizer` (from version: `0.4.0` to `0.4.0`) +17. Item Updated: `github_utils` (from version: `1.1.0` to `1.1.0`) +18. Item Updated: `sklearn_classifier_dask` (from version: `1.1.1` to `1.1.1`) +19. Item Updated: `azureml_utils` (from version: `1.4.0` to `1.4.0`) +20. Item Updated: `question_answering` (from version: `0.5.0` to `0.5.0`) +21. Item Updated: `structured_data_generator` (from version: `1.6.0` to `1.6.0`) +22. Item Updated: `arc_to_parquet` (from version: `1.5.0` to `1.5.0`) +23. Item Updated: `silero_vad` (from version: `1.4.0` to `1.4.0`) +24. Item Updated: `load_dataset` (from version: `1.2.0` to `1.2.0`) +25. Item Updated: `auto_trainer` (from version: `1.8.0` to `1.8.0`) +26. Item Updated: `feature_selection` (from version: `1.6.0` to `1.6.0`) +27. Item Updated: `translate` (from version: `0.3.0` to `0.3.0`) +28. Item Updated: `describe_spark` (from version: `1.1.0` to `1.1.0`) +29. Item Updated: `pyannote_audio` (from version: `1.3.0` to `1.3.0`) +30. Item Updated: `onnx_utils` (from version: `1.3.0` to `1.3.0`) +31. Item Updated: `batch_inference_v2` (from version: `2.6.0` to `2.6.0`) +32. Item Updated: `transcribe` (from version: `1.2.0` to `1.2.0`) +33. Item Updated: `model_server` (from version: `1.2.0` to `1.2.0`) +34. Item Updated: `mlflow_utils` (from version: `1.1.0` to `1.1.0`) +35. Item Updated: `noise_reduction` (from version: `1.1.0` to `1.1.0`) +36. Item Updated: `hugging_face_serving` (from version: `1.1.0` to `1.1.0`) + ### Change log [2025-12-28 14:17:26] 1. Item Updated: `agent_deployer` (from version: `1.0.0` to `1.0.0`) 2. Item Updated: `histogram_data_drift` (from version: `1.0.0` to `1.0.0`) diff --git a/catalog.json b/catalog.json index 19d629ff..dd5cc72d 100644 --- a/catalog.json +++ b/catalog.json @@ -1 +1 @@ -{"functions": {"development": {"tf2_serving": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}}, "load_dataset": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "model_server_tester": {"latest": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "feature_selection": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}}, "aggregate": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "describe": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "describe_spark": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "gen_class_data": {"latest": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}}, "open_archive": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "send_email": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "v2_model_tester": {"latest": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "arc_to_parquet": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}, "1.5.0": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}}, "github_utils": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "v2_model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "onnx_utils": {"latest": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}}, "azureml_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}, "1.4.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}}, "auto_trainer": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}}, "azureml_serving": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}}, "batch_inference": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}}, "hugging_face_serving": {"latest": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}, "transcribe": {"latest": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}}, "question_answering": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}, "0.5.0": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}}, "pii_recognizer": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}, "0.4.0": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}}, "batch_inference_v2": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}, "2.6.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}}, "translate": {"latest": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}, "0.3.0": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}}, "structured_data_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}}, "text_to_audio_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}}, "silero_vad": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}}, "pyannote_audio": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}}, "noise_reduction": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}, "mlflow_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}}}, "master": {"tf2_serving": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}}, "load_dataset": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "model_server_tester": {"latest": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "feature_selection": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}}, "aggregate": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "describe": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "describe_spark": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "gen_class_data": {"latest": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}}, "open_archive": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "send_email": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "v2_model_tester": {"latest": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "arc_to_parquet": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}, "1.5.0": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}}, "github_utils": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "v2_model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "onnx_utils": {"latest": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}}, "azureml_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}, "1.4.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}}, "auto_trainer": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}}, "azureml_serving": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}}, "batch_inference": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}}, "hugging_face_serving": {"latest": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}, "question_answering": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}, "0.5.0": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}}, "transcribe": {"latest": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}}, "pii_recognizer": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}, "0.4.0": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}}, "batch_inference_v2": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}, "2.6.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}}, "translate": {"latest": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}, "0.3.0": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}}, "structured_data_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}}, "text_to_audio_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}}, "silero_vad": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}}, "pyannote_audio": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}}, "mlflow_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}}, "noise_reduction": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}}}, "modules": {"development": {"count_events": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "histogram_data_drift": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}}, "openai_proxy_app": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}}, "evidently_iris": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}}, "agent_deployer": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}}, "master": {"count_events": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "histogram_data_drift": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}}, "openai_proxy_app": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}}, "evidently_iris": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}}, "agent_deployer": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "vllm_module": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0"}}}}, "steps": {"development": {}, "master": {}}} \ No newline at end of file +{"functions": {"development": {"tf2_serving": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}}, "load_dataset": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "model_server_tester": {"latest": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "feature_selection": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}}, "aggregate": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "describe": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "describe_spark": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "gen_class_data": {"latest": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}}, "open_archive": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "send_email": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "v2_model_tester": {"latest": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "arc_to_parquet": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}, "1.5.0": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}}, "github_utils": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "v2_model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "onnx_utils": {"latest": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}}, "azureml_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}, "1.4.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}}, "auto_trainer": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}}, "azureml_serving": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}}, "batch_inference": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}}, "hugging_face_serving": {"latest": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}, "transcribe": {"latest": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}}, "question_answering": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}, "0.5.0": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}}, "pii_recognizer": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}, "0.4.0": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}}, "batch_inference_v2": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}, "2.6.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}}, "translate": {"latest": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}, "0.3.0": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}}, "structured_data_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}}, "text_to_audio_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}}, "silero_vad": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}}, "pyannote_audio": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}}, "noise_reduction": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}, "mlflow_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}}}, "master": {"tf2_serving": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "tf2 image classification server", "doc": "", "example": "tf2_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "tf2-serving", "platformVersion": "3.5.0", "spec": {"filename": "tf2_serving.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": ["requests", "pillow", "tensorflow>=2.1"]}, "url": "", "version": "1.1.0"}}, "load_dataset": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "load a toy dataset from scikit-learn", "doc": "README.md", "example": "load_dataset.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.6.0", "name": "load-dataset", "platformVersion": "3.5.5", "spec": {"filename": "load_dataset.py", "handler": "load_dataset", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "model_server_tester": {"latest": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["monitoring", "model-serving"], "description": "test model servers", "doc": "", "example": "model_server_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "model-server-tester", "platformVersion": "3.5.0", "spec": {"filename": "model_server_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "feature_selection": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-preparation", "machine-learning"], "description": "Select features through multiple Statistical and Model filters", "doc": "", "example": "feature_selection.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc40", "name": "feature-selection", "platformVersion": "3.6.0", "spec": {"filename": "feature_selection.py", "handler": "feature_selection", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.6.0"}}, "aggregate": {"latest": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-preparation"], "description": "Rolling aggregation over Metrics and Lables according to specifications", "doc": "", "example": "aggregate.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "aggregate", "platformVersion": "3.5.4", "spec": {"filename": "aggregate.py", "handler": "aggregate", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "describe": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "describe and visualizes dataset stats", "doc": "", "example": "describe.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "describe", "platformVersion": "3.5.3", "spec": {"filename": "describe.py", "handler": "analyze", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.4.0"}}, "model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "model-server", "platformVersion": "3.5.0", "spec": {"filename": "model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "nuclio:serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "describe_spark": {"latest": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["data-analysis"], "description": "", "doc": "", "example": "describe_spark.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "describe-spark", "platformVersion": "3.5.0", "spec": {"filename": "describe_spark.py", "handler": "describe_spark", "image": "iguazio/shell:3.0_b5565_20201026062233_wsdf", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "gen_class_data": {"latest": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation"], "description": "Create a binary classification sample dataset and save.", "doc": "", "example": "gen_class_data.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "gen_class_data", "platformVersion": "3.5.3", "spec": {"filename": "gen_class_data.py", "handler": "gen_class_data", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.3.0"}}, "open_archive": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Open a file/object archive into a target directory", "doc": "", "example": "open_archive.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0-rc50", "name": "open-archive", "platformVersion": "3.5.0", "spec": {"filename": "open_archive.py", "handler": "open_archive", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "send_email": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["utils"], "description": "Send Email messages through SMTP server", "doc": "", "example": "send_email.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.4.1", "name": "send-email", "platformVersion": "3.5.3", "spec": {"filename": "send_email.py", "handler": "send_email", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.2.0"}}, "v2_model_tester": {"latest": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-testing", "machine-learning"], "description": "test v2 model servers", "doc": "", "example": "v2_model_tester.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-tester", "platformVersion": "3.5.0", "spec": {"filename": "v2_model_tester.py", "handler": "model_server_tester", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "arc_to_parquet": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}, "1.5.0": {"apiVersion": "v1", "categories": ["utils"], "description": "retrieve remote archive, open and save as parquet", "doc": "", "example": "arc_to_parquet.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "arc-to-parquet", "platformVersion": "3.5.4", "spec": {"filename": "arc_to_parquet.py", "handler": "arc_to_parquet", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.5.0"}}, "github_utils": {"latest": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["utils"], "description": "add comments to github pull request", "doc": "", "example": "github_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "github-utils", "platformVersion": "3.5.0", "spec": {"filename": "github_utils.py", "handler": "run_summary_comment", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.1.0"}}, "v2_model_server": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["model-serving", "machine-learning"], "description": "generic sklearn model server", "doc": "", "example": "v2_model_server.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio", "framework": "sklearn"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "v2-model-server", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "ClassifierModel"}, "filename": "v2_model_server.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": []}, "url": "", "version": "1.2.0"}}, "onnx_utils": {"latest": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["utils", "deep-learning"], "description": "ONNX intigration in MLRun, some utils functions for the ONNX framework, optimizing and converting models from different framework to ONNX using MLRun.", "doc": "", "example": "onnx_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.2", "name": "onnx_utils", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "with_mlrun": false}}, "filename": "onnx_utils.py", "handler": "to_onnx", "image": "mlrun/mlrun", "kind": "job", "requirements": ["tqdm~=4.67.1", "tensorflow~=2.19.0", "tf_keras~=2.19.0", "torch~=2.6.0", "torchvision~=0.21.0", "onnx~=1.17.0", "onnxruntime~=1.19.2", "onnxoptimizer~=0.3.13", "onnxmltools~=1.13.0", "tf2onnx~=1.16.1", "plotly~=5.23"]}, "url": "", "version": "1.3.0"}}, "azureml_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}, "1.4.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Azure AutoML integration in MLRun, including utils functions for training models on Azure AutoML platfrom.", "doc": "", "example": "azureml_utils.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "azureml_utils", "platformVersion": "3.5.3", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": true, "commands": ["apt-get update && apt-get install -y --no-install-recommends git", "apt install -y liblttng-ust0"], "with_mlrun": true}}, "filename": "azureml_utils.py", "handler": "train", "image": "python:3.9-bullseye", "kind": "job", "requirements": ["azureml-core==1.54.0.post1", "azureml-train-automl-client==1.54.0.post1", "plotly~=5.23"]}, "url": "", "version": "1.4.0", "test_valid": true}}, "auto_trainer": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-training"], "description": "Automatic train, evaluate and predict functions for the ML frameworks - Scikit-Learn, XGBoost and LightGBM.", "doc": "", "example": "auto_trainer.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "auto_trainer", "platformVersion": "3.5.0", "spec": {"filename": "auto_trainer.py", "handler": "train", "image": "mlrun/mlrun", "kind": "job", "requirements": []}, "url": "", "version": "1.8.0"}}, "azureml_serving": {"latest": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["machine-learning", "model-serving"], "description": "AzureML serving function", "doc": "", "example": "azureml_serving.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "azureml_serving", "platformVersion": "3.5.0", "spec": {"customFields": {"default_class": "mlrun.frameworks.sklearn.PickleModelServer"}, "filename": "azureml_serving.py", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["azureml-automl-runtime~=1.38.1"]}, "url": "", "version": "1.1.0"}}, "batch_inference": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}, "1.8.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference.ipynb", "generationDate": "2022-08-28:17-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "batch_inference", "platformVersion": "3.5.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference.py", "handler": "infer", "image": "mlrun/ml-models", "kind": "job", "requirements": null}, "url": "", "version": "1.8.0"}}, "hugging_face_serving": {"latest": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["genai", "model-serving"], "description": "Generic Hugging Face model server.", "doc": "", "example": "hugging_face_serving.ipynb", "generationDate": "2022-09-05:17-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.1.0", "name": "hugging_face_serving", "platformVersion": "", "spec": {"customFields": {"default_class": "HuggingFaceModelServer"}, "filename": "hugging_face_serving.py", "handler": "handler", "image": "mlrun/ml-models", "kind": "serving", "requirements": ["transformers==4.21.3", "tensorflow==2.9.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}, "question_answering": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}, "0.5.0": {"apiVersion": "v1", "categories": ["genai"], "description": "GenAI approach of question answering on a given data", "doc": "", "example": "question_answering.ipynb", "generationDate": "2023-08-07:11-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "question_answering", "platformVersion": "3.5.0", "spec": {"filename": "question_answering.py", "handler": "answer_questions", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "torch", "tqdm"]}, "url": "", "version": "0.5.0"}}, "transcribe": {"latest": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}, "1.2.0": {"apiVersion": "v1", "categories": ["audio", "genai"], "description": "Transcribe audio files into text files", "doc": "", "example": "transcribe.ipynb", "generationDate": "2023-07-13:11-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "transcribe", "platformVersion": "3.5.3", "spec": {"filename": "transcribe.py", "handler": "transcribe", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "tqdm", "torchaudio", "torch", "accelerate"]}, "url": "", "version": "1.2.0"}}, "pii_recognizer": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}, "0.4.0": {"apiVersion": "v1", "categories": ["data-preparation", "NLP"], "description": "This function is used to recognize PII in a directory of text files", "doc": "", "example": "pii_recognizer.ipynb", "generationDate": "2023-08-15:10-24", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pii-recognizer", "platformVersion": "3.5.3", "spec": {"filename": "pii_recognizer.py", "handler": "recognize_pii", "image": "mlrun/mlrun", "kind": "job", "requirements": ["nltk", "pandas", "presidio-anonymizer", "presidio-analyzer", "torch", "flair@git+https://github.com/flairNLP/flair.git@d4ed67bf663e4066517f00397412510d90043653", "st-annotated-text", "https://huggingface.co/beki/en_spacy_pii_distilbert/resolve/main/en_spacy_pii_distilbert-any-py3-none-any.whl"]}, "url": "", "version": "0.4.0", "test_valid": false}}, "batch_inference_v2": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}, "2.6.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Batch inference (also knows as prediction) for the common ML frameworks (SciKit-Learn, XGBoost and LightGBM) while performing data drift analysis.", "doc": "", "example": "batch_inference_v2.ipynb", "generationDate": "2023-08-07:12-25", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0-rc51", "name": "batch_inference_v2", "platformVersion": "3.6.0", "spec": {"extra_spec": {"allow_empty_resources": true, "build": {"auto_build": false, "with_mlrun": false}}, "filename": "batch_inference_v2.py", "handler": "infer", "image": "mlrun/mlrun", "kind": "job", "requirements": null}, "url": "", "version": "2.6.0"}}, "translate": {"latest": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}, "0.3.0": {"apiVersion": "v1", "categories": ["genai", "NLP"], "description": "Translate text files from one language to another", "doc": "", "example": "translate.ipynb", "generationDate": "2023-12-05:17-20", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.10.0-rc41", "name": "translate", "platformVersion": "3.5.3", "spec": {"filename": "translate.py", "handler": "translate", "image": "mlrun/mlrun", "kind": "job", "requirements": ["transformers", "sentencepiece", "torch>=2.6", "tqdm"]}, "url": "", "version": "0.3.0", "test_valid": true}}, "structured_data_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}, "1.6.0": {"apiVersion": "v1", "categories": ["data-generation", "genai"], "description": "GenAI approach of generating structured data according to a given schema", "doc": "", "example": "structured_data_generator.ipynb", "generationDate": "2023-12-14:10-50", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "structured_data_generator", "platformVersion": "3.5.5", "spec": {"filename": "structured_data_generator.py", "handler": "generate_data", "image": "mlrun/mlrun", "kind": "job", "requirements": ["langchain", "tqdm"]}, "url": "", "version": "1.6.0"}}, "text_to_audio_generator": {"latest": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}, "1.3.0": {"apiVersion": "v1", "categories": ["data-generation", "audio"], "description": "Generate audio file from text using different speakers", "doc": "", "example": "text_to_audio_generator.ipynb", "generationDate": "2023-12-03:15-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.1", "name": "text_to_audio_generator", "platformVersion": "3.5.3", "spec": {"filename": "text_to_audio_generator.py", "handler": "generate_multi_speakers_audio", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torchaudio", "pydub"]}, "url": "", "version": "1.3.0", "test_valid": false}}, "silero_vad": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}, "1.4.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "Silero VAD (Voice Activity Detection) functions.", "doc": "", "example": "silero_vad.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "silero_vad", "platformVersion": "3.5.3", "spec": {"filename": "silero_vad.py", "handler": "detect_voice", "image": "mlrun/mlrun", "kind": "job", "requirements": ["torch", "torchaudio", "tqdm", "onnxruntime"]}, "url": "", "version": "1.4.0"}}, "pyannote_audio": {"latest": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}, "1.3.0": {"apiVersion": "v1", "categories": ["deep-learning", "audio"], "description": "pyannote's speech diarization of audio files", "doc": "", "example": "pyannote_audio.ipynb", "generationDate": "2023-12-03:14-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.7.0", "name": "pyannote-audio", "platformVersion": "3.5.3", "spec": {"filename": "pyannote_audio.py", "handler": "diarize", "image": "mlrun/mlrun-gpu", "kind": "job", "requirements": ["pyannote.audio", "pyannote.core", "torchaudio", "tqdm"]}, "url": "", "version": "1.3.0"}}, "mlflow_utils": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}, "1.1.0": {"apiVersion": "v1", "categories": ["model-serving", "utils"], "description": "Mlflow model server, and additional utils.", "doc": "", "example": "mlflow_utils.ipynb", "generationDate": "2024-05-23:12-00", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "marketplaceType": "", "mlrunVersion": "1.8.0", "name": "mlflow_utils", "platformVersion": "", "spec": {"customFields": {"default_class": "MLFlowModelServer"}, "filename": "mlflow_utils.py", "handler": "handler", "image": "mlrun/mlrun", "kind": "serving", "requirements": ["mlflow~=2.22", "lightgbm", "xgboost"]}, "url": "", "version": "1.1.0"}}, "noise_reduction": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}, "1.1.0": {"apiVersion": "v1", "categories": ["data-preparation", "audio"], "description": "Reduce noise from audio files", "doc": "", "example": "noise_reduction.ipynb", "generationDate": "2024-03-04:17-30", "hidden": false, "icon": "", "labels": {"author": "Iguazio"}, "maintainers": [], "mlrunVersion": "1.7.0", "name": "noise-reduction", "platformVersion": "3.5.3", "spec": {"filename": "noise_reduction.py", "handler": "reduce_noise", "image": "mlrun/mlrun", "kind": "job", "requirements": ["librosa", "noisereduce", "deepfilternet", "torchaudio>=2.1.2"]}, "url": "", "version": "1.1.0", "test_valid": false}}}}, "modules": {"development": {"count_events": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "histogram_data_drift": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}}, "openai_proxy_app": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}}, "evidently_iris": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}}, "agent_deployer": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "vllm_module": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0"}}}, "master": {"count_events": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "histogram_data_drift": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0"}}, "openai_proxy_app": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0"}}, "evidently_iris": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0"}}, "agent_deployer": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0"}}, "vllm_module": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0"}}}}, "steps": {"development": {"verify_schema": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "model-serving", "utilities"], "description": "Verifies the event is aligned with the provided schema", "example": "verify_schema.ipynb", "generationDate": "2025-12-29:11-59", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "verify_schema", "className": "VerifySchema", "defaultHandler": null, "spec": {"filename": "verify_schema.py", "image": "mlrun/mlrun", "requirements": null}, "version": "1.0.0"}, "1.0.0": {"apiVersion": "v1", "categories": ["data-preparation", "model-serving", "utilities"], "description": "Verifies the event is aligned with the provided schema", "example": "verify_schema.ipynb", "generationDate": "2025-12-29:11-59", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "verify_schema", "className": "VerifySchema", "defaultHandler": null, "spec": {"filename": "verify_schema.py", "image": "mlrun/mlrun", "requirements": null}, "version": "1.0.0"}}}, "master": {}}} \ No newline at end of file diff --git a/functions/development/tags.json b/functions/development/tags.json index 31c481ca..47524bb0 100644 --- a/functions/development/tags.json +++ b/functions/development/tags.json @@ -1 +1 @@ -{"categories": ["NLP", "monitoring", "deep-learning", "audio", "utils", "machine-learning", "model-serving", "model-testing", "data-analysis", "genai", "model-training", "data-preparation", "data-generation"], "kind": ["job", "serving", "nuclio:serving"]} \ No newline at end of file +{"kind": ["nuclio:serving", "job", "serving"], "categories": ["utils", "genai", "deep-learning", "NLP", "model-serving", "machine-learning", "data-generation", "monitoring", "audio", "model-testing", "data-preparation", "model-training", "data-analysis"]} \ No newline at end of file diff --git a/modules/development/agent_deployer/1.0.0/src/agent_deployer.ipynb b/modules/development/agent_deployer/1.0.0/src/agent_deployer.ipynb index 944dba11..98531ecd 100644 --- a/modules/development/agent_deployer/1.0.0/src/agent_deployer.ipynb +++ b/modules/development/agent_deployer/1.0.0/src/agent_deployer.ipynb @@ -10,18 +10,8 @@ }, { "cell_type": "code", - "execution_count": 21, "id": "be42e7c5-b2af-476f-8041-c17be56edb52", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "> 2025-12-03 07:17:36,530 [info] Project loaded successfully: {\"project_name\":\"langchain-example-10\"}\n" - ] - } - ], "source": [ "%config Completer.use_jedi = False\n", "\n", @@ -31,7 +21,9 @@ "image = \"mlrun/mlrun\"\n", "project_name = \"langchain-example\"\n", "project = get_or_create_project(project_name, context=\"./\", allow_cross_project=True)" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", @@ -43,17 +35,17 @@ }, { "cell_type": "code", - "execution_count": 23, "id": "a47d7789-2ea2-493e-8905-f53b978e2abd", "metadata": {}, - "outputs": [], "source": [ "# Create project secrets for project\n", "secrets = {\"OPENAI_API_KEY\": \"\", # add your OpenAI API key here\n", " \"OPENAI_BASE_URL\": \"\" # add your OpenAI base url here if needed\n", " }\n", "project.set_secrets(secrets=secrets, provider=\"kubernetes\")" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", @@ -65,10 +57,8 @@ }, { "cell_type": "code", - "execution_count": null, "id": "25cbd982-86de-43b5-91ef-24fc60b2d758", "metadata": {}, - "outputs": [], "source": [ "%%writefile langchain_model.py\n", "\n", @@ -197,7 +187,9 @@ " result[\"total_cost_usd\"] = input_cost + output_cost\n", " return result\n", " " - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", @@ -209,20 +201,8 @@ }, { "cell_type": "code", - "execution_count": 81, "id": "691e9068-ec9c-40d6-9ac8-e6c3e605b44c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "> 2025-12-03 10:55:46,194 [info] Project loaded successfully: {\"project_name\":\"langchain-example-10\"}\n", - "> 2025-12-03 10:55:46,463 [info] Model monitoring credentials were set successfully. Please keep in mind that if you already had model monitoring functions / model monitoring infra / tracked model server deployed on your project, you will need to redeploy them. For redeploying the model monitoring infra, first disable it using `project.disable_model_monitoring()` and then enable it using `project.enable_model_monitoring()`.\n", - "details: MLRunConflictError(\"The following model-montioring infrastructure functions are already deployed, aborting: ['model-monitoring-controller', 'model-monitoring-writer']\\nIf you want to redeploy the model-monitoring controller (maybe with different base-period), use update_model_monitoring_controller.If you want to redeploy all of model-monitoring infrastructure, call disable_model_monitoringbefore calling enable_model_monitoring again.\")\n" - ] - } - ], "source": [ "module = mlrun.import_module(\"hub://agent_deployer\")\n", "\n", @@ -237,11 +217,11 @@ " prompt_template= \"\"\"\n", " Answer the following questions as best you can.\n", " You have access to the following tools:\n", - " {tools}\n", + " {{tools}}\n", " Use the following format:\n", " Question: the input question you must answer\n", " Thought: you should always think about what to do\n", - " Action: the action to take, should be one of [{tool_names}]\n", + " Action: the action to take, should be one of [{{tool_names}}]\n", " Action Input: the input to the action\n", " Observation: the result of the action\n", " ... (this Thought/Action/Action Input/Observation can repeat N times)\n", @@ -252,16 +232,18 @@ " Question: {input}\n", " Thought:{agent_scratchpad}\n", " \"\"\",\n", - ")" - ] + ")\n" + ], + "outputs": [], + "execution_count": null }, { "cell_type": "code", - "execution_count": 82, "id": "0bb1c4d1-5d7c-4d1c-bf51-8f53b319e91f", "metadata": {}, + "source": "func = agent.deploy_function(enable_tracking=True)", "outputs": [], - "source": "func = agent.deploy_function(enable_tracking=True)" + "execution_count": null }, { "metadata": {}, @@ -272,10 +254,10 @@ { "metadata": {}, "cell_type": "code", + "source": "func.invoke(\"./\", {\"question\" : \"If a pizza costs $18.75 and I want to buy 3, what is the total cost?\"})", + "id": "ac5c3ba174d2cf8b", "outputs": [], - "execution_count": null, - "source": "func.invoke(\"./\", {\"question\" : \"If a pizza costs $18.75 and I want to buy 3, plus a 15% tip, what is the total cost?\"})", - "id": "ac5c3ba174d2cf8b" + "execution_count": null }, { "metadata": {}, @@ -289,8 +271,6 @@ { "metadata": {}, "cell_type": "code", - "outputs": [], - "execution_count": null, "source": [ "%%writefile monitoring_application.py\n", "\n", @@ -405,7 +385,9 @@ " value=value,\n", " )\n" ], - "id": "377487422f5ed289" + "id": "377487422f5ed289", + "outputs": [], + "execution_count": null }, { "metadata": {}, @@ -416,8 +398,6 @@ { "metadata": {}, "cell_type": "code", - "outputs": [], - "execution_count": null, "source": [ "llm_monitoring_app = project.set_model_monitoring_function(\n", " func=\"monitoring_application.py\",\n", @@ -428,7 +408,9 @@ "\n", "project.deploy_function(llm_monitoring_app)" ], - "id": "9d6ad2a4a47a44bd" + "id": "9d6ad2a4a47a44bd", + "outputs": [], + "execution_count": null } ], "metadata": { diff --git a/modules/development/agent_deployer/1.0.0/static/example.html b/modules/development/agent_deployer/1.0.0/static/example.html index f4062a13..c6798e77 100644 --- a/modules/development/agent_deployer/1.0.0/static/example.html +++ b/modules/development/agent_deployer/1.0.0/static/example.html @@ -193,11 +193,6 @@

Configure mlrun project: -
> 2025-12-03 07:17:36,530 [info] Project loaded successfully: {"project_name":"langchain-example-10"}
-
-
-
@@ -367,11 +362,11 @@

Import the module from the hub:prompt_template= """ Answer the following questions as best you can. You have access to the following tools: - {tools} + {{tools}} Use the following format: Question: the input question you must answer Thought: you should always think about what to do - Action: the action to take, should be one of [{tool_names}] + Action: the action to take, should be one of [{{tool_names}}] Action Input: the input to the action Observation: the result of the action ... (this Thought/Action/Action Input/Observation can repeat N times) @@ -386,13 +381,6 @@

Import the module from the hub: -
> 2025-12-03 10:55:46,194 [info] Project loaded successfully: {"project_name":"langchain-example-10"}
-> 2025-12-03 10:55:46,463 [info] Model monitoring credentials were set successfully. Please keep in mind that if you already had model monitoring functions / model monitoring infra / tracked model server deployed on your project, you will need to redeploy them. For redeploying the model monitoring infra, first disable it using `project.disable_model_monitoring()` and then enable it using `project.enable_model_monitoring()`.
-details: MLRunConflictError("The following model-montioring infrastructure functions are already deployed, aborting: ['model-monitoring-controller', 'model-monitoring-writer']\nIf you want to redeploy the model-monitoring controller (maybe with different base-period), use update_model_monitoring_controller.If you want to redeploy all of model-monitoring infrastructure, call disable_model_monitoringbefore calling enable_model_monitoring again.")
-
-
-
@@ -406,7 +394,7 @@

Import the module from the hub:#

-
func.invoke("./", {"question" : "If a pizza costs $18.75 and I want to buy 3, plus a 15% tip, what is the total cost?"})
+
func.invoke("./", {"question" : "If a pizza costs $18.75 and I want to buy 3, what is the total cost?"})
 
diff --git a/modules/development/agent_deployer/latest/src/agent_deployer.ipynb b/modules/development/agent_deployer/latest/src/agent_deployer.ipynb index 944dba11..98531ecd 100644 --- a/modules/development/agent_deployer/latest/src/agent_deployer.ipynb +++ b/modules/development/agent_deployer/latest/src/agent_deployer.ipynb @@ -10,18 +10,8 @@ }, { "cell_type": "code", - "execution_count": 21, "id": "be42e7c5-b2af-476f-8041-c17be56edb52", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "> 2025-12-03 07:17:36,530 [info] Project loaded successfully: {\"project_name\":\"langchain-example-10\"}\n" - ] - } - ], "source": [ "%config Completer.use_jedi = False\n", "\n", @@ -31,7 +21,9 @@ "image = \"mlrun/mlrun\"\n", "project_name = \"langchain-example\"\n", "project = get_or_create_project(project_name, context=\"./\", allow_cross_project=True)" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", @@ -43,17 +35,17 @@ }, { "cell_type": "code", - "execution_count": 23, "id": "a47d7789-2ea2-493e-8905-f53b978e2abd", "metadata": {}, - "outputs": [], "source": [ "# Create project secrets for project\n", "secrets = {\"OPENAI_API_KEY\": \"\", # add your OpenAI API key here\n", " \"OPENAI_BASE_URL\": \"\" # add your OpenAI base url here if needed\n", " }\n", "project.set_secrets(secrets=secrets, provider=\"kubernetes\")" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", @@ -65,10 +57,8 @@ }, { "cell_type": "code", - "execution_count": null, "id": "25cbd982-86de-43b5-91ef-24fc60b2d758", "metadata": {}, - "outputs": [], "source": [ "%%writefile langchain_model.py\n", "\n", @@ -197,7 +187,9 @@ " result[\"total_cost_usd\"] = input_cost + output_cost\n", " return result\n", " " - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", @@ -209,20 +201,8 @@ }, { "cell_type": "code", - "execution_count": 81, "id": "691e9068-ec9c-40d6-9ac8-e6c3e605b44c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "> 2025-12-03 10:55:46,194 [info] Project loaded successfully: {\"project_name\":\"langchain-example-10\"}\n", - "> 2025-12-03 10:55:46,463 [info] Model monitoring credentials were set successfully. Please keep in mind that if you already had model monitoring functions / model monitoring infra / tracked model server deployed on your project, you will need to redeploy them. For redeploying the model monitoring infra, first disable it using `project.disable_model_monitoring()` and then enable it using `project.enable_model_monitoring()`.\n", - "details: MLRunConflictError(\"The following model-montioring infrastructure functions are already deployed, aborting: ['model-monitoring-controller', 'model-monitoring-writer']\\nIf you want to redeploy the model-monitoring controller (maybe with different base-period), use update_model_monitoring_controller.If you want to redeploy all of model-monitoring infrastructure, call disable_model_monitoringbefore calling enable_model_monitoring again.\")\n" - ] - } - ], "source": [ "module = mlrun.import_module(\"hub://agent_deployer\")\n", "\n", @@ -237,11 +217,11 @@ " prompt_template= \"\"\"\n", " Answer the following questions as best you can.\n", " You have access to the following tools:\n", - " {tools}\n", + " {{tools}}\n", " Use the following format:\n", " Question: the input question you must answer\n", " Thought: you should always think about what to do\n", - " Action: the action to take, should be one of [{tool_names}]\n", + " Action: the action to take, should be one of [{{tool_names}}]\n", " Action Input: the input to the action\n", " Observation: the result of the action\n", " ... (this Thought/Action/Action Input/Observation can repeat N times)\n", @@ -252,16 +232,18 @@ " Question: {input}\n", " Thought:{agent_scratchpad}\n", " \"\"\",\n", - ")" - ] + ")\n" + ], + "outputs": [], + "execution_count": null }, { "cell_type": "code", - "execution_count": 82, "id": "0bb1c4d1-5d7c-4d1c-bf51-8f53b319e91f", "metadata": {}, + "source": "func = agent.deploy_function(enable_tracking=True)", "outputs": [], - "source": "func = agent.deploy_function(enable_tracking=True)" + "execution_count": null }, { "metadata": {}, @@ -272,10 +254,10 @@ { "metadata": {}, "cell_type": "code", + "source": "func.invoke(\"./\", {\"question\" : \"If a pizza costs $18.75 and I want to buy 3, what is the total cost?\"})", + "id": "ac5c3ba174d2cf8b", "outputs": [], - "execution_count": null, - "source": "func.invoke(\"./\", {\"question\" : \"If a pizza costs $18.75 and I want to buy 3, plus a 15% tip, what is the total cost?\"})", - "id": "ac5c3ba174d2cf8b" + "execution_count": null }, { "metadata": {}, @@ -289,8 +271,6 @@ { "metadata": {}, "cell_type": "code", - "outputs": [], - "execution_count": null, "source": [ "%%writefile monitoring_application.py\n", "\n", @@ -405,7 +385,9 @@ " value=value,\n", " )\n" ], - "id": "377487422f5ed289" + "id": "377487422f5ed289", + "outputs": [], + "execution_count": null }, { "metadata": {}, @@ -416,8 +398,6 @@ { "metadata": {}, "cell_type": "code", - "outputs": [], - "execution_count": null, "source": [ "llm_monitoring_app = project.set_model_monitoring_function(\n", " func=\"monitoring_application.py\",\n", @@ -428,7 +408,9 @@ "\n", "project.deploy_function(llm_monitoring_app)" ], - "id": "9d6ad2a4a47a44bd" + "id": "9d6ad2a4a47a44bd", + "outputs": [], + "execution_count": null } ], "metadata": { diff --git a/modules/development/agent_deployer/latest/static/example.html b/modules/development/agent_deployer/latest/static/example.html index f4062a13..c6798e77 100644 --- a/modules/development/agent_deployer/latest/static/example.html +++ b/modules/development/agent_deployer/latest/static/example.html @@ -193,11 +193,6 @@

Configure mlrun project: -
> 2025-12-03 07:17:36,530 [info] Project loaded successfully: {"project_name":"langchain-example-10"}
-
-
-

@@ -367,11 +362,11 @@

Import the module from the hub:prompt_template= """ Answer the following questions as best you can. You have access to the following tools: - {tools} + {{tools}} Use the following format: Question: the input question you must answer Thought: you should always think about what to do - Action: the action to take, should be one of [{tool_names}] + Action: the action to take, should be one of [{{tool_names}}] Action Input: the input to the action Observation: the result of the action ... (this Thought/Action/Action Input/Observation can repeat N times) @@ -386,13 +381,6 @@

Import the module from the hub: -
> 2025-12-03 10:55:46,194 [info] Project loaded successfully: {"project_name":"langchain-example-10"}
-> 2025-12-03 10:55:46,463 [info] Model monitoring credentials were set successfully. Please keep in mind that if you already had model monitoring functions / model monitoring infra / tracked model server deployed on your project, you will need to redeploy them. For redeploying the model monitoring infra, first disable it using `project.disable_model_monitoring()` and then enable it using `project.enable_model_monitoring()`.
-details: MLRunConflictError("The following model-montioring infrastructure functions are already deployed, aborting: ['model-monitoring-controller', 'model-monitoring-writer']\nIf you want to redeploy the model-monitoring controller (maybe with different base-period), use update_model_monitoring_controller.If you want to redeploy all of model-monitoring infrastructure, call disable_model_monitoringbefore calling enable_model_monitoring again.")
-
-
-
@@ -406,7 +394,7 @@

Import the module from the hub:#

-
func.invoke("./", {"question" : "If a pizza costs $18.75 and I want to buy 3, plus a 15% tip, what is the total cost?"})
+
func.invoke("./", {"question" : "If a pizza costs $18.75 and I want to buy 3, what is the total cost?"})
 
diff --git a/modules/development/catalog.json b/modules/development/catalog.json index 1a88d608..3749545b 100644 --- a/modules/development/catalog.json +++ b/modules/development/catalog.json @@ -1 +1 @@ -{"count_events": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/count_events.ipynb", "source": "src/count_events.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/count_events.ipynb", "source": "src/count_events.py", "docs": "static/documentation.html"}}}, "histogram_data_drift": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0", "assets": {"example": "src/histogram_data_drift.ipynb", "source": "src/histogram_data_drift.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0", "assets": {"example": "src/histogram_data_drift.ipynb", "source": "src/histogram_data_drift.py", "docs": "static/documentation.html"}}}, "openai_proxy_app": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0", "assets": {"example": "src/openai_proxy_app.ipynb", "source": "src/openai_proxy_app.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0", "assets": {"example": "src/openai_proxy_app.ipynb", "source": "src/openai_proxy_app.py", "docs": "static/documentation.html"}}}, "evidently_iris": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0", "assets": {"example": "src/evidently_iris.ipynb", "source": "src/evidently_iris.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0", "assets": {"example": "src/evidently_iris.ipynb", "source": "src/evidently_iris.py", "docs": "static/documentation.html"}}}, "agent_deployer": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/agent_deployer.ipynb", "source": "src/agent_deployer.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/agent_deployer.ipynb", "source": "src/agent_deployer.py", "docs": "static/documentation.html"}}}} \ No newline at end of file +{"count_events": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/count_events.ipynb", "source": "src/count_events.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Count events in each time window", "example": "count_events.ipynb", "generationDate": "2025-09-16:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "count_events", "spec": {"filename": "count_events.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/count_events.ipynb", "source": "src/count_events.py", "docs": "static/documentation.html"}}}, "histogram_data_drift": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0", "assets": {"example": "src/histogram_data_drift.ipynb", "source": "src/histogram_data_drift.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Model-monitoring application for detecting and visualizing data drift", "example": "histogram_data_drift.ipynb", "generationDate": "2025-11-06:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "histogram_data_drift", "spec": {"filename": "histogram_data_drift.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["plotly~=5.23", "pandas"]}, "version": "1.0.0", "assets": {"example": "src/histogram_data_drift.ipynb", "source": "src/histogram_data_drift.py", "docs": "static/documentation.html"}}}, "openai_proxy_app": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0", "assets": {"example": "src/openai_proxy_app.ipynb", "source": "src/openai_proxy_app.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "OpenAI application runtime based on fastapi", "example": "openai_proxy_app.ipynb", "generationDate": "2025-11-11:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "openai_proxy_app", "spec": {"filename": "openai_proxy_app.py", "image": "mlrun/mlrun", "requirements": ["fastapi==0.124.0", "uvicorn[standard]==0.38.0", "gunicorn==23.0.0", "requests==2.32.5"], "kind": "generic"}, "version": "1.0.0", "assets": {"example": "src/openai_proxy_app.ipynb", "source": "src/openai_proxy_app.py", "docs": "static/documentation.html"}}}, "evidently_iris": {"latest": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0", "assets": {"example": "src/evidently_iris.ipynb", "source": "src/evidently_iris.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving", "structured-ML"], "description": "Demonstrates Evidently integration in MLRun for data quality and drift monitoring using the Iris dataset", "example": "evidently_iris.ipynb", "generationDate": "2025-11-09:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0-rc41", "name": "evidently_iris", "spec": {"filename": "evidently_iris.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": ["scikit-learn~=1.5.2", "evidently~=0.7.5", "pandas", "sniffio~=1.3.0"]}, "version": "1.0.0", "assets": {"example": "src/evidently_iris.ipynb", "source": "src/evidently_iris.py", "docs": "static/documentation.html"}}}, "agent_deployer": {"latest": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/agent_deployer.ipynb", "source": "src/agent_deployer.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["model-serving"], "description": "Helper for serving function deploy of an AI agents using MLRun", "example": "agent_deployer.ipynb", "generationDate": "2025-12-07", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "agent_deployer", "spec": {"filename": "agent_deployer.py", "image": "mlrun/mlrun", "kind": "monitoring_application", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/agent_deployer.ipynb", "source": "src/agent_deployer.py", "docs": "static/documentation.html"}}}, "vllm_module": {"latest": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0", "assets": {"example": "src/vllm_module.ipynb", "source": "src/vllm_module.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["genai"], "description": "Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.", "example": "vllm_module.ipynb", "generationDate": "2025-12-17:12-25", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "vllm_module", "spec": {"filename": "vllm_module.py", "image": "mlrun/mlrun", "kind": "generic"}, "version": "1.0.0", "assets": {"example": "src/vllm_module.ipynb", "source": "src/vllm_module.py", "docs": "static/documentation.html"}}}} \ No newline at end of file diff --git a/modules/development/tags.json b/modules/development/tags.json index c5b981b0..1a982877 100644 --- a/modules/development/tags.json +++ b/modules/development/tags.json @@ -1 +1 @@ -{"categories": ["structured-ML", "genai", "model-serving"], "kind": ["generic", "monitoring_application"]} \ No newline at end of file +{"categories": ["model-serving", "genai", "structured-ML"], "kind": ["generic", "monitoring_application"]} \ No newline at end of file diff --git a/modules/development/vllm_module/1.0.0/src/item.yaml b/modules/development/vllm_module/1.0.0/src/item.yaml new file mode 100644 index 00000000..ca684340 --- /dev/null +++ b/modules/development/vllm_module/1.0.0/src/item.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +categories: +- genai +description: Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags. +example: vllm_module.ipynb +generationDate: 2025-12-17:12-25 +hidden: false +labels: + author: Iguazio +mlrunVersion: 1.10.0 +name: vllm_module +spec: + filename: vllm_module.py + image: mlrun/mlrun + kind: generic +version: 1.0.0 diff --git a/modules/development/vllm_module/1.0.0/src/test_vllm_module.py b/modules/development/vllm_module/1.0.0/src/test_vllm_module.py new file mode 100644 index 00000000..3a5f422a --- /dev/null +++ b/modules/development/vllm_module/1.0.0/src/test_vllm_module.py @@ -0,0 +1,35 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from vllm_module import VLLMModule +import mlrun + + +class TestVllmModule: + """Test suite for VLLMModule class.""" + + def setup_method(self): + project = mlrun.new_project("vllm", save=False) + + # if your VLLMModule requires node_selector as keyword-only, keep it here + self.TestVllmModule = VLLMModule( + project, + node_selector={"alpha.eksctl.io/nodegroup-name": "added-gpu"}, + ) + + def test_vllm_module(self): + assert ( + type(self.TestVllmModule.vllm_app) == mlrun.runtimes.nuclio.application.application.ApplicationRuntime + ) diff --git a/modules/development/vllm_module/1.0.0/src/vllm_module.ipynb b/modules/development/vllm_module/1.0.0/src/vllm_module.ipynb new file mode 100644 index 00000000..2452dbd2 --- /dev/null +++ b/modules/development/vllm_module/1.0.0/src/vllm_module.ipynb @@ -0,0 +1,234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7d551647-dfc2-47da-bc8a-3792af622073", + "metadata": {}, + "source": [ + "# vLLM Module with MLRun\n", + "\n", + "This notebook shows how to configure and deploy a vLLM OpenAI compatible server as an MLRun application runtime, then showcases how to send a chat request to it to the vLLM server." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7707b270-30cc-448a-a828-cb93aa28030d", + "metadata": {}, + "outputs": [], + "source": [ + "import mlrun\n" + ] + }, + { + "cell_type": "markdown", + "id": "d5cff681-bfdf-4468-a1d1-2aeadb56065e", + "metadata": {}, + "source": [ + "## Prerequisite\n", + "* At lease one GPU is required for running this notebook." + ] + }, + { + "cell_type": "markdown", + "id": "d5c84798-289f-4b4f-8c1b-f4dd12a3bda5", + "metadata": {}, + "source": [ + "## What this notebook does\n", + "\n", + "In this notebook we will:\n", + "\n", + "- Create or load an **MLRun project**\n", + "- Import a custom **vLLM module** from the MLRun Hub\n", + "- Deploy a **vLLM OpenAI-compatible server** as an MLRun application runtime\n", + "- Configure deployment parameters such as model, GPU count, memory, node selector, port, and log level\n", + "- Invoke the deployed service using the `/v1/chat/completions` endpoint\n", + "- Parse the response and extract only the assistant’s generated text\n", + "\n", + "By the end of this notebook, you will have a working vLLM deployment that can be queried directly from a Jupyter notebook using OpenAI-style APIs.\n", + "\n", + "For more information about [vLLM documentation](https://docs.vllm.ai/en/latest/serving/openai_compatible_server/)" + ] + }, + { + "cell_type": "markdown", + "id": "879ca641-ee35-4682-9995-4eb319d89090", + "metadata": {}, + "source": [ + "## 1. Create an MLRun project\n", + "\n", + "In this section we create or load an MLRun project that will own the deployed vLLM application runtime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6eac263a-17d1-4454-9e19-459dfbe2f231", + "metadata": {}, + "outputs": [], + "source": [ + "project = mlrun.get_or_create_project(name=\"vllm-module\", context=\"\", user_project=True)" + ] + }, + { + "cell_type": "markdown", + "id": "da49d335-b704-4fb6-801f-4d07b64f9be6", + "metadata": {}, + "source": [ + "## 2. Import the vLLM module from the MLRun Hub\n", + "\n", + "In this section we import the vLLM module from the MLRun Hub so we can instantiate `VLLMModule` and deploy it as an application runtime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6d89dee-db58-4c0c-8009-b37020c9599a", + "metadata": {}, + "outputs": [], + "source": [ + "vllm = mlrun.import_module(\"hub://vllm-module\")" + ] + }, + { + "cell_type": "markdown", + "id": "1202ddd5-0ce7-4769-be29-8fc264c1f80e", + "metadata": {}, + "source": [ + "## 3. Deploy the vLLM application runtime\n", + "\n", + "Configure the vLLM deployment parameters and deploy the application.\n", + "\n", + "The returned address is the service URL for the application runtime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e433123a-e64b-4a7a-8c7f-8165bcdcc6d1", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize the vLLM app\n", + "vllm_module = vllm.VLLMModule(\n", + " project=project,\n", + " node_selector={\"alpha.eksctl.io/nodegroup-name\": \"added-gpu\"},\n", + " name=\"qwen-vllm\",\n", + " image=\"vllm/vllm-openai:latest\",\n", + " model=\"Qwen/Qwen2.5-Omni-3B\",\n", + " gpus=1,\n", + " mem=\"10G\",\n", + " port=8000,\n", + " dtype=\"auto\",\n", + " uvicorn_log_level=\"info\",\n", + " max_tokens = 501,\n", + ")\n", + "\n", + "# Deploy the vLLM app\n", + "addr = vllm_module.vllm_app.deploy(with_mlrun=True)\n", + "addr" + ] + }, + { + "cell_type": "markdown", + "id": "06832de3-5c31-43bf-b07b-0e71fb2d072d", + "metadata": {}, + "source": [ + "## 4. Get the runtime handle\n", + "\n", + "Fetch the runtime object and invoke the service using `app.invoke(...)`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "102d3fd0-1ee6-49b8-8c86-df742ac1c559", + "metadata": {}, + "outputs": [], + "source": [ + "# Optional: get_runtime() method uses to get the MLRun application runtime\n", + "app = vllm_module.get_runtime()" + ] + }, + { + "cell_type": "markdown", + "id": "925730c1-0ac5-454b-8fb2-ab8cebb3f3ac", + "metadata": {}, + "source": [ + "## 5. Send a chat request for testing\n", + "\n", + "Call the OpenAI compatible endpoint `/v1/chat/completions`, parse the JSON response, and print only the assistant message text." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "31bc78d4-1c6f-439c-b894-1522e3a6d3e6", + "metadata": {}, + "outputs": [], + "source": [ + "body = {\n", + " \"model\": vllm_module.model,\n", + " \"messages\": [{\"role\": \"user\", \"content\": \"what are the 3 countries with the most gpu as far as you know\"}],\n", + " \"max_tokens\": vllm_module.max_tokens, # start smaller for testing\n", + "}\n", + "\n", + "resp = app.invoke(path=\"/v1/chat/completions\", body=body)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "a459d5f8-dad0-4735-94c2-3801d4f94bb5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "assistant:\n", + "\n", + "As of the most commonly cited estimates, the three countries with the largest GPU capacity for AI workloads are the United States, China, and India.\n" + ] + } + ], + "source": [ + "data = resp\n", + "assistant_text = data[\"choices\"][0][\"message\"][\"content\"]\n", + "\n", + "print(\"\\nassistant:\\n\")\n", + "print(assistant_text.strip())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "957b5d21-7ade-4131-9100-878652c477fc", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mlrun-base", + "language": "python", + "name": "conda-env-mlrun-base-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.22" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/modules/development/vllm_module/1.0.0/src/vllm_module.py b/modules/development/vllm_module/1.0.0/src/vllm_module.py new file mode 100644 index 00000000..50bc9f03 --- /dev/null +++ b/modules/development/vllm_module/1.0.0/src/vllm_module.py @@ -0,0 +1,131 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#This module acts as a lightweight gateway to OpenAI-compatible APIs. +#You can send chat prompts, create embeddings, or get model responses without worrying about authentication or endpoint differences. +#It simplifies access so you can test, analyze, or integrate AI features directly into your projects or notebooks with minimal setup. + + +from typing import Dict, Optional, List + +class VLLMModule: + """ + VLLMModule + + This module provides a lightweight wrapper for deploying a vLLM + (OpenAI-compatible) large language model server as an MLRun application runtime. + + The VLLMModule is responsible for: + - Creating an MLRun application runtime based on a vLLM container image + - Configuring GPU resources, memory limits, and Kubernetes node selection + - Launching the model using `vllm serve` with configurable runtime flags + - Supporting multi-GPU inference via tensor parallelism + - Automatically configuring shared memory (/dev/shm) when using multiple GPUs + - Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference + - Providing a simple Python interface for deployment and invocation from Jupyter notebooks + + The module is designed to be used in Jupyter notebooks and MLRun pipelines, + allowing users to deploy and test large language models on Kubernetes + with minimal configuration. + """ + + def __init__( + self, + project: str, + *, + node_selector: Optional[Dict[str, str]] = None, + name: str = "vllm", + image: str = "vllm/vllm-openai:latest", + model: str = "Qwen/Qwen2.5-Omni-3B", + gpus: int = 1, + mem: str = "10G", + port: int = 8000, + dtype: str = "auto", + uvicorn_log_level: str = "info", + max_tokens: int = 500, + ): + if gpus < 1: + raise ValueError("gpus must be >= 1") + + + + if node_selector is None: + node_selector = {"alpha.eksctl.io/nodegroup-name": "added-gpu"} + + if not isinstance(max_tokens, int): + raise TypeError("max_tokens must be an integer") + + if max_tokens < 1: + raise ValueError("max_tokens must be >= 1") + + self.project = project + self.name = name + self.image = image + self.model = model + self.gpus = gpus + self.mem = mem + self.node_selector = node_selector + self.port = port + self.dtype = dtype + self.uvicorn_log_level = uvicorn_log_level + self.max_tokens = max_tokens + + self.vllm_app = self.project.set_function( + name=self.name, + kind="application", + image=self.image, + ) + + self.vllm_app.with_limits(gpus=self.gpus, mem=self.mem) + + if self.node_selector: + self.vllm_app.with_node_selection(node_selector=self.node_selector) + + self.vllm_app.set_internal_application_port(self.port) + + args: List[str] = [ + "serve", + self.model, + "--dtype", + self.dtype, + "--port", + str(self.port), + ] + + if self.uvicorn_log_level: + args += ["--uvicorn-log-level", self.uvicorn_log_level] + + if self.gpus > 1: + args += ["--tensor-parallel-size", str(gpus)] + + # For more than one GPU you should create a share volume for the multiple GPUs + self.vllm_app.spec.volumes = [{"name": "dshm", "emptyDir": {"medium": "Memory"}}] + self.vllm_app.spec.volume_mounts = [{"name": "dshm", "mountPath": "/dev/shm"}] + + + + self.vllm_app.spec.command = "vllm" + self.vllm_app.spec.args = args + + self.vllm_app.spec.min_replicas = 1 + self.vllm_app.spec.max_replicas = 1 + + def get_runtime(self): + return self.vllm_app + + def add_args(self, extra_args: List[str]): + if not isinstance(extra_args, list) or not all(isinstance(x, str) for x in extra_args): + raise ValueError("extra_args must be a list of strings") + self.vllm_app.spec.args += extra_args + diff --git a/modules/development/vllm_module/1.0.0/static/documentation.html b/modules/development/vllm_module/1.0.0/static/documentation.html new file mode 100644 index 00000000..f6b121d8 --- /dev/null +++ b/modules/development/vllm_module/1.0.0/static/documentation.html @@ -0,0 +1,270 @@ + + + + + + + +vllm_module package + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+

vllm_module package

+ +
+ +
+
+ +
+
+

vllm_module package#

+
+

Submodules#

+
+
+

vllm_module.vllm_module module#

+
+
+class vllm_module.vllm_module.VLLMModule(project: str, *, node_selector: Dict[str, str] | None = None, name: str = 'vllm', image: str = 'vllm/vllm-openai:latest', model: str = 'Qwen/Qwen2.5-Omni-3B', gpus: int = 1, mem: str = '10G', port: int = 8000, dtype: str = 'auto', uvicorn_log_level: str = 'info', max_tokens: int = 500)[source]#
+

Bases: object

+

This module provides a lightweight wrapper for deploying a vLLM +(OpenAI-compatible) large language model server as an MLRun application runtime.

+

The VLLMModule is responsible for: +- Creating an MLRun application runtime based on a vLLM container image +- Configuring GPU resources, memory limits, and Kubernetes node selection +- Launching the model using vllm serve with configurable runtime flags +- Supporting multi-GPU inference via tensor parallelism +- Automatically configuring shared memory (/dev/shm) when using multiple GPUs +- Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference +- Providing a simple Python interface for deployment and invocation from Jupyter notebooks

+

The module is designed to be used in Jupyter notebooks and MLRun pipelines, +allowing users to deploy and test large language models on Kubernetes +with minimal configuration.

+
+
+add_args(extra_args: List[str])[source]#
+
+
+
+get_runtime()[source]#
+
+
+
+
+

Module contents#

+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/1.0.0/static/example.html b/modules/development/vllm_module/1.0.0/static/example.html new file mode 100644 index 00000000..4c570c74 --- /dev/null +++ b/modules/development/vllm_module/1.0.0/static/example.html @@ -0,0 +1,355 @@ + + + + + + + +vLLM Module with MLRun + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+ + +
+
+

vLLM Module with MLRun#

+

This notebook shows how to configure and deploy a vLLM OpenAI compatible server as an MLRun application runtime, then showcases how to send a chat request to it to the vLLM server.

+
+
+
import mlrun
+
+
+
+
+
+

Prerequisite#

+
    +
  • At lease one GPU is required for running this notebook.

  • +
+
+
+

What this notebook does#

+

In this notebook we will:

+
    +
  • Create or load an MLRun project

  • +
  • Import a custom vLLM module from the MLRun Hub

  • +
  • Deploy a vLLM OpenAI-compatible server as an MLRun application runtime

  • +
  • Configure deployment parameters such as model, GPU count, memory, node selector, port, and log level

  • +
  • Invoke the deployed service using the /v1/chat/completions endpoint

  • +
  • Parse the response and extract only the assistant’s generated text

  • +
+

By the end of this notebook, you will have a working vLLM deployment that can be queried directly from a Jupyter notebook using OpenAI-style APIs.

+

For more information about vLLM documentation

+
+
+

1. Create an MLRun project#

+

In this section we create or load an MLRun project that will own the deployed vLLM application runtime.

+
+
+
project = mlrun.get_or_create_project(name="vllm-module", context="", user_project=True)
+
+
+
+
+
+
+

2. Import the vLLM module from the MLRun Hub#

+

In this section we import the vLLM module from the MLRun Hub so we can instantiate VLLMModule and deploy it as an application runtime.

+
+
+
vllm = mlrun.import_module("hub://vllm-module")
+
+
+
+
+
+
+

3. Deploy the vLLM application runtime#

+

Configure the vLLM deployment parameters and deploy the application.

+

The returned address is the service URL for the application runtime.

+
+
+
# Initialize the vLLM app
+vllm_module = vllm.VLLMModule(
+    project=project,
+    node_selector={"alpha.eksctl.io/nodegroup-name": "added-gpu"},
+    name="qwen-vllm",
+    image="vllm/vllm-openai:latest",
+    model="Qwen/Qwen2.5-Omni-3B",
+    gpus=1,
+    mem="10G",
+    port=8000,
+    dtype="auto",
+    uvicorn_log_level="info",
+    max_tokens = 501,
+)
+
+# Deploy the vLLM app
+addr = vllm_module.vllm_app.deploy(with_mlrun=True)
+addr
+
+
+
+
+
+
+

4. Get the runtime handle#

+

Fetch the runtime object and invoke the service using app.invoke(...).

+
+
+
# Optional: get_runtime() method uses to get the MLRun application runtime
+app = vllm_module.get_runtime()
+
+
+
+
+
+
+

5. Send a chat request for testing#

+

Call the OpenAI compatible endpoint /v1/chat/completions, parse the JSON response, and print only the assistant message text.

+
+
+
body = {
+    "model": vllm_module.model,
+    "messages": [{"role": "user", "content": "what are the 3 countries with the most gpu as far as you know"}],
+    "max_tokens": vllm_module.max_tokens,     # start smaller for testing
+}
+
+resp = app.invoke(path="/v1/chat/completions", body=body)
+
+
+
+
+
+
+
data = resp
+assistant_text = data["choices"][0]["message"]["content"]
+
+print("\nassistant:\n")
+print(assistant_text.strip())
+
+
+
+
+
assistant:
+
+As of the most commonly cited estimates, the three countries with the largest GPU capacity for AI workloads are the United States, China, and India.
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/1.0.0/static/item.html b/modules/development/vllm_module/1.0.0/static/item.html new file mode 100644 index 00000000..9c7a1da0 --- /dev/null +++ b/modules/development/vllm_module/1.0.0/static/item.html @@ -0,0 +1,51 @@ + + + + + + + + + + + Source + + + + +
+        
+apiVersion: v1
+categories:
+- genai
+description: Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.
+example: vllm_module.ipynb
+generationDate: 2025-12-17:12-25
+hidden: false
+labels:
+  author: Iguazio
+mlrunVersion: 1.10.0
+name: vllm_module
+spec:
+    filename: vllm_module.py
+    image: mlrun/mlrun
+    kind: generic
+version: 1.0.0
+
+        
+    
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/1.0.0/static/source.html b/modules/development/vllm_module/1.0.0/static/source.html new file mode 100644 index 00000000..4c6299ad --- /dev/null +++ b/modules/development/vllm_module/1.0.0/static/source.html @@ -0,0 +1,166 @@ + + + + + + + + + + + Source + + + + +
+        
+# Copyright 2025 Iguazio
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#This module acts as a lightweight gateway to OpenAI-compatible APIs.
+#You can send chat prompts, create embeddings, or get model responses without worrying about authentication or endpoint differences. 
+#It simplifies access so you can test, analyze, or integrate AI features directly into your projects or notebooks with minimal setup.
+
+
+from typing import Dict, Optional, List
+
+class VLLMModule:
+    """
+    VLLMModule
+    
+    This module provides a lightweight wrapper for deploying a vLLM
+    (OpenAI-compatible) large language model server as an MLRun application runtime.
+    
+    The VLLMModule is responsible for:
+    - Creating an MLRun application runtime based on a vLLM container image
+    - Configuring GPU resources, memory limits, and Kubernetes node selection
+    - Launching the model using `vllm serve` with configurable runtime flags
+    - Supporting multi-GPU inference via tensor parallelism
+    - Automatically configuring shared memory (/dev/shm) when using multiple GPUs
+    - Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference
+    - Providing a simple Python interface for deployment and invocation from Jupyter notebooks
+    
+    The module is designed to be used in Jupyter notebooks and MLRun pipelines,
+    allowing users to deploy and test large language models on Kubernetes
+    with minimal configuration.
+    """
+
+    def __init__(
+            self,
+            project: str,
+            *,
+            node_selector: Optional[Dict[str, str]] = None,
+            name: str = "vllm",
+            image: str = "vllm/vllm-openai:latest",
+            model: str = "Qwen/Qwen2.5-Omni-3B",
+            gpus: int = 1,
+            mem: str = "10G",
+            port: int = 8000,
+            dtype: str = "auto",
+            uvicorn_log_level: str = "info",
+            max_tokens: int = 500,
+    ):
+        if gpus < 1:
+            raise ValueError("gpus must be >= 1")
+
+        
+        
+        if node_selector is None:
+            node_selector = {"alpha.eksctl.io/nodegroup-name": "added-gpu"}
+        
+        if not isinstance(max_tokens, int):
+            raise TypeError("max_tokens must be an integer")
+
+        if max_tokens < 1:
+            raise ValueError("max_tokens must be >= 1")
+
+        self.project = project
+        self.name = name
+        self.image = image
+        self.model = model
+        self.gpus = gpus
+        self.mem = mem
+        self.node_selector = node_selector
+        self.port = port
+        self.dtype = dtype
+        self.uvicorn_log_level = uvicorn_log_level
+        self.max_tokens = max_tokens
+
+        self.vllm_app = self.project.set_function(
+            name=self.name,
+            kind="application",
+            image=self.image,
+        )
+
+        self.vllm_app.with_limits(gpus=self.gpus, mem=self.mem)
+
+        if self.node_selector:
+            self.vllm_app.with_node_selection(node_selector=self.node_selector)
+
+        self.vllm_app.set_internal_application_port(self.port)
+
+        args: List[str] = [
+            "serve",
+            self.model,
+            "--dtype",
+            self.dtype,
+            "--port",
+            str(self.port),
+        ]
+
+        if self.uvicorn_log_level:
+            args += ["--uvicorn-log-level", self.uvicorn_log_level]
+
+        if self.gpus > 1:
+            args += ["--tensor-parallel-size", str(gpus)]
+
+            # For more than one GPU you should create a share volume for the multiple GPUs
+            self.vllm_app.spec.volumes = [{"name": "dshm", "emptyDir": {"medium": "Memory"}}]
+            self.vllm_app.spec.volume_mounts = [{"name": "dshm", "mountPath": "/dev/shm"}]
+
+    
+
+        self.vllm_app.spec.command = "vllm"
+        self.vllm_app.spec.args = args
+
+        self.vllm_app.spec.min_replicas = 1
+        self.vllm_app.spec.max_replicas = 1
+
+    def get_runtime(self):
+        return self.vllm_app
+
+    def add_args(self, extra_args: List[str]):
+        if not isinstance(extra_args, list) or not all(isinstance(x, str) for x in extra_args):
+            raise ValueError("extra_args must be a list of strings")
+        self.vllm_app.spec.args += extra_args
+
+
+        
+    
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/1.0.0/static/vllm_module.html b/modules/development/vllm_module/1.0.0/static/vllm_module.html new file mode 100644 index 00000000..7b22280c --- /dev/null +++ b/modules/development/vllm_module/1.0.0/static/vllm_module.html @@ -0,0 +1,312 @@ + + + + + + + +vllm_module.vllm_module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+

+ +
+
+
+
+
+ +
+

Source code for vllm_module.vllm_module

+# Copyright 2025 Iguazio
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#This module acts as a lightweight gateway to OpenAI-compatible APIs.
+#You can send chat prompts, create embeddings, or get model responses without worrying about authentication or endpoint differences. 
+#It simplifies access so you can test, analyze, or integrate AI features directly into your projects or notebooks with minimal setup.
+
+
+from typing import Dict, Optional, List
+
+
+[docs] +class VLLMModule: + """ + VLLMModule + + This module provides a lightweight wrapper for deploying a vLLM + (OpenAI-compatible) large language model server as an MLRun application runtime. + + The VLLMModule is responsible for: + - Creating an MLRun application runtime based on a vLLM container image + - Configuring GPU resources, memory limits, and Kubernetes node selection + - Launching the model using `vllm serve` with configurable runtime flags + - Supporting multi-GPU inference via tensor parallelism + - Automatically configuring shared memory (/dev/shm) when using multiple GPUs + - Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference + - Providing a simple Python interface for deployment and invocation from Jupyter notebooks + + The module is designed to be used in Jupyter notebooks and MLRun pipelines, + allowing users to deploy and test large language models on Kubernetes + with minimal configuration. + """ + + def __init__( + self, + project: str, + *, + node_selector: Optional[Dict[str, str]] = None, + name: str = "vllm", + image: str = "vllm/vllm-openai:latest", + model: str = "Qwen/Qwen2.5-Omni-3B", + gpus: int = 1, + mem: str = "10G", + port: int = 8000, + dtype: str = "auto", + uvicorn_log_level: str = "info", + max_tokens: int = 500, + ): + if gpus < 1: + raise ValueError("gpus must be >= 1") + + + + if node_selector is None: + node_selector = {"alpha.eksctl.io/nodegroup-name": "added-gpu"} + + if not isinstance(max_tokens, int): + raise TypeError("max_tokens must be an integer") + + if max_tokens < 1: + raise ValueError("max_tokens must be >= 1") + + self.project = project + self.name = name + self.image = image + self.model = model + self.gpus = gpus + self.mem = mem + self.node_selector = node_selector + self.port = port + self.dtype = dtype + self.uvicorn_log_level = uvicorn_log_level + self.max_tokens = max_tokens + + self.vllm_app = self.project.set_function( + name=self.name, + kind="application", + image=self.image, + ) + + self.vllm_app.with_limits(gpus=self.gpus, mem=self.mem) + + if self.node_selector: + self.vllm_app.with_node_selection(node_selector=self.node_selector) + + self.vllm_app.set_internal_application_port(self.port) + + args: List[str] = [ + "serve", + self.model, + "--dtype", + self.dtype, + "--port", + str(self.port), + ] + + if self.uvicorn_log_level: + args += ["--uvicorn-log-level", self.uvicorn_log_level] + + if self.gpus > 1: + args += ["--tensor-parallel-size", str(gpus)] + + # For more than one GPU you should create a share volume for the multiple GPUs + self.vllm_app.spec.volumes = [{"name": "dshm", "emptyDir": {"medium": "Memory"}}] + self.vllm_app.spec.volume_mounts = [{"name": "dshm", "mountPath": "/dev/shm"}] + + + + self.vllm_app.spec.command = "vllm" + self.vllm_app.spec.args = args + + self.vllm_app.spec.min_replicas = 1 + self.vllm_app.spec.max_replicas = 1 + +
+[docs] + def get_runtime(self): + return self.vllm_app
+ + +
+[docs] + def add_args(self, extra_args: List[str]): + if not isinstance(extra_args, list) or not all(isinstance(x, str) for x in extra_args): + raise ValueError("extra_args must be a list of strings") + self.vllm_app.spec.args += extra_args
+
+ + +
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/latest/src/item.yaml b/modules/development/vllm_module/latest/src/item.yaml new file mode 100644 index 00000000..ca684340 --- /dev/null +++ b/modules/development/vllm_module/latest/src/item.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +categories: +- genai +description: Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags. +example: vllm_module.ipynb +generationDate: 2025-12-17:12-25 +hidden: false +labels: + author: Iguazio +mlrunVersion: 1.10.0 +name: vllm_module +spec: + filename: vllm_module.py + image: mlrun/mlrun + kind: generic +version: 1.0.0 diff --git a/modules/development/vllm_module/latest/src/test_vllm_module.py b/modules/development/vllm_module/latest/src/test_vllm_module.py new file mode 100644 index 00000000..3a5f422a --- /dev/null +++ b/modules/development/vllm_module/latest/src/test_vllm_module.py @@ -0,0 +1,35 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from vllm_module import VLLMModule +import mlrun + + +class TestVllmModule: + """Test suite for VLLMModule class.""" + + def setup_method(self): + project = mlrun.new_project("vllm", save=False) + + # if your VLLMModule requires node_selector as keyword-only, keep it here + self.TestVllmModule = VLLMModule( + project, + node_selector={"alpha.eksctl.io/nodegroup-name": "added-gpu"}, + ) + + def test_vllm_module(self): + assert ( + type(self.TestVllmModule.vllm_app) == mlrun.runtimes.nuclio.application.application.ApplicationRuntime + ) diff --git a/modules/development/vllm_module/latest/src/vllm_module.ipynb b/modules/development/vllm_module/latest/src/vllm_module.ipynb new file mode 100644 index 00000000..2452dbd2 --- /dev/null +++ b/modules/development/vllm_module/latest/src/vllm_module.ipynb @@ -0,0 +1,234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7d551647-dfc2-47da-bc8a-3792af622073", + "metadata": {}, + "source": [ + "# vLLM Module with MLRun\n", + "\n", + "This notebook shows how to configure and deploy a vLLM OpenAI compatible server as an MLRun application runtime, then showcases how to send a chat request to it to the vLLM server." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7707b270-30cc-448a-a828-cb93aa28030d", + "metadata": {}, + "outputs": [], + "source": [ + "import mlrun\n" + ] + }, + { + "cell_type": "markdown", + "id": "d5cff681-bfdf-4468-a1d1-2aeadb56065e", + "metadata": {}, + "source": [ + "## Prerequisite\n", + "* At lease one GPU is required for running this notebook." + ] + }, + { + "cell_type": "markdown", + "id": "d5c84798-289f-4b4f-8c1b-f4dd12a3bda5", + "metadata": {}, + "source": [ + "## What this notebook does\n", + "\n", + "In this notebook we will:\n", + "\n", + "- Create or load an **MLRun project**\n", + "- Import a custom **vLLM module** from the MLRun Hub\n", + "- Deploy a **vLLM OpenAI-compatible server** as an MLRun application runtime\n", + "- Configure deployment parameters such as model, GPU count, memory, node selector, port, and log level\n", + "- Invoke the deployed service using the `/v1/chat/completions` endpoint\n", + "- Parse the response and extract only the assistant’s generated text\n", + "\n", + "By the end of this notebook, you will have a working vLLM deployment that can be queried directly from a Jupyter notebook using OpenAI-style APIs.\n", + "\n", + "For more information about [vLLM documentation](https://docs.vllm.ai/en/latest/serving/openai_compatible_server/)" + ] + }, + { + "cell_type": "markdown", + "id": "879ca641-ee35-4682-9995-4eb319d89090", + "metadata": {}, + "source": [ + "## 1. Create an MLRun project\n", + "\n", + "In this section we create or load an MLRun project that will own the deployed vLLM application runtime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6eac263a-17d1-4454-9e19-459dfbe2f231", + "metadata": {}, + "outputs": [], + "source": [ + "project = mlrun.get_or_create_project(name=\"vllm-module\", context=\"\", user_project=True)" + ] + }, + { + "cell_type": "markdown", + "id": "da49d335-b704-4fb6-801f-4d07b64f9be6", + "metadata": {}, + "source": [ + "## 2. Import the vLLM module from the MLRun Hub\n", + "\n", + "In this section we import the vLLM module from the MLRun Hub so we can instantiate `VLLMModule` and deploy it as an application runtime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6d89dee-db58-4c0c-8009-b37020c9599a", + "metadata": {}, + "outputs": [], + "source": [ + "vllm = mlrun.import_module(\"hub://vllm-module\")" + ] + }, + { + "cell_type": "markdown", + "id": "1202ddd5-0ce7-4769-be29-8fc264c1f80e", + "metadata": {}, + "source": [ + "## 3. Deploy the vLLM application runtime\n", + "\n", + "Configure the vLLM deployment parameters and deploy the application.\n", + "\n", + "The returned address is the service URL for the application runtime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e433123a-e64b-4a7a-8c7f-8165bcdcc6d1", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize the vLLM app\n", + "vllm_module = vllm.VLLMModule(\n", + " project=project,\n", + " node_selector={\"alpha.eksctl.io/nodegroup-name\": \"added-gpu\"},\n", + " name=\"qwen-vllm\",\n", + " image=\"vllm/vllm-openai:latest\",\n", + " model=\"Qwen/Qwen2.5-Omni-3B\",\n", + " gpus=1,\n", + " mem=\"10G\",\n", + " port=8000,\n", + " dtype=\"auto\",\n", + " uvicorn_log_level=\"info\",\n", + " max_tokens = 501,\n", + ")\n", + "\n", + "# Deploy the vLLM app\n", + "addr = vllm_module.vllm_app.deploy(with_mlrun=True)\n", + "addr" + ] + }, + { + "cell_type": "markdown", + "id": "06832de3-5c31-43bf-b07b-0e71fb2d072d", + "metadata": {}, + "source": [ + "## 4. Get the runtime handle\n", + "\n", + "Fetch the runtime object and invoke the service using `app.invoke(...)`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "102d3fd0-1ee6-49b8-8c86-df742ac1c559", + "metadata": {}, + "outputs": [], + "source": [ + "# Optional: get_runtime() method uses to get the MLRun application runtime\n", + "app = vllm_module.get_runtime()" + ] + }, + { + "cell_type": "markdown", + "id": "925730c1-0ac5-454b-8fb2-ab8cebb3f3ac", + "metadata": {}, + "source": [ + "## 5. Send a chat request for testing\n", + "\n", + "Call the OpenAI compatible endpoint `/v1/chat/completions`, parse the JSON response, and print only the assistant message text." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "31bc78d4-1c6f-439c-b894-1522e3a6d3e6", + "metadata": {}, + "outputs": [], + "source": [ + "body = {\n", + " \"model\": vllm_module.model,\n", + " \"messages\": [{\"role\": \"user\", \"content\": \"what are the 3 countries with the most gpu as far as you know\"}],\n", + " \"max_tokens\": vllm_module.max_tokens, # start smaller for testing\n", + "}\n", + "\n", + "resp = app.invoke(path=\"/v1/chat/completions\", body=body)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "a459d5f8-dad0-4735-94c2-3801d4f94bb5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "assistant:\n", + "\n", + "As of the most commonly cited estimates, the three countries with the largest GPU capacity for AI workloads are the United States, China, and India.\n" + ] + } + ], + "source": [ + "data = resp\n", + "assistant_text = data[\"choices\"][0][\"message\"][\"content\"]\n", + "\n", + "print(\"\\nassistant:\\n\")\n", + "print(assistant_text.strip())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "957b5d21-7ade-4131-9100-878652c477fc", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mlrun-base", + "language": "python", + "name": "conda-env-mlrun-base-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.22" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/modules/development/vllm_module/latest/src/vllm_module.py b/modules/development/vllm_module/latest/src/vllm_module.py new file mode 100644 index 00000000..50bc9f03 --- /dev/null +++ b/modules/development/vllm_module/latest/src/vllm_module.py @@ -0,0 +1,131 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#This module acts as a lightweight gateway to OpenAI-compatible APIs. +#You can send chat prompts, create embeddings, or get model responses without worrying about authentication or endpoint differences. +#It simplifies access so you can test, analyze, or integrate AI features directly into your projects or notebooks with minimal setup. + + +from typing import Dict, Optional, List + +class VLLMModule: + """ + VLLMModule + + This module provides a lightweight wrapper for deploying a vLLM + (OpenAI-compatible) large language model server as an MLRun application runtime. + + The VLLMModule is responsible for: + - Creating an MLRun application runtime based on a vLLM container image + - Configuring GPU resources, memory limits, and Kubernetes node selection + - Launching the model using `vllm serve` with configurable runtime flags + - Supporting multi-GPU inference via tensor parallelism + - Automatically configuring shared memory (/dev/shm) when using multiple GPUs + - Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference + - Providing a simple Python interface for deployment and invocation from Jupyter notebooks + + The module is designed to be used in Jupyter notebooks and MLRun pipelines, + allowing users to deploy and test large language models on Kubernetes + with minimal configuration. + """ + + def __init__( + self, + project: str, + *, + node_selector: Optional[Dict[str, str]] = None, + name: str = "vllm", + image: str = "vllm/vllm-openai:latest", + model: str = "Qwen/Qwen2.5-Omni-3B", + gpus: int = 1, + mem: str = "10G", + port: int = 8000, + dtype: str = "auto", + uvicorn_log_level: str = "info", + max_tokens: int = 500, + ): + if gpus < 1: + raise ValueError("gpus must be >= 1") + + + + if node_selector is None: + node_selector = {"alpha.eksctl.io/nodegroup-name": "added-gpu"} + + if not isinstance(max_tokens, int): + raise TypeError("max_tokens must be an integer") + + if max_tokens < 1: + raise ValueError("max_tokens must be >= 1") + + self.project = project + self.name = name + self.image = image + self.model = model + self.gpus = gpus + self.mem = mem + self.node_selector = node_selector + self.port = port + self.dtype = dtype + self.uvicorn_log_level = uvicorn_log_level + self.max_tokens = max_tokens + + self.vllm_app = self.project.set_function( + name=self.name, + kind="application", + image=self.image, + ) + + self.vllm_app.with_limits(gpus=self.gpus, mem=self.mem) + + if self.node_selector: + self.vllm_app.with_node_selection(node_selector=self.node_selector) + + self.vllm_app.set_internal_application_port(self.port) + + args: List[str] = [ + "serve", + self.model, + "--dtype", + self.dtype, + "--port", + str(self.port), + ] + + if self.uvicorn_log_level: + args += ["--uvicorn-log-level", self.uvicorn_log_level] + + if self.gpus > 1: + args += ["--tensor-parallel-size", str(gpus)] + + # For more than one GPU you should create a share volume for the multiple GPUs + self.vllm_app.spec.volumes = [{"name": "dshm", "emptyDir": {"medium": "Memory"}}] + self.vllm_app.spec.volume_mounts = [{"name": "dshm", "mountPath": "/dev/shm"}] + + + + self.vllm_app.spec.command = "vllm" + self.vllm_app.spec.args = args + + self.vllm_app.spec.min_replicas = 1 + self.vllm_app.spec.max_replicas = 1 + + def get_runtime(self): + return self.vllm_app + + def add_args(self, extra_args: List[str]): + if not isinstance(extra_args, list) or not all(isinstance(x, str) for x in extra_args): + raise ValueError("extra_args must be a list of strings") + self.vllm_app.spec.args += extra_args + diff --git a/modules/development/vllm_module/latest/static/documentation.html b/modules/development/vllm_module/latest/static/documentation.html new file mode 100644 index 00000000..f6b121d8 --- /dev/null +++ b/modules/development/vllm_module/latest/static/documentation.html @@ -0,0 +1,270 @@ + + + + + + + +vllm_module package + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+

vllm_module package

+ +
+ +
+
+ +
+
+

vllm_module package#

+
+

Submodules#

+
+
+

vllm_module.vllm_module module#

+
+
+class vllm_module.vllm_module.VLLMModule(project: str, *, node_selector: Dict[str, str] | None = None, name: str = 'vllm', image: str = 'vllm/vllm-openai:latest', model: str = 'Qwen/Qwen2.5-Omni-3B', gpus: int = 1, mem: str = '10G', port: int = 8000, dtype: str = 'auto', uvicorn_log_level: str = 'info', max_tokens: int = 500)[source]#
+

Bases: object

+

This module provides a lightweight wrapper for deploying a vLLM +(OpenAI-compatible) large language model server as an MLRun application runtime.

+

The VLLMModule is responsible for: +- Creating an MLRun application runtime based on a vLLM container image +- Configuring GPU resources, memory limits, and Kubernetes node selection +- Launching the model using vllm serve with configurable runtime flags +- Supporting multi-GPU inference via tensor parallelism +- Automatically configuring shared memory (/dev/shm) when using multiple GPUs +- Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference +- Providing a simple Python interface for deployment and invocation from Jupyter notebooks

+

The module is designed to be used in Jupyter notebooks and MLRun pipelines, +allowing users to deploy and test large language models on Kubernetes +with minimal configuration.

+
+
+add_args(extra_args: List[str])[source]#
+
+
+
+get_runtime()[source]#
+
+
+
+
+

Module contents#

+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/latest/static/example.html b/modules/development/vllm_module/latest/static/example.html new file mode 100644 index 00000000..4c570c74 --- /dev/null +++ b/modules/development/vllm_module/latest/static/example.html @@ -0,0 +1,355 @@ + + + + + + + +vLLM Module with MLRun + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+ + +
+
+

vLLM Module with MLRun#

+

This notebook shows how to configure and deploy a vLLM OpenAI compatible server as an MLRun application runtime, then showcases how to send a chat request to it to the vLLM server.

+
+
+
import mlrun
+
+
+
+
+
+

Prerequisite#

+
    +
  • At lease one GPU is required for running this notebook.

  • +
+
+
+

What this notebook does#

+

In this notebook we will:

+
    +
  • Create or load an MLRun project

  • +
  • Import a custom vLLM module from the MLRun Hub

  • +
  • Deploy a vLLM OpenAI-compatible server as an MLRun application runtime

  • +
  • Configure deployment parameters such as model, GPU count, memory, node selector, port, and log level

  • +
  • Invoke the deployed service using the /v1/chat/completions endpoint

  • +
  • Parse the response and extract only the assistant’s generated text

  • +
+

By the end of this notebook, you will have a working vLLM deployment that can be queried directly from a Jupyter notebook using OpenAI-style APIs.

+

For more information about vLLM documentation

+
+
+

1. Create an MLRun project#

+

In this section we create or load an MLRun project that will own the deployed vLLM application runtime.

+
+
+
project = mlrun.get_or_create_project(name="vllm-module", context="", user_project=True)
+
+
+
+
+
+
+

2. Import the vLLM module from the MLRun Hub#

+

In this section we import the vLLM module from the MLRun Hub so we can instantiate VLLMModule and deploy it as an application runtime.

+
+
+
vllm = mlrun.import_module("hub://vllm-module")
+
+
+
+
+
+
+

3. Deploy the vLLM application runtime#

+

Configure the vLLM deployment parameters and deploy the application.

+

The returned address is the service URL for the application runtime.

+
+
+
# Initialize the vLLM app
+vllm_module = vllm.VLLMModule(
+    project=project,
+    node_selector={"alpha.eksctl.io/nodegroup-name": "added-gpu"},
+    name="qwen-vllm",
+    image="vllm/vllm-openai:latest",
+    model="Qwen/Qwen2.5-Omni-3B",
+    gpus=1,
+    mem="10G",
+    port=8000,
+    dtype="auto",
+    uvicorn_log_level="info",
+    max_tokens = 501,
+)
+
+# Deploy the vLLM app
+addr = vllm_module.vllm_app.deploy(with_mlrun=True)
+addr
+
+
+
+
+
+
+

4. Get the runtime handle#

+

Fetch the runtime object and invoke the service using app.invoke(...).

+
+
+
# Optional: get_runtime() method uses to get the MLRun application runtime
+app = vllm_module.get_runtime()
+
+
+
+
+
+
+

5. Send a chat request for testing#

+

Call the OpenAI compatible endpoint /v1/chat/completions, parse the JSON response, and print only the assistant message text.

+
+
+
body = {
+    "model": vllm_module.model,
+    "messages": [{"role": "user", "content": "what are the 3 countries with the most gpu as far as you know"}],
+    "max_tokens": vllm_module.max_tokens,     # start smaller for testing
+}
+
+resp = app.invoke(path="/v1/chat/completions", body=body)
+
+
+
+
+
+
+
data = resp
+assistant_text = data["choices"][0]["message"]["content"]
+
+print("\nassistant:\n")
+print(assistant_text.strip())
+
+
+
+
+
assistant:
+
+As of the most commonly cited estimates, the three countries with the largest GPU capacity for AI workloads are the United States, China, and India.
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/latest/static/item.html b/modules/development/vllm_module/latest/static/item.html new file mode 100644 index 00000000..9c7a1da0 --- /dev/null +++ b/modules/development/vllm_module/latest/static/item.html @@ -0,0 +1,51 @@ + + + + + + + + + + + Source + + + + +
+        
+apiVersion: v1
+categories:
+- genai
+description: Deploys a vLLM OpenAI-compatible LLM server as an MLRun application runtime, with configurable GPU usage, node selection, tensor parallelism, and runtime flags.
+example: vllm_module.ipynb
+generationDate: 2025-12-17:12-25
+hidden: false
+labels:
+  author: Iguazio
+mlrunVersion: 1.10.0
+name: vllm_module
+spec:
+    filename: vllm_module.py
+    image: mlrun/mlrun
+    kind: generic
+version: 1.0.0
+
+        
+    
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/latest/static/source.html b/modules/development/vllm_module/latest/static/source.html new file mode 100644 index 00000000..4c6299ad --- /dev/null +++ b/modules/development/vllm_module/latest/static/source.html @@ -0,0 +1,166 @@ + + + + + + + + + + + Source + + + + +
+        
+# Copyright 2025 Iguazio
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#This module acts as a lightweight gateway to OpenAI-compatible APIs.
+#You can send chat prompts, create embeddings, or get model responses without worrying about authentication or endpoint differences. 
+#It simplifies access so you can test, analyze, or integrate AI features directly into your projects or notebooks with minimal setup.
+
+
+from typing import Dict, Optional, List
+
+class VLLMModule:
+    """
+    VLLMModule
+    
+    This module provides a lightweight wrapper for deploying a vLLM
+    (OpenAI-compatible) large language model server as an MLRun application runtime.
+    
+    The VLLMModule is responsible for:
+    - Creating an MLRun application runtime based on a vLLM container image
+    - Configuring GPU resources, memory limits, and Kubernetes node selection
+    - Launching the model using `vllm serve` with configurable runtime flags
+    - Supporting multi-GPU inference via tensor parallelism
+    - Automatically configuring shared memory (/dev/shm) when using multiple GPUs
+    - Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference
+    - Providing a simple Python interface for deployment and invocation from Jupyter notebooks
+    
+    The module is designed to be used in Jupyter notebooks and MLRun pipelines,
+    allowing users to deploy and test large language models on Kubernetes
+    with minimal configuration.
+    """
+
+    def __init__(
+            self,
+            project: str,
+            *,
+            node_selector: Optional[Dict[str, str]] = None,
+            name: str = "vllm",
+            image: str = "vllm/vllm-openai:latest",
+            model: str = "Qwen/Qwen2.5-Omni-3B",
+            gpus: int = 1,
+            mem: str = "10G",
+            port: int = 8000,
+            dtype: str = "auto",
+            uvicorn_log_level: str = "info",
+            max_tokens: int = 500,
+    ):
+        if gpus < 1:
+            raise ValueError("gpus must be >= 1")
+
+        
+        
+        if node_selector is None:
+            node_selector = {"alpha.eksctl.io/nodegroup-name": "added-gpu"}
+        
+        if not isinstance(max_tokens, int):
+            raise TypeError("max_tokens must be an integer")
+
+        if max_tokens < 1:
+            raise ValueError("max_tokens must be >= 1")
+
+        self.project = project
+        self.name = name
+        self.image = image
+        self.model = model
+        self.gpus = gpus
+        self.mem = mem
+        self.node_selector = node_selector
+        self.port = port
+        self.dtype = dtype
+        self.uvicorn_log_level = uvicorn_log_level
+        self.max_tokens = max_tokens
+
+        self.vllm_app = self.project.set_function(
+            name=self.name,
+            kind="application",
+            image=self.image,
+        )
+
+        self.vllm_app.with_limits(gpus=self.gpus, mem=self.mem)
+
+        if self.node_selector:
+            self.vllm_app.with_node_selection(node_selector=self.node_selector)
+
+        self.vllm_app.set_internal_application_port(self.port)
+
+        args: List[str] = [
+            "serve",
+            self.model,
+            "--dtype",
+            self.dtype,
+            "--port",
+            str(self.port),
+        ]
+
+        if self.uvicorn_log_level:
+            args += ["--uvicorn-log-level", self.uvicorn_log_level]
+
+        if self.gpus > 1:
+            args += ["--tensor-parallel-size", str(gpus)]
+
+            # For more than one GPU you should create a share volume for the multiple GPUs
+            self.vllm_app.spec.volumes = [{"name": "dshm", "emptyDir": {"medium": "Memory"}}]
+            self.vllm_app.spec.volume_mounts = [{"name": "dshm", "mountPath": "/dev/shm"}]
+
+    
+
+        self.vllm_app.spec.command = "vllm"
+        self.vllm_app.spec.args = args
+
+        self.vllm_app.spec.min_replicas = 1
+        self.vllm_app.spec.max_replicas = 1
+
+    def get_runtime(self):
+        return self.vllm_app
+
+    def add_args(self, extra_args: List[str]):
+        if not isinstance(extra_args, list) or not all(isinstance(x, str) for x in extra_args):
+            raise ValueError("extra_args must be a list of strings")
+        self.vllm_app.spec.args += extra_args
+
+
+        
+    
+ + \ No newline at end of file diff --git a/modules/development/vllm_module/latest/static/vllm_module.html b/modules/development/vllm_module/latest/static/vllm_module.html new file mode 100644 index 00000000..7b22280c --- /dev/null +++ b/modules/development/vllm_module/latest/static/vllm_module.html @@ -0,0 +1,312 @@ + + + + + + + +vllm_module.vllm_module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+

+ +
+
+
+
+
+ +
+

Source code for vllm_module.vllm_module

+# Copyright 2025 Iguazio
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#This module acts as a lightweight gateway to OpenAI-compatible APIs.
+#You can send chat prompts, create embeddings, or get model responses without worrying about authentication or endpoint differences. 
+#It simplifies access so you can test, analyze, or integrate AI features directly into your projects or notebooks with minimal setup.
+
+
+from typing import Dict, Optional, List
+
+
+[docs] +class VLLMModule: + """ + VLLMModule + + This module provides a lightweight wrapper for deploying a vLLM + (OpenAI-compatible) large language model server as an MLRun application runtime. + + The VLLMModule is responsible for: + - Creating an MLRun application runtime based on a vLLM container image + - Configuring GPU resources, memory limits, and Kubernetes node selection + - Launching the model using `vllm serve` with configurable runtime flags + - Supporting multi-GPU inference via tensor parallelism + - Automatically configuring shared memory (/dev/shm) when using multiple GPUs + - Exposing an OpenAI-compatible API (e.g. /v1/chat/completions) for inference + - Providing a simple Python interface for deployment and invocation from Jupyter notebooks + + The module is designed to be used in Jupyter notebooks and MLRun pipelines, + allowing users to deploy and test large language models on Kubernetes + with minimal configuration. + """ + + def __init__( + self, + project: str, + *, + node_selector: Optional[Dict[str, str]] = None, + name: str = "vllm", + image: str = "vllm/vllm-openai:latest", + model: str = "Qwen/Qwen2.5-Omni-3B", + gpus: int = 1, + mem: str = "10G", + port: int = 8000, + dtype: str = "auto", + uvicorn_log_level: str = "info", + max_tokens: int = 500, + ): + if gpus < 1: + raise ValueError("gpus must be >= 1") + + + + if node_selector is None: + node_selector = {"alpha.eksctl.io/nodegroup-name": "added-gpu"} + + if not isinstance(max_tokens, int): + raise TypeError("max_tokens must be an integer") + + if max_tokens < 1: + raise ValueError("max_tokens must be >= 1") + + self.project = project + self.name = name + self.image = image + self.model = model + self.gpus = gpus + self.mem = mem + self.node_selector = node_selector + self.port = port + self.dtype = dtype + self.uvicorn_log_level = uvicorn_log_level + self.max_tokens = max_tokens + + self.vllm_app = self.project.set_function( + name=self.name, + kind="application", + image=self.image, + ) + + self.vllm_app.with_limits(gpus=self.gpus, mem=self.mem) + + if self.node_selector: + self.vllm_app.with_node_selection(node_selector=self.node_selector) + + self.vllm_app.set_internal_application_port(self.port) + + args: List[str] = [ + "serve", + self.model, + "--dtype", + self.dtype, + "--port", + str(self.port), + ] + + if self.uvicorn_log_level: + args += ["--uvicorn-log-level", self.uvicorn_log_level] + + if self.gpus > 1: + args += ["--tensor-parallel-size", str(gpus)] + + # For more than one GPU you should create a share volume for the multiple GPUs + self.vllm_app.spec.volumes = [{"name": "dshm", "emptyDir": {"medium": "Memory"}}] + self.vllm_app.spec.volume_mounts = [{"name": "dshm", "mountPath": "/dev/shm"}] + + + + self.vllm_app.spec.command = "vllm" + self.vllm_app.spec.args = args + + self.vllm_app.spec.min_replicas = 1 + self.vllm_app.spec.max_replicas = 1 + +
+[docs] + def get_runtime(self): + return self.vllm_app
+ + +
+[docs] + def add_args(self, extra_args: List[str]): + if not isinstance(extra_args, list) or not all(isinstance(x, str) for x in extra_args): + raise ValueError("extra_args must be a list of strings") + self.vllm_app.spec.args += extra_args
+
+ + +
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/steps/development/catalog.json b/steps/development/catalog.json index 9e26dfee..46c55c64 100644 --- a/steps/development/catalog.json +++ b/steps/development/catalog.json @@ -1 +1 @@ -{} \ No newline at end of file +{"verify_schema": {"latest": {"apiVersion": "v1", "categories": ["data-preparation", "model-serving", "utilities"], "description": "Verifies the event is aligned with the provided schema", "example": "verify_schema.ipynb", "generationDate": "2025-12-29:11-59", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "verify_schema", "className": "VerifySchema", "defaultHandler": null, "spec": {"filename": "verify_schema.py", "image": "mlrun/mlrun", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/verify_schema.ipynb", "source": "src/verify_schema.py", "docs": "static/documentation.html"}}, "1.0.0": {"apiVersion": "v1", "categories": ["data-preparation", "model-serving", "utilities"], "description": "Verifies the event is aligned with the provided schema", "example": "verify_schema.ipynb", "generationDate": "2025-12-29:11-59", "hidden": false, "labels": {"author": "Iguazio"}, "mlrunVersion": "1.10.0", "name": "verify_schema", "className": "VerifySchema", "defaultHandler": null, "spec": {"filename": "verify_schema.py", "image": "mlrun/mlrun", "requirements": null}, "version": "1.0.0", "assets": {"example": "src/verify_schema.ipynb", "source": "src/verify_schema.py", "docs": "static/documentation.html"}}}} \ No newline at end of file diff --git a/steps/development/tags.json b/steps/development/tags.json index 42383339..8262034e 100644 --- a/steps/development/tags.json +++ b/steps/development/tags.json @@ -1 +1 @@ -{"categories": [], "kind": []} \ No newline at end of file +{"categories": ["utilities", "data-preparation", "model-serving"], "kind": []} \ No newline at end of file diff --git a/steps/development/verify_schema/1.0.0/src/item.yaml b/steps/development/verify_schema/1.0.0/src/item.yaml new file mode 100644 index 00000000..eca91c6a --- /dev/null +++ b/steps/development/verify_schema/1.0.0/src/item.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +categories: + - data-preparation + - model-serving + - utilities +description: Verifies the event is aligned with the provided schema +example: verify_schema.ipynb +generationDate: 2025-12-29:11-59 +hidden: false +labels: + author: Iguazio +mlrunVersion: 1.10.0 +name: verify_schema +className: VerifySchema +defaultHandler: +spec: + filename: verify_schema.py + image: mlrun/mlrun + requirements: +version: 1.0.0 \ No newline at end of file diff --git a/steps/development/verify_schema/1.0.0/src/test_verify_schema.py b/steps/development/verify_schema/1.0.0/src/test_verify_schema.py new file mode 100644 index 00000000..5a7e08b5 --- /dev/null +++ b/steps/development/verify_schema/1.0.0/src/test_verify_schema.py @@ -0,0 +1,66 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from verify_schema import VerifySchema + +class TestVerifySchema: + def test_verify_schema(self): + schema = ["id", "name", "active"] + verifier = VerifySchema(schema=schema, allow_unexpected_keys=False) + + # Test with valid event + event = { + "id": 1, + "name": "Test Event", + "active": True + } + result = verifier.do(event) + assert result == event + + # Test with missing key + event_missing_key = { + "id": 1, + "name": "Test Event" + } + try: + verifier.do(event_missing_key) + except KeyError as e: + assert "missing keys {'active'} in event" in str(e) + + # Test with unexpected key + event_unexpected_key = { + "id": 1, + "name": "Test Event", + "active": True, + "extra": "unexpected" + } + try: + verifier.do(event_unexpected_key) + except KeyError as e: + assert "unexpected keys {'extra'} in event" in str(e) + + def test_verify_schema_allow_unexpected(self): + schema = ["id", "name", "active"] + verifier = VerifySchema(schema=schema, allow_unexpected_keys=True) + + # Test with valid event and unexpected key + event = { + "id": 1, + "name": "Test Event", + "active": True, + "extra": "unexpected" + } + result = verifier.do(event) + assert result == event \ No newline at end of file diff --git a/steps/development/verify_schema/1.0.0/src/verify_schema.ipynb b/steps/development/verify_schema/1.0.0/src/verify_schema.ipynb new file mode 100644 index 00000000..954e80cb --- /dev/null +++ b/steps/development/verify_schema/1.0.0/src/verify_schema.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "", + "id": "556b36b9b89d0515" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/steps/development/verify_schema/1.0.0/src/verify_schema.py b/steps/development/verify_schema/1.0.0/src/verify_schema.py new file mode 100644 index 00000000..80a37956 --- /dev/null +++ b/steps/development/verify_schema/1.0.0/src/verify_schema.py @@ -0,0 +1,40 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +class VerifySchema: + """ + This step validates that an event dictionary contains exactly the keys defined in the schema, + raising a KeyError if any are missing or unexpected. + """ + + def __init__(self, schema: list, allow_unexpected_keys: bool = False): + self.schema = schema + self.allow_unexpected_keys = allow_unexpected_keys + + def do(self, event: dict): + # Check if all keys in the expected schema are present in the event + missing = set(self.schema) - set(event) + if missing: + raise KeyError(f"Schema verification failed: missing keys {missing} in event: {event}") + + if self.allow_unexpected_keys: + return event + + # Check if there are any unexpected keys in the event + unexpected = set(event) - set(self.schema) + if unexpected: + raise KeyError(f"Schema verification failed: unexpected keys {unexpected} in event: {event}") + + return event diff --git a/steps/development/verify_schema/1.0.0/static/documentation.html b/steps/development/verify_schema/1.0.0/static/documentation.html new file mode 100644 index 00000000..0939bbaa --- /dev/null +++ b/steps/development/verify_schema/1.0.0/static/documentation.html @@ -0,0 +1,230 @@ + + + + + + + +verify_schema package + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+

verify_schema package

+ +
+ +
+
+ +
+
+

verify_schema package#

+
+

Submodules#

+
+
+

verify_schema.verify_schema module#

+
+
+

Module contents#

+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/1.0.0/static/example.html b/steps/development/verify_schema/1.0.0/static/example.html new file mode 100644 index 00000000..7c7e9cfa --- /dev/null +++ b/steps/development/verify_schema/1.0.0/static/example.html @@ -0,0 +1,212 @@ + + + + + + + +<no title> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+

+ +
+
+
+

Contents

+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/1.0.0/static/item.html b/steps/development/verify_schema/1.0.0/static/item.html new file mode 100644 index 00000000..91d6c7e9 --- /dev/null +++ b/steps/development/verify_schema/1.0.0/static/item.html @@ -0,0 +1,54 @@ + + + + + + + + + + + Source + + + + +
+        
+apiVersion: v1
+categories:
+  - data-preparation
+  - model-serving
+  - utilities
+description: Verifies the event is aligned with the provided schema
+example: verify_schema.ipynb
+generationDate: 2025-12-29:11-59    
+hidden: false                                       
+labels:
+  author: Iguazio
+mlrunVersion: 1.10.0
+name: verify_schema                        
+className: VerifySchema
+defaultHandler:     
+spec:
+  filename: verify_schema.py              
+  image: mlrun/mlrun                                
+  requirements:
+version: 1.0.0                                      
+        
+    
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/1.0.0/static/source.html b/steps/development/verify_schema/1.0.0/static/source.html new file mode 100644 index 00000000..5b0ba35e --- /dev/null +++ b/steps/development/verify_schema/1.0.0/static/source.html @@ -0,0 +1,75 @@ + + + + + + + + + + + Source + + + + +
+        
+# Copyright 2025 Iguazio
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+class VerifySchema:
+    """
+    This step validates that an event dictionary contains exactly the keys defined in the schema,
+    raising a KeyError if any are missing or unexpected.
+    """
+
+    def __init__(self, schema: list, allow_unexpected_keys: bool = False):
+        self.schema = schema
+        self.allow_unexpected_keys = allow_unexpected_keys
+
+    def do(self, event: dict):
+        # Check if all keys in the expected schema are present in the event
+        missing = set(self.schema) - set(event)
+        if missing:
+            raise KeyError(f"Schema verification failed: missing keys {missing} in event: {event}")
+
+        if self.allow_unexpected_keys:
+            return event
+
+        # Check if there are any unexpected keys in the event
+        unexpected = set(event) - set(self.schema)
+        if unexpected:
+            raise KeyError(f"Schema verification failed: unexpected keys {unexpected} in event: {event}")
+
+        return event
+
+        
+    
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/latest/src/item.yaml b/steps/development/verify_schema/latest/src/item.yaml new file mode 100644 index 00000000..eca91c6a --- /dev/null +++ b/steps/development/verify_schema/latest/src/item.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +categories: + - data-preparation + - model-serving + - utilities +description: Verifies the event is aligned with the provided schema +example: verify_schema.ipynb +generationDate: 2025-12-29:11-59 +hidden: false +labels: + author: Iguazio +mlrunVersion: 1.10.0 +name: verify_schema +className: VerifySchema +defaultHandler: +spec: + filename: verify_schema.py + image: mlrun/mlrun + requirements: +version: 1.0.0 \ No newline at end of file diff --git a/steps/development/verify_schema/latest/src/test_verify_schema.py b/steps/development/verify_schema/latest/src/test_verify_schema.py new file mode 100644 index 00000000..5a7e08b5 --- /dev/null +++ b/steps/development/verify_schema/latest/src/test_verify_schema.py @@ -0,0 +1,66 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from verify_schema import VerifySchema + +class TestVerifySchema: + def test_verify_schema(self): + schema = ["id", "name", "active"] + verifier = VerifySchema(schema=schema, allow_unexpected_keys=False) + + # Test with valid event + event = { + "id": 1, + "name": "Test Event", + "active": True + } + result = verifier.do(event) + assert result == event + + # Test with missing key + event_missing_key = { + "id": 1, + "name": "Test Event" + } + try: + verifier.do(event_missing_key) + except KeyError as e: + assert "missing keys {'active'} in event" in str(e) + + # Test with unexpected key + event_unexpected_key = { + "id": 1, + "name": "Test Event", + "active": True, + "extra": "unexpected" + } + try: + verifier.do(event_unexpected_key) + except KeyError as e: + assert "unexpected keys {'extra'} in event" in str(e) + + def test_verify_schema_allow_unexpected(self): + schema = ["id", "name", "active"] + verifier = VerifySchema(schema=schema, allow_unexpected_keys=True) + + # Test with valid event and unexpected key + event = { + "id": 1, + "name": "Test Event", + "active": True, + "extra": "unexpected" + } + result = verifier.do(event) + assert result == event \ No newline at end of file diff --git a/steps/development/verify_schema/latest/src/verify_schema.ipynb b/steps/development/verify_schema/latest/src/verify_schema.ipynb new file mode 100644 index 00000000..954e80cb --- /dev/null +++ b/steps/development/verify_schema/latest/src/verify_schema.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "", + "id": "556b36b9b89d0515" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/steps/development/verify_schema/latest/src/verify_schema.py b/steps/development/verify_schema/latest/src/verify_schema.py new file mode 100644 index 00000000..80a37956 --- /dev/null +++ b/steps/development/verify_schema/latest/src/verify_schema.py @@ -0,0 +1,40 @@ +# Copyright 2025 Iguazio +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +class VerifySchema: + """ + This step validates that an event dictionary contains exactly the keys defined in the schema, + raising a KeyError if any are missing or unexpected. + """ + + def __init__(self, schema: list, allow_unexpected_keys: bool = False): + self.schema = schema + self.allow_unexpected_keys = allow_unexpected_keys + + def do(self, event: dict): + # Check if all keys in the expected schema are present in the event + missing = set(self.schema) - set(event) + if missing: + raise KeyError(f"Schema verification failed: missing keys {missing} in event: {event}") + + if self.allow_unexpected_keys: + return event + + # Check if there are any unexpected keys in the event + unexpected = set(event) - set(self.schema) + if unexpected: + raise KeyError(f"Schema verification failed: unexpected keys {unexpected} in event: {event}") + + return event diff --git a/steps/development/verify_schema/latest/static/documentation.html b/steps/development/verify_schema/latest/static/documentation.html new file mode 100644 index 00000000..0939bbaa --- /dev/null +++ b/steps/development/verify_schema/latest/static/documentation.html @@ -0,0 +1,230 @@ + + + + + + + +verify_schema package + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+

verify_schema package

+ +
+ +
+
+ +
+
+

verify_schema package#

+
+

Submodules#

+
+
+

verify_schema.verify_schema module#

+
+
+

Module contents#

+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/latest/static/example.html b/steps/development/verify_schema/latest/static/example.html new file mode 100644 index 00000000..7c7e9cfa --- /dev/null +++ b/steps/development/verify_schema/latest/static/example.html @@ -0,0 +1,212 @@ + + + + + + + +<no title> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+

+ +
+
+
+

Contents

+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/latest/static/item.html b/steps/development/verify_schema/latest/static/item.html new file mode 100644 index 00000000..91d6c7e9 --- /dev/null +++ b/steps/development/verify_schema/latest/static/item.html @@ -0,0 +1,54 @@ + + + + + + + + + + + Source + + + + +
+        
+apiVersion: v1
+categories:
+  - data-preparation
+  - model-serving
+  - utilities
+description: Verifies the event is aligned with the provided schema
+example: verify_schema.ipynb
+generationDate: 2025-12-29:11-59    
+hidden: false                                       
+labels:
+  author: Iguazio
+mlrunVersion: 1.10.0
+name: verify_schema                        
+className: VerifySchema
+defaultHandler:     
+spec:
+  filename: verify_schema.py              
+  image: mlrun/mlrun                                
+  requirements:
+version: 1.0.0                                      
+        
+    
+ + \ No newline at end of file diff --git a/steps/development/verify_schema/latest/static/source.html b/steps/development/verify_schema/latest/static/source.html new file mode 100644 index 00000000..5b0ba35e --- /dev/null +++ b/steps/development/verify_schema/latest/static/source.html @@ -0,0 +1,75 @@ + + + + + + + + + + + Source + + + + +
+        
+# Copyright 2025 Iguazio
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+class VerifySchema:
+    """
+    This step validates that an event dictionary contains exactly the keys defined in the schema,
+    raising a KeyError if any are missing or unexpected.
+    """
+
+    def __init__(self, schema: list, allow_unexpected_keys: bool = False):
+        self.schema = schema
+        self.allow_unexpected_keys = allow_unexpected_keys
+
+    def do(self, event: dict):
+        # Check if all keys in the expected schema are present in the event
+        missing = set(self.schema) - set(event)
+        if missing:
+            raise KeyError(f"Schema verification failed: missing keys {missing} in event: {event}")
+
+        if self.allow_unexpected_keys:
+            return event
+
+        # Check if there are any unexpected keys in the event
+        unexpected = set(event) - set(self.schema)
+        if unexpected:
+            raise KeyError(f"Schema verification failed: unexpected keys {unexpected} in event: {event}")
+
+        return event
+
+        
+    
+ + \ No newline at end of file