mlrun 1.10.0rc15__tar.gz → 1.10.0rc16__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mlrun might be problematic. Click here for more details.
- {mlrun-1.10.0rc15/mlrun.egg-info → mlrun-1.10.0rc16}/PKG-INFO +1 -1
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/llm_prompt.py +6 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/constants.py +1 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/workflow.py +2 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/base.py +6 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/httpdb.py +22 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/nopdb.py +5 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/local.py +13 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/pipelines.py +44 -24
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/project.py +0 -1
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/utils.py +0 -2
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/server.py +27 -27
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/states.py +112 -44
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/system_steps.py +84 -58
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/helpers.py +46 -0
- mlrun-1.10.0rc16/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16/mlrun.egg-info}/PKG-INFO +1 -1
- mlrun-1.10.0rc15/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/LICENSE +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/Makefile +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/README.md +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/dependencies.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/dev-requirements.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/dockerfiles/mlrun-api/requirements.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/function.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/model.bst +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/params.csv +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/training.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/extras-requirements.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/api/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/document.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/manager.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/function.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/serving.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/config.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/model_provider/model_provider.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/model_provider/openai_provider.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/remote_client.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/execution.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/api.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/controller.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/_schedules.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/_stats.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/stream_processing.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/writer.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/platforms/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/run.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/daskjob.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/local.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mpijob/abstract.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mpijob/v1.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/application/application.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/function.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/serving.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/pod.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/remotesparkjob.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/remote.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification_pusher.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/retryer.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/SOURCES.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/requires.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/packages.py +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/pyproject.toml +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/requirements.txt +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/setup.cfg +0 -0
- {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/setup.py +0 -0
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
import json
|
|
15
15
|
import tempfile
|
|
16
|
+
from collections import defaultdict
|
|
16
17
|
from typing import Optional, Union
|
|
17
18
|
|
|
18
19
|
import mlrun
|
|
@@ -253,3 +254,8 @@ class LLMPromptArtifact(Artifact):
|
|
|
253
254
|
self.spec.prompt_template = None
|
|
254
255
|
self._src_is_temp = True
|
|
255
256
|
super().before_log()
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
class PlaceholderDefaultDict(defaultdict):
|
|
260
|
+
def __missing__(self, key):
|
|
261
|
+
return f"{{{key}}}"
|
|
@@ -51,6 +51,8 @@ class RerunWorkflowRequest(pydantic.v1.BaseModel):
|
|
|
51
51
|
run_id: typing.Optional[str] = None
|
|
52
52
|
notifications: typing.Optional[list[Notification]] = None
|
|
53
53
|
workflow_runner_node_selector: typing.Optional[dict[str, str]] = None
|
|
54
|
+
original_workflow_runner_uid: typing.Optional[str] = None
|
|
55
|
+
original_workflow_name: typing.Optional[str] = None
|
|
54
56
|
|
|
55
57
|
|
|
56
58
|
class WorkflowResponse(pydantic.v1.BaseModel):
|
|
@@ -55,6 +55,12 @@ class RunDBInterface(ABC):
|
|
|
55
55
|
def update_run(self, updates: dict, uid, project="", iter=0):
|
|
56
56
|
pass
|
|
57
57
|
|
|
58
|
+
@abstractmethod
|
|
59
|
+
def set_run_retrying_status(
|
|
60
|
+
self, project: str, name: str, run_id: str, retrying: bool
|
|
61
|
+
):
|
|
62
|
+
pass
|
|
63
|
+
|
|
58
64
|
@abstractmethod
|
|
59
65
|
def abort_run(self, uid, project="", iter=0, timeout=45, status_text=""):
|
|
60
66
|
pass
|
|
@@ -4741,6 +4741,28 @@ class HTTPRunDB(RunDBInterface):
|
|
|
4741
4741
|
)
|
|
4742
4742
|
return mlrun.common.schemas.GetWorkflowResponse(**response.json())
|
|
4743
4743
|
|
|
4744
|
+
def set_run_retrying_status(
|
|
4745
|
+
self, project: str, name: str, run_id: str, retrying: bool = False
|
|
4746
|
+
):
|
|
4747
|
+
"""
|
|
4748
|
+
Toggle the “retrying” label on a workflow-runner run.
|
|
4749
|
+
|
|
4750
|
+
This will POST to the workflows endpoint to either add or remove the
|
|
4751
|
+
`retrying` flag on a specific run, which prevents parallel retries.
|
|
4752
|
+
|
|
4753
|
+
:param project: The project name under which the workflow is defined.
|
|
4754
|
+
:param name: The workflow name (as in the URL path).
|
|
4755
|
+
:param run_id: The UID of the workflow-runner run to update.
|
|
4756
|
+
:param retrying: True to add the `retrying` label, False to remove it.
|
|
4757
|
+
|
|
4758
|
+
:raises MLRunHTTPError: If the HTTP request fails or returns an error status.
|
|
4759
|
+
"""
|
|
4760
|
+
path = f"projects/{project}/workflows/{name}/runs/{run_id}/set-retry-status"
|
|
4761
|
+
params = {"retrying": retrying}
|
|
4762
|
+
self.api_call(
|
|
4763
|
+
"POST", path, f"set retrying on {project}/{run_id}", params=params
|
|
4764
|
+
)
|
|
4765
|
+
|
|
4744
4766
|
def load_project(
|
|
4745
4767
|
self,
|
|
4746
4768
|
name: str,
|
|
@@ -72,6 +72,11 @@ class NopDB(RunDBInterface):
|
|
|
72
72
|
def update_run(self, updates: dict, uid, project="", iter=0):
|
|
73
73
|
pass
|
|
74
74
|
|
|
75
|
+
def set_run_retrying_status(
|
|
76
|
+
self, project: str, name: str, run_id: str, retrying: bool
|
|
77
|
+
):
|
|
78
|
+
pass
|
|
79
|
+
|
|
75
80
|
def abort_run(self, uid, project="", iter=0, timeout=45, status_text=""):
|
|
76
81
|
pass
|
|
77
82
|
|
|
@@ -276,6 +276,19 @@ class ClientLocalLauncher(launcher.ClientBaseLauncher):
|
|
|
276
276
|
args = sp[1:]
|
|
277
277
|
return command, args
|
|
278
278
|
|
|
279
|
+
def _validate_run(
|
|
280
|
+
self,
|
|
281
|
+
runtime: "mlrun.runtimes.BaseRuntime",
|
|
282
|
+
run: "mlrun.run.RunObject",
|
|
283
|
+
):
|
|
284
|
+
super()._validate_run(runtime, run)
|
|
285
|
+
if self._is_run_local and run.spec.retry.count:
|
|
286
|
+
logger.warning(
|
|
287
|
+
"Retry is not supported for local runs, ignoring retry settings",
|
|
288
|
+
retry=run.spec.retry.to_dict(),
|
|
289
|
+
)
|
|
290
|
+
run.spec.retry.count = 0
|
|
291
|
+
|
|
279
292
|
def _push_notifications(
|
|
280
293
|
self, runobj: "mlrun.run.RunObject", runtime: "mlrun.runtimes.BaseRuntime"
|
|
281
294
|
):
|
|
@@ -1072,7 +1072,11 @@ def github_webhook(request):
|
|
|
1072
1072
|
|
|
1073
1073
|
|
|
1074
1074
|
def rerun_workflow(
|
|
1075
|
-
context: mlrun.execution.MLClientCtx,
|
|
1075
|
+
context: mlrun.execution.MLClientCtx,
|
|
1076
|
+
run_uid: str,
|
|
1077
|
+
project_name: str,
|
|
1078
|
+
original_runner_uid: str,
|
|
1079
|
+
original_workflow_name: str,
|
|
1076
1080
|
):
|
|
1077
1081
|
"""
|
|
1078
1082
|
Re-run a workflow by retrying a previously failed KFP pipeline.
|
|
@@ -1080,8 +1084,11 @@ def rerun_workflow(
|
|
|
1080
1084
|
:param context: MLRun context.
|
|
1081
1085
|
:param run_uid: The run UID of the original workflow to retry.
|
|
1082
1086
|
:param project_name: The project name.
|
|
1087
|
+
:param original_runner_uid: The original workflow runner UID.
|
|
1088
|
+
:param original_workflow_name: The original workflow name.
|
|
1083
1089
|
"""
|
|
1084
1090
|
db = mlrun.get_run_db()
|
|
1091
|
+
new_pipeline_id = None
|
|
1085
1092
|
|
|
1086
1093
|
try:
|
|
1087
1094
|
# Invoke the KFP retry endpoint (direct-submit mode)
|
|
@@ -1096,6 +1103,24 @@ def rerun_workflow(
|
|
|
1096
1103
|
rerun_of_workflow=run_uid,
|
|
1097
1104
|
)
|
|
1098
1105
|
|
|
1106
|
+
# Enqueue "running" notifications server-side for this RerunRunner run
|
|
1107
|
+
db.push_run_notifications(context.uid, project_name)
|
|
1108
|
+
|
|
1109
|
+
context.set_label(
|
|
1110
|
+
mlrun_constants.MLRunInternalLabels.workflow_id, new_pipeline_id
|
|
1111
|
+
)
|
|
1112
|
+
context.update_run()
|
|
1113
|
+
|
|
1114
|
+
context.log_result("workflow_id", new_pipeline_id)
|
|
1115
|
+
|
|
1116
|
+
pipeline = wait_for_pipeline_completion(
|
|
1117
|
+
new_pipeline_id,
|
|
1118
|
+
project=project_name,
|
|
1119
|
+
)
|
|
1120
|
+
|
|
1121
|
+
final_state = pipeline["run"]["status"]
|
|
1122
|
+
context.log_result("workflow_state", final_state, commit=True)
|
|
1123
|
+
|
|
1099
1124
|
except mlrun.errors.MLRunHTTPError as http_exc:
|
|
1100
1125
|
logger.error(
|
|
1101
1126
|
"Failed calling KFP retry API",
|
|
@@ -1104,33 +1129,28 @@ def rerun_workflow(
|
|
|
1104
1129
|
)
|
|
1105
1130
|
raise
|
|
1106
1131
|
|
|
1107
|
-
# Enqueue "running" notifications server-side for this RerunRunner run
|
|
1108
|
-
db.push_run_notifications(context.uid, project_name)
|
|
1109
|
-
|
|
1110
|
-
context.set_label(mlrun_constants.MLRunInternalLabels.workflow_id, new_pipeline_id)
|
|
1111
|
-
context.update_run()
|
|
1112
|
-
|
|
1113
|
-
context.log_result("workflow_id", new_pipeline_id)
|
|
1114
|
-
|
|
1115
|
-
try:
|
|
1116
|
-
pipeline = wait_for_pipeline_completion(
|
|
1117
|
-
new_pipeline_id,
|
|
1118
|
-
project=project_name,
|
|
1119
|
-
)
|
|
1120
1132
|
except Exception as exc:
|
|
1121
|
-
|
|
1122
|
-
"
|
|
1133
|
+
logger.error(
|
|
1134
|
+
"Error during rerun_workflow execution",
|
|
1135
|
+
error=err_to_str(exc),
|
|
1123
1136
|
rerun_pipeline_id=new_pipeline_id,
|
|
1124
|
-
exc=err_to_str(exc),
|
|
1125
1137
|
)
|
|
1126
|
-
|
|
1127
|
-
final_state = pipeline["run"]["status"]
|
|
1128
|
-
context.log_result("workflow_state", final_state, commit=True)
|
|
1138
|
+
raise
|
|
1129
1139
|
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1140
|
+
finally:
|
|
1141
|
+
# Once the rerun has finished, clear the “retrying” label on the original runner
|
|
1142
|
+
# so that subsequent retry requests can acquire the lock again.
|
|
1143
|
+
db.set_run_retrying_status(
|
|
1144
|
+
project=project_name,
|
|
1145
|
+
name=original_workflow_name,
|
|
1146
|
+
run_id=original_runner_uid,
|
|
1147
|
+
retrying=False,
|
|
1148
|
+
)
|
|
1149
|
+
|
|
1150
|
+
if final_state != mlrun_pipelines.common.models.RunStatuses.succeeded:
|
|
1151
|
+
raise mlrun.errors.MLRunRuntimeError(
|
|
1152
|
+
f"Pipeline retry of {run_uid} finished in state={final_state}"
|
|
1153
|
+
)
|
|
1134
1154
|
|
|
1135
1155
|
|
|
1136
1156
|
def load_and_run(context, *args, **kwargs):
|
|
@@ -5073,7 +5073,6 @@ class MlrunProject(ModelObj):
|
|
|
5073
5073
|
:param states: List only runs whose state is one of the provided states.
|
|
5074
5074
|
:param sort: Whether to sort the result according to their start time. Otherwise, results will be
|
|
5075
5075
|
returned by their internal order in the DB (order will not be guaranteed).
|
|
5076
|
-
:param last: Deprecated - currently not used (will be removed in 1.10.0).
|
|
5077
5076
|
:param iter: If ``True`` return runs from all iterations. Otherwise, return only runs whose ``iter`` is 0.
|
|
5078
5077
|
:param start_time_from: Filter by run start time in ``[start_time_from, start_time_to]``.
|
|
5079
5078
|
:param start_time_to: Filter by run start time in ``[start_time_from, start_time_to]``.
|
|
@@ -445,8 +445,6 @@ def enrich_run_labels(
|
|
|
445
445
|
labels_enrichment = {
|
|
446
446
|
mlrun_constants.MLRunInternalLabels.owner: os.environ.get("V3IO_USERNAME")
|
|
447
447
|
or getpass.getuser(),
|
|
448
|
-
# TODO: remove this in 1.10.0
|
|
449
|
-
mlrun_constants.MLRunInternalLabels.v3io_user: os.environ.get("V3IO_USERNAME"),
|
|
450
448
|
}
|
|
451
449
|
|
|
452
450
|
# Resolve which label keys to enrich
|
|
@@ -350,33 +350,33 @@ def add_error_raiser_step(
|
|
|
350
350
|
monitored_steps_raisers = {}
|
|
351
351
|
user_steps = list(graph.steps.values())
|
|
352
352
|
for monitored_step in monitored_steps.values():
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
353
|
+
error_step = graph.add_step(
|
|
354
|
+
class_name="mlrun.serving.states.ModelRunnerErrorRaiser",
|
|
355
|
+
name=f"{monitored_step.name}_error_raise",
|
|
356
|
+
after=monitored_step.name,
|
|
357
|
+
full_event=True,
|
|
358
|
+
raise_exception=monitored_step.raise_exception,
|
|
359
|
+
models_names=list(monitored_step.class_args["models"].keys()),
|
|
360
|
+
model_endpoint_creation_strategy=mlrun.common.schemas.ModelEndpointCreationStrategy.SKIP,
|
|
361
|
+
)
|
|
362
|
+
if monitored_step.responder:
|
|
363
|
+
monitored_step.responder = False
|
|
364
|
+
error_step.respond()
|
|
365
|
+
monitored_steps_raisers[monitored_step.name] = error_step.name
|
|
366
|
+
error_step.on_error = monitored_step.on_error
|
|
367
|
+
if monitored_steps_raisers:
|
|
368
|
+
for step in user_steps:
|
|
369
|
+
if step.after:
|
|
370
|
+
if isinstance(step.after, list):
|
|
371
|
+
for i in range(len(step.after)):
|
|
372
|
+
if step.after[i] in monitored_steps_raisers:
|
|
373
|
+
step.after[i] = monitored_steps_raisers[step.after[i]]
|
|
374
|
+
else:
|
|
375
|
+
if (
|
|
376
|
+
isinstance(step.after, str)
|
|
377
|
+
and step.after in monitored_steps_raisers
|
|
378
|
+
):
|
|
379
|
+
step.after = monitored_steps_raisers[step.after]
|
|
380
380
|
return graph
|
|
381
381
|
|
|
382
382
|
|
|
@@ -35,7 +35,7 @@ from storey import ParallelExecutionMechanisms
|
|
|
35
35
|
import mlrun
|
|
36
36
|
import mlrun.artifacts
|
|
37
37
|
import mlrun.common.schemas as schemas
|
|
38
|
-
from mlrun.artifacts.llm_prompt import LLMPromptArtifact
|
|
38
|
+
from mlrun.artifacts.llm_prompt import LLMPromptArtifact, PlaceholderDefaultDict
|
|
39
39
|
from mlrun.artifacts.model import ModelArtifact
|
|
40
40
|
from mlrun.datastore.datastore_profile import (
|
|
41
41
|
DatastoreProfileKafkaSource,
|
|
@@ -45,7 +45,7 @@ from mlrun.datastore.datastore_profile import (
|
|
|
45
45
|
)
|
|
46
46
|
from mlrun.datastore.model_provider.model_provider import ModelProvider
|
|
47
47
|
from mlrun.datastore.storeytargets import KafkaStoreyTarget, StreamStoreyTarget
|
|
48
|
-
from mlrun.utils import logger
|
|
48
|
+
from mlrun.utils import get_data_from_path, logger, split_path
|
|
49
49
|
|
|
50
50
|
from ..config import config
|
|
51
51
|
from ..datastore import get_stream_pusher
|
|
@@ -501,10 +501,15 @@ class BaseStep(ModelObj):
|
|
|
501
501
|
def verify_model_runner_step(
|
|
502
502
|
self,
|
|
503
503
|
step: "ModelRunnerStep",
|
|
504
|
+
step_model_endpoints_names: Optional[list[str]] = None,
|
|
505
|
+
verify_shared_models: bool = True,
|
|
504
506
|
):
|
|
505
507
|
"""
|
|
506
508
|
Verify ModelRunnerStep, can be part of Flow graph and models can not repeat in graph.
|
|
507
|
-
:param step:
|
|
509
|
+
:param step: ModelRunnerStep to verify
|
|
510
|
+
:param step_model_endpoints_names: List of model endpoints names that are in the step.
|
|
511
|
+
if provided will ignore step models and verify only the models on list.
|
|
512
|
+
:param verify_shared_models: If True, verify that shared models are defined in the graph.
|
|
508
513
|
"""
|
|
509
514
|
|
|
510
515
|
if not isinstance(step, ModelRunnerStep):
|
|
@@ -516,7 +521,7 @@ class BaseStep(ModelObj):
|
|
|
516
521
|
raise GraphError(
|
|
517
522
|
"ModelRunnerStep can be added to 'Flow' topology graph only"
|
|
518
523
|
)
|
|
519
|
-
step_model_endpoints_names = list(
|
|
524
|
+
step_model_endpoints_names = step_model_endpoints_names or list(
|
|
520
525
|
step.class_args.get(schemas.ModelRunnerStepData.MODELS, {}).keys()
|
|
521
526
|
)
|
|
522
527
|
# Get all model_endpoints names that are in both lists
|
|
@@ -530,8 +535,9 @@ class BaseStep(ModelObj):
|
|
|
530
535
|
f"The graph already contains the model endpoints named - {common_endpoints_names}."
|
|
531
536
|
)
|
|
532
537
|
|
|
533
|
-
|
|
534
|
-
|
|
538
|
+
if verify_shared_models:
|
|
539
|
+
# Check if shared models are defined in the graph
|
|
540
|
+
self._verify_shared_models(root, step, step_model_endpoints_names)
|
|
535
541
|
# Update model endpoints names in the root step
|
|
536
542
|
root.update_model_endpoints_names(step_model_endpoints_names)
|
|
537
543
|
|
|
@@ -569,7 +575,9 @@ class BaseStep(ModelObj):
|
|
|
569
575
|
llm_artifact, _ = mlrun.store_manager.get_store_artifact(
|
|
570
576
|
model_artifact_uri
|
|
571
577
|
)
|
|
572
|
-
model_artifact_uri =
|
|
578
|
+
model_artifact_uri = mlrun.utils.remove_tag_from_artifact_uri(
|
|
579
|
+
llm_artifact.spec.parent_uri
|
|
580
|
+
)
|
|
573
581
|
actual_shared_name = root.get_shared_model_name_by_artifact_uri(
|
|
574
582
|
model_artifact_uri
|
|
575
583
|
)
|
|
@@ -1148,11 +1156,11 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
|
|
|
1148
1156
|
def init(self):
|
|
1149
1157
|
self.load()
|
|
1150
1158
|
|
|
1151
|
-
def predict(self, body: Any) -> Any:
|
|
1159
|
+
def predict(self, body: Any, **kwargs) -> Any:
|
|
1152
1160
|
"""Override to implement prediction logic. If the logic requires asyncio, override predict_async() instead."""
|
|
1153
1161
|
return body
|
|
1154
1162
|
|
|
1155
|
-
async def predict_async(self, body: Any) -> Any:
|
|
1163
|
+
async def predict_async(self, body: Any, **kwargs) -> Any:
|
|
1156
1164
|
"""Override to implement prediction logic if the logic requires asyncio."""
|
|
1157
1165
|
return body
|
|
1158
1166
|
|
|
@@ -1197,11 +1205,18 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
|
|
|
1197
1205
|
|
|
1198
1206
|
|
|
1199
1207
|
class LLModel(Model):
|
|
1200
|
-
def __init__(
|
|
1208
|
+
def __init__(
|
|
1209
|
+
self, name: str, input_path: Optional[Union[str, list[str]]], **kwargs
|
|
1210
|
+
):
|
|
1201
1211
|
super().__init__(name, **kwargs)
|
|
1212
|
+
self._input_path = split_path(input_path)
|
|
1202
1213
|
|
|
1203
1214
|
def predict(
|
|
1204
|
-
self,
|
|
1215
|
+
self,
|
|
1216
|
+
body: Any,
|
|
1217
|
+
messages: Optional[list[dict]] = None,
|
|
1218
|
+
model_configuration: Optional[dict] = None,
|
|
1219
|
+
**kwargs,
|
|
1205
1220
|
) -> Any:
|
|
1206
1221
|
if isinstance(
|
|
1207
1222
|
self.invocation_artifact, mlrun.artifacts.LLMPromptArtifact
|
|
@@ -1214,7 +1229,11 @@ class LLModel(Model):
|
|
|
1214
1229
|
return body
|
|
1215
1230
|
|
|
1216
1231
|
async def predict_async(
|
|
1217
|
-
self,
|
|
1232
|
+
self,
|
|
1233
|
+
body: Any,
|
|
1234
|
+
messages: Optional[list[dict]] = None,
|
|
1235
|
+
model_configuration: Optional[dict] = None,
|
|
1236
|
+
**kwargs,
|
|
1218
1237
|
) -> Any:
|
|
1219
1238
|
if isinstance(
|
|
1220
1239
|
self.invocation_artifact, mlrun.artifacts.LLMPromptArtifact
|
|
@@ -1262,12 +1281,34 @@ class LLModel(Model):
|
|
|
1262
1281
|
return None, None
|
|
1263
1282
|
prompt_legend = llm_prompt_artifact.spec.prompt_legend
|
|
1264
1283
|
prompt_template = deepcopy(llm_prompt_artifact.read_prompt())
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1284
|
+
input_data = copy(get_data_from_path(self._input_path, body))
|
|
1285
|
+
if isinstance(input_data, dict):
|
|
1286
|
+
kwargs = (
|
|
1287
|
+
{
|
|
1288
|
+
place_holder: input_data.get(body_map["field"])
|
|
1289
|
+
for place_holder, body_map in prompt_legend.items()
|
|
1290
|
+
}
|
|
1291
|
+
if prompt_legend
|
|
1292
|
+
else {}
|
|
1293
|
+
)
|
|
1294
|
+
input_data.update(kwargs)
|
|
1295
|
+
default_place_holders = PlaceholderDefaultDict(lambda: None, input_data)
|
|
1296
|
+
for message in prompt_template:
|
|
1297
|
+
try:
|
|
1298
|
+
message["content"] = message["content"].format(**input_data)
|
|
1299
|
+
except KeyError as e:
|
|
1300
|
+
logger.warning(
|
|
1301
|
+
"Input data was missing a placeholder, placeholder stay unformatted",
|
|
1302
|
+
key_error=e,
|
|
1303
|
+
)
|
|
1304
|
+
message["content"] = message["content"].format_map(
|
|
1305
|
+
default_place_holders
|
|
1306
|
+
)
|
|
1307
|
+
else:
|
|
1308
|
+
logger.warning(
|
|
1309
|
+
f"Expected input data to be a dict, but received input data from type {type(input_data)} prompt "
|
|
1310
|
+
f"template stay unformatted",
|
|
1311
|
+
)
|
|
1271
1312
|
return prompt_template, llm_prompt_artifact.spec.model_configuration
|
|
1272
1313
|
|
|
1273
1314
|
|
|
@@ -1567,11 +1608,27 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1567
1608
|
:param outputs: list of the model outputs (e.g. labels) ,if provided will override the outputs
|
|
1568
1609
|
that been configured in the model artifact, please note that those outputs need to
|
|
1569
1610
|
be equal to the model_class predict method outputs (length, and order)
|
|
1570
|
-
:param input_path:
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1611
|
+
:param input_path: when specified selects the key/path in the event to use as model monitoring inputs
|
|
1612
|
+
this require that the event body will behave like a dict, expects scopes to be
|
|
1613
|
+
defined by dot notation (e.g "data.d").
|
|
1614
|
+
examples: input_path="data.b"
|
|
1615
|
+
event: {"data":{"a": 5, "b": 7}}, means monitored body will be 7.
|
|
1616
|
+
event: {"data":{"a": [5, 9], "b": [7, 8]}} means monitored body will be [7,8].
|
|
1617
|
+
event: {"data":{"a": "extra_data", "b": {"f0": [1, 2]}}} means monitored body will
|
|
1618
|
+
be {"f0": [1, 2]}.
|
|
1619
|
+
if a ``list`` or ``list of lists`` is provided, it must follow the order and
|
|
1620
|
+
size defined by the input schema.
|
|
1621
|
+
:param result_path: when specified selects the key/path in the output event to use as model monitoring
|
|
1622
|
+
outputs this require that the output event body will behave like a dict,
|
|
1623
|
+
expects scopes to be defined by dot notation (e.g "data.d").
|
|
1624
|
+
examples: result_path="out.b"
|
|
1625
|
+
event: {"out":{"a": 5, "b": 7}}, means monitored body will be 7.
|
|
1626
|
+
event: {"out":{"a": [5, 9], "b": [7, 8]}} means monitored body will be [7,8]
|
|
1627
|
+
event: {"out":{"a": "extra_data", "b": {"f0": [1, 2]}}} means monitored body will
|
|
1628
|
+
be {"f0": [1, 2]}
|
|
1629
|
+
if a ``list`` or ``list of lists`` is provided, it must follow the order and
|
|
1630
|
+
size defined by the output schema.
|
|
1631
|
+
|
|
1575
1632
|
:param override: bool allow override existing model on the current ModelRunnerStep.
|
|
1576
1633
|
:param model_parameters: Parameters for model instantiation
|
|
1577
1634
|
"""
|
|
@@ -1590,7 +1647,7 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1590
1647
|
):
|
|
1591
1648
|
try:
|
|
1592
1649
|
model_artifact, _ = mlrun.store_manager.get_store_artifact(
|
|
1593
|
-
model_artifact
|
|
1650
|
+
mlrun.utils.remove_tag_from_artifact_uri(model_artifact)
|
|
1594
1651
|
)
|
|
1595
1652
|
except mlrun.errors.MLRunNotFoundError:
|
|
1596
1653
|
raise mlrun.errors.MLRunInvalidArgumentError("Artifact not found.")
|
|
@@ -1602,6 +1659,11 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1602
1659
|
if isinstance(model_artifact, mlrun.artifacts.Artifact)
|
|
1603
1660
|
else model_artifact
|
|
1604
1661
|
)
|
|
1662
|
+
model_artifact = (
|
|
1663
|
+
mlrun.utils.remove_tag_from_artifact_uri(model_artifact)
|
|
1664
|
+
if model_artifact
|
|
1665
|
+
else None
|
|
1666
|
+
)
|
|
1605
1667
|
model_parameters["artifact_uri"] = model_parameters.get(
|
|
1606
1668
|
"artifact_uri", model_artifact
|
|
1607
1669
|
)
|
|
@@ -1617,6 +1679,11 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1617
1679
|
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
1618
1680
|
f"Model with name {endpoint_name} already exists in this ModelRunnerStep."
|
|
1619
1681
|
)
|
|
1682
|
+
root = self._extract_root_step()
|
|
1683
|
+
if isinstance(root, RootFlowStep):
|
|
1684
|
+
self.verify_model_runner_step(
|
|
1685
|
+
self, [endpoint_name], verify_shared_models=False
|
|
1686
|
+
)
|
|
1620
1687
|
ParallelExecutionMechanisms.validate(execution_mechanism)
|
|
1621
1688
|
self.class_args[schemas.ModelRunnerStepData.MODEL_TO_EXECUTION_MECHANISM] = (
|
|
1622
1689
|
self.class_args.get(
|
|
@@ -1693,15 +1760,6 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1693
1760
|
)
|
|
1694
1761
|
return output_schema
|
|
1695
1762
|
|
|
1696
|
-
@staticmethod
|
|
1697
|
-
def _split_path(path: str) -> Union[str, list[str], None]:
|
|
1698
|
-
if path is not None:
|
|
1699
|
-
parsed_path = path.split(".")
|
|
1700
|
-
if len(parsed_path) == 1:
|
|
1701
|
-
parsed_path = parsed_path[0]
|
|
1702
|
-
return parsed_path
|
|
1703
|
-
return path
|
|
1704
|
-
|
|
1705
1763
|
def _calculate_monitoring_data(self) -> dict[str, dict[str, str]]:
|
|
1706
1764
|
monitoring_data = deepcopy(
|
|
1707
1765
|
self.class_args.get(
|
|
@@ -1726,15 +1784,11 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1726
1784
|
][model][schemas.MonitoringData.OUTPUTS] = monitoring_data[model][
|
|
1727
1785
|
schemas.MonitoringData.OUTPUTS
|
|
1728
1786
|
]
|
|
1729
|
-
monitoring_data[model][schemas.MonitoringData.INPUT_PATH] = (
|
|
1730
|
-
|
|
1731
|
-
monitoring_data[model][schemas.MonitoringData.INPUT_PATH]
|
|
1732
|
-
)
|
|
1787
|
+
monitoring_data[model][schemas.MonitoringData.INPUT_PATH] = split_path(
|
|
1788
|
+
monitoring_data[model][schemas.MonitoringData.INPUT_PATH]
|
|
1733
1789
|
)
|
|
1734
|
-
monitoring_data[model][schemas.MonitoringData.RESULT_PATH] = (
|
|
1735
|
-
|
|
1736
|
-
monitoring_data[model][schemas.MonitoringData.RESULT_PATH]
|
|
1737
|
-
)
|
|
1790
|
+
monitoring_data[model][schemas.MonitoringData.RESULT_PATH] = split_path(
|
|
1791
|
+
monitoring_data[model][schemas.MonitoringData.RESULT_PATH]
|
|
1738
1792
|
)
|
|
1739
1793
|
return monitoring_data
|
|
1740
1794
|
|
|
@@ -1752,6 +1806,13 @@ class ModelRunnerStep(MonitoredStep):
|
|
|
1752
1806
|
model_selector = get_class(model_selector, namespace)()
|
|
1753
1807
|
model_objects = []
|
|
1754
1808
|
for model, model_params in models.values():
|
|
1809
|
+
model_params[schemas.MonitoringData.INPUT_PATH] = (
|
|
1810
|
+
self.class_args.get(
|
|
1811
|
+
mlrun.common.schemas.ModelRunnerStepData.MONITORING_DATA, {}
|
|
1812
|
+
)
|
|
1813
|
+
.get(model_params.get("name"), {})
|
|
1814
|
+
.get(schemas.MonitoringData.INPUT_PATH)
|
|
1815
|
+
)
|
|
1755
1816
|
model = get_class(model, namespace).from_dict(
|
|
1756
1817
|
model_params, init_with_params=True
|
|
1757
1818
|
)
|
|
@@ -2401,7 +2462,13 @@ class FlowStep(BaseStep):
|
|
|
2401
2462
|
if not step.before and not any(
|
|
2402
2463
|
[step.name in other_step.after for other_step in self._steps.values()]
|
|
2403
2464
|
):
|
|
2404
|
-
|
|
2465
|
+
if any(
|
|
2466
|
+
[
|
|
2467
|
+
getattr(step_in_graph, "responder", False)
|
|
2468
|
+
for step_in_graph in self._steps.values()
|
|
2469
|
+
]
|
|
2470
|
+
):
|
|
2471
|
+
step.responder = True
|
|
2405
2472
|
return
|
|
2406
2473
|
|
|
2407
2474
|
for step_name in step.before:
|
|
@@ -2484,7 +2551,7 @@ class RootFlowStep(FlowStep):
|
|
|
2484
2551
|
name: str,
|
|
2485
2552
|
model_class: Union[str, Model],
|
|
2486
2553
|
execution_mechanism: Union[str, ParallelExecutionMechanisms],
|
|
2487
|
-
model_artifact:
|
|
2554
|
+
model_artifact: Union[str, ModelArtifact],
|
|
2488
2555
|
override: bool = False,
|
|
2489
2556
|
**model_parameters,
|
|
2490
2557
|
) -> None:
|
|
@@ -2536,6 +2603,7 @@ class RootFlowStep(FlowStep):
|
|
|
2536
2603
|
if isinstance(model_artifact, mlrun.artifacts.Artifact)
|
|
2537
2604
|
else model_artifact
|
|
2538
2605
|
)
|
|
2606
|
+
model_artifact = mlrun.utils.remove_tag_from_artifact_uri(model_artifact)
|
|
2539
2607
|
model_parameters["artifact_uri"] = model_parameters.get(
|
|
2540
2608
|
"artifact_uri", model_artifact
|
|
2541
2609
|
)
|
|
@@ -2923,7 +2991,7 @@ def params_to_step(
|
|
|
2923
2991
|
step = QueueStep(name, **class_args)
|
|
2924
2992
|
|
|
2925
2993
|
elif class_name and hasattr(class_name, "to_dict"):
|
|
2926
|
-
struct = class_name.to_dict()
|
|
2994
|
+
struct = deepcopy(class_name.to_dict())
|
|
2927
2995
|
kind = struct.get("kind", StepKinds.task)
|
|
2928
2996
|
name = (
|
|
2929
2997
|
name
|