mlrun 1.10.0rc14__tar.gz → 1.10.0rc15__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.0rc14/mlrun.egg-info → mlrun-1.10.0rc15}/PKG-INFO +2 -7
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/dependencies.py +0 -1
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/dev-requirements.txt +4 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/extras-requirements.txt +0 -1
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/base.py +0 -31
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/manager.py +0 -5
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/__init__.py +1 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/model_monitoring/__init__.py +1 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/model_monitoring/functions.py +1 -1
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/model_monitoring/model_endpoints.py +10 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/config.py +1 -1
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/model_provider/model_provider.py +42 -14
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/model_provider/openai_provider.py +96 -15
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/db/base.py +14 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/db/httpdb.py +42 -9
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/db/nopdb.py +8 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/__init__.py +1 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/base.py +176 -20
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/_schedules.py +84 -24
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/base.py +72 -1
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +7 -1
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +37 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +25 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/helpers.py +26 -4
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/projects/project.py +26 -6
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/daskjob.py +6 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/mpijob/abstract.py +6 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/mpijob/v1.py +6 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/application/application.py +2 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/function.py +6 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/serving.py +12 -11
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/pod.py +21 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/remotesparkjob.py +6 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/sparkjob/spark3job.py +6 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/server.py +95 -26
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/states.py +16 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/helpers.py +36 -12
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/retryer.py +15 -2
- mlrun-1.10.0rc15/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15/mlrun.egg-info}/PKG-INFO +2 -7
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun.egg-info/requires.txt +1 -7
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/requirements.txt +1 -1
- mlrun-1.10.0rc14/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/LICENSE +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/Makefile +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/README.md +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/dockerfiles/mlrun-api/requirements.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/function.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/model.bst +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/params.csv +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/training.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/api/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/document.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/llm_prompt.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/constants.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/function.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/serving.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/workflow.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/remote_client.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/execution.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/launcher/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/launcher/local.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/api.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/controller.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/_stats.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/stream_processing.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/model_monitoring/writer.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/platforms/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/projects/pipelines.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/run.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/local.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/runtimes/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/remote.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/system_steps.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/notifications/notification_pusher.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun.egg-info/SOURCES.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/packages.py +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/pyproject.toml +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/setup.cfg +0 -0
- {mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.0rc15
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -28,7 +28,7 @@ Requires-Dist: aiohttp-retry~=2.9
|
|
|
28
28
|
Requires-Dist: click~=8.1
|
|
29
29
|
Requires-Dist: nest-asyncio~=1.0
|
|
30
30
|
Requires-Dist: ipython~=8.10
|
|
31
|
-
Requires-Dist: nuclio-jupyter~=0.11.
|
|
31
|
+
Requires-Dist: nuclio-jupyter~=0.11.2
|
|
32
32
|
Requires-Dist: numpy<1.27.0,>=1.26.4
|
|
33
33
|
Requires-Dist: pandas<2.2,>=1.2
|
|
34
34
|
Requires-Dist: pyarrow<18,>=10.0
|
|
@@ -101,8 +101,6 @@ Provides-Extra: tdengine
|
|
|
101
101
|
Requires-Dist: taos-ws-py==0.3.2; extra == "tdengine"
|
|
102
102
|
Provides-Extra: snowflake
|
|
103
103
|
Requires-Dist: snowflake-connector-python~=3.7; extra == "snowflake"
|
|
104
|
-
Provides-Extra: openai
|
|
105
|
-
Requires-Dist: openai~=1.88; extra == "openai"
|
|
106
104
|
Provides-Extra: dev-postgres
|
|
107
105
|
Requires-Dist: pytest-mock-resources[postgres]~=2.12; extra == "dev-postgres"
|
|
108
106
|
Provides-Extra: kfp18
|
|
@@ -148,7 +146,6 @@ Requires-Dist: graphviz~=0.20.0; extra == "all"
|
|
|
148
146
|
Requires-Dist: kafka-python~=2.1.0; extra == "all"
|
|
149
147
|
Requires-Dist: mlflow~=2.22; extra == "all"
|
|
150
148
|
Requires-Dist: msrest~=0.6.21; extra == "all"
|
|
151
|
-
Requires-Dist: openai~=1.88; extra == "all"
|
|
152
149
|
Requires-Dist: oss2==2.18.1; extra == "all"
|
|
153
150
|
Requires-Dist: ossfs==2023.12.0; extra == "all"
|
|
154
151
|
Requires-Dist: plotly~=5.23; extra == "all"
|
|
@@ -180,7 +177,6 @@ Requires-Dist: graphviz~=0.20.0; extra == "complete"
|
|
|
180
177
|
Requires-Dist: kafka-python~=2.1.0; extra == "complete"
|
|
181
178
|
Requires-Dist: mlflow~=2.22; extra == "complete"
|
|
182
179
|
Requires-Dist: msrest~=0.6.21; extra == "complete"
|
|
183
|
-
Requires-Dist: openai~=1.88; extra == "complete"
|
|
184
180
|
Requires-Dist: oss2==2.18.1; extra == "complete"
|
|
185
181
|
Requires-Dist: ossfs==2023.12.0; extra == "complete"
|
|
186
182
|
Requires-Dist: plotly~=5.23; extra == "complete"
|
|
@@ -223,7 +219,6 @@ Requires-Dist: mlflow~=2.22; extra == "complete-api"
|
|
|
223
219
|
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.7; extra == "complete-api"
|
|
224
220
|
Requires-Dist: msrest~=0.6.21; extra == "complete-api"
|
|
225
221
|
Requires-Dist: objgraph~=3.6; extra == "complete-api"
|
|
226
|
-
Requires-Dist: openai~=1.88; extra == "complete-api"
|
|
227
222
|
Requires-Dist: oss2==2.18.1; extra == "complete-api"
|
|
228
223
|
Requires-Dist: ossfs==2023.12.0; extra == "complete-api"
|
|
229
224
|
Requires-Dist: plotly~=5.23; extra == "complete-api"
|
|
@@ -16,7 +16,6 @@ import os
|
|
|
16
16
|
import pathlib
|
|
17
17
|
import tempfile
|
|
18
18
|
import typing
|
|
19
|
-
import warnings
|
|
20
19
|
import zipfile
|
|
21
20
|
|
|
22
21
|
import yaml
|
|
@@ -876,36 +875,6 @@ def generate_target_path(item: Artifact, artifact_path, producer):
|
|
|
876
875
|
return f"{artifact_path}{item.key}{suffix}"
|
|
877
876
|
|
|
878
877
|
|
|
879
|
-
# TODO: Remove once data migration v5 is obsolete
|
|
880
|
-
def convert_legacy_artifact_to_new_format(
|
|
881
|
-
legacy_artifact: dict,
|
|
882
|
-
) -> Artifact:
|
|
883
|
-
"""Converts a legacy artifact to a new format.
|
|
884
|
-
:param legacy_artifact: The legacy artifact to convert.
|
|
885
|
-
:return: The converted artifact.
|
|
886
|
-
"""
|
|
887
|
-
artifact_key = legacy_artifact.get("key", "")
|
|
888
|
-
artifact_tag = legacy_artifact.get("tag", "")
|
|
889
|
-
if artifact_tag:
|
|
890
|
-
artifact_key = f"{artifact_key}:{artifact_tag}"
|
|
891
|
-
# TODO: Remove once data migration v5 is obsolete
|
|
892
|
-
warnings.warn(
|
|
893
|
-
f"Converting legacy artifact '{artifact_key}' to new format. This will not be supported in MLRun 1.10.0. "
|
|
894
|
-
f"Make sure to save the artifact/project in the new format.",
|
|
895
|
-
FutureWarning,
|
|
896
|
-
)
|
|
897
|
-
|
|
898
|
-
artifact = mlrun.artifacts.artifact_types.get(
|
|
899
|
-
legacy_artifact.get("kind", "artifact"), mlrun.artifacts.Artifact
|
|
900
|
-
)()
|
|
901
|
-
|
|
902
|
-
artifact.metadata = artifact.metadata.from_dict(legacy_artifact)
|
|
903
|
-
artifact.spec = artifact.spec.from_dict(legacy_artifact)
|
|
904
|
-
artifact.status = artifact.status.from_dict(legacy_artifact)
|
|
905
|
-
|
|
906
|
-
return artifact
|
|
907
|
-
|
|
908
|
-
|
|
909
878
|
def fill_artifact_object_hash(object_dict, iteration=None, producer_id=None):
|
|
910
879
|
# remove artifact related fields before calculating hash
|
|
911
880
|
object_dict.setdefault("metadata", {})
|
|
@@ -110,11 +110,6 @@ class ArtifactProducer:
|
|
|
110
110
|
|
|
111
111
|
def dict_to_artifact(struct: dict) -> Artifact:
|
|
112
112
|
kind = struct.get("kind", "")
|
|
113
|
-
|
|
114
|
-
# TODO: Remove once data migration v5 is obsolete
|
|
115
|
-
if mlrun.utils.is_legacy_artifact(struct):
|
|
116
|
-
return mlrun.artifacts.base.convert_legacy_artifact_to_new_format(struct)
|
|
117
|
-
|
|
118
113
|
artifact_class = artifact_types[kind]
|
|
119
114
|
return artifact_class.from_dict(struct)
|
|
120
115
|
|
{mlrun-1.10.0rc14 → mlrun-1.10.0rc15}/mlrun/common/schemas/model_monitoring/model_endpoints.py
RENAMED
|
@@ -352,6 +352,16 @@ class ApplicationMetricRecord(ApplicationBaseRecord):
|
|
|
352
352
|
type: Literal["metric"] = "metric"
|
|
353
353
|
|
|
354
354
|
|
|
355
|
+
class _DriftBin(NamedTuple):
|
|
356
|
+
timestamp: datetime
|
|
357
|
+
count_suspected: int
|
|
358
|
+
count_detected: int
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
class ModelEndpointDriftValues(BaseModel):
|
|
362
|
+
values: list[_DriftBin]
|
|
363
|
+
|
|
364
|
+
|
|
355
365
|
def _mapping_attributes(
|
|
356
366
|
model_class: type[Model],
|
|
357
367
|
flattened_dictionary: dict,
|
|
@@ -193,7 +193,7 @@ default_config = {
|
|
|
193
193
|
},
|
|
194
194
|
"v3io_framesd": "http://framesd:8080",
|
|
195
195
|
"model_providers": {
|
|
196
|
-
"openai_default_model": "gpt-
|
|
196
|
+
"openai_default_model": "gpt-4o",
|
|
197
197
|
},
|
|
198
198
|
# default node selector to be applied to all functions - json string base64 encoded format
|
|
199
199
|
"default_function_node_selector": "e30=",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
from collections.abc import Awaitable
|
|
15
|
-
from typing import Callable, Optional, TypeVar, Union
|
|
15
|
+
from typing import Any, Callable, Optional, TypeVar, Union
|
|
16
16
|
|
|
17
17
|
import mlrun.errors
|
|
18
18
|
from mlrun.datastore.remote_client import (
|
|
@@ -56,9 +56,16 @@ class ModelProvider(BaseRemoteClient):
|
|
|
56
56
|
)
|
|
57
57
|
self.default_invoke_kwargs = default_invoke_kwargs or {}
|
|
58
58
|
self._client = None
|
|
59
|
-
self._default_operation = None
|
|
60
59
|
self._async_client = None
|
|
61
|
-
|
|
60
|
+
|
|
61
|
+
def get_client_options(self) -> dict:
|
|
62
|
+
"""
|
|
63
|
+
Returns a dictionary containing credentials and configuration
|
|
64
|
+
options required for client creation.
|
|
65
|
+
|
|
66
|
+
:return: A dictionary with client-specific settings.
|
|
67
|
+
"""
|
|
68
|
+
return {}
|
|
62
69
|
|
|
63
70
|
def load_client(self) -> None:
|
|
64
71
|
"""
|
|
@@ -68,8 +75,6 @@ class ModelProvider(BaseRemoteClient):
|
|
|
68
75
|
Subclasses should override this method to:
|
|
69
76
|
- Create and configure the provider-specific client instance.
|
|
70
77
|
- Assign the client instance to self._client.
|
|
71
|
-
- Define a default operation callable (e.g., a method to invoke model completions)
|
|
72
|
-
and assign it to self._default_operation.
|
|
73
78
|
"""
|
|
74
79
|
|
|
75
80
|
raise NotImplementedError("load_client method is not implemented")
|
|
@@ -122,39 +127,62 @@ class ModelProvider(BaseRemoteClient):
|
|
|
122
127
|
"""
|
|
123
128
|
raise NotImplementedError("invoke method is not implemented")
|
|
124
129
|
|
|
125
|
-
def
|
|
130
|
+
def custom_invoke(
|
|
126
131
|
self, operation: Optional[Callable[..., T]] = None, **invoke_kwargs
|
|
127
132
|
) -> Optional[T]:
|
|
128
|
-
|
|
133
|
+
"""
|
|
134
|
+
Invokes a model operation from a provider (e.g., OpenAI, Hugging Face, etc.) with the given keyword arguments.
|
|
135
|
+
|
|
136
|
+
Useful for dynamically calling model methods like text generation, chat completions, or image generation.
|
|
137
|
+
The operation must be a callable that accepts keyword arguments.
|
|
138
|
+
|
|
139
|
+
:param operation: A callable representing the model operation (e.g., a client method).
|
|
140
|
+
:param invoke_kwargs: Keyword arguments to pass to the operation.
|
|
141
|
+
:return: The full response returned by the operation.
|
|
142
|
+
"""
|
|
143
|
+
raise NotImplementedError("custom_invoke method is not implemented")
|
|
129
144
|
|
|
130
145
|
@property
|
|
131
|
-
def client(self):
|
|
146
|
+
def client(self) -> Any:
|
|
132
147
|
return self._client
|
|
133
148
|
|
|
134
149
|
@property
|
|
135
|
-
def model(self):
|
|
150
|
+
def model(self) -> Optional[str]:
|
|
136
151
|
return None
|
|
137
152
|
|
|
138
|
-
def get_invoke_kwargs(self, invoke_kwargs):
|
|
153
|
+
def get_invoke_kwargs(self, invoke_kwargs) -> dict:
|
|
139
154
|
kwargs = self.default_invoke_kwargs.copy()
|
|
140
155
|
kwargs.update(invoke_kwargs)
|
|
141
156
|
return kwargs
|
|
142
157
|
|
|
143
158
|
@property
|
|
144
|
-
def async_client(self):
|
|
159
|
+
def async_client(self) -> Any:
|
|
145
160
|
if not self.support_async:
|
|
146
161
|
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
147
162
|
f"{self.__class__.__name__} does not support async operations"
|
|
148
163
|
)
|
|
149
164
|
return self._async_client
|
|
150
165
|
|
|
151
|
-
async def
|
|
152
|
-
|
|
166
|
+
async def async_custom_invoke(
|
|
167
|
+
self, operation: Optional[Callable[..., Awaitable[T]]], **invoke_kwargs
|
|
168
|
+
) -> Optional[T]:
|
|
169
|
+
"""
|
|
170
|
+
Asynchronously invokes a model operation from a provider (e.g., OpenAI, Hugging Face, etc.)
|
|
171
|
+
with the given keyword arguments.
|
|
172
|
+
|
|
173
|
+
The operation must be an async callable (e.g., a method from an async client) that accepts keyword arguments.
|
|
174
|
+
|
|
175
|
+
:param operation: An async callable representing the model operation (e.g., an async_client method).
|
|
176
|
+
:param invoke_kwargs: Keyword arguments to pass to the operation.
|
|
177
|
+
:return: The full response returned by the awaited operation.
|
|
178
|
+
"""
|
|
179
|
+
raise NotImplementedError("async_custom_invoke is not implemented")
|
|
153
180
|
|
|
154
181
|
async def async_invoke(
|
|
155
182
|
self,
|
|
156
183
|
messages: Optional[list[dict]] = None,
|
|
157
184
|
as_str: bool = False,
|
|
158
185
|
**invoke_kwargs,
|
|
159
|
-
) ->
|
|
186
|
+
) -> Optional[str]:
|
|
187
|
+
"""Async version of `invoke`. See `invoke` for full documentation."""
|
|
160
188
|
raise NotImplementedError("async_invoke is not implemented")
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
14
|
+
from collections.abc import Awaitable
|
|
15
15
|
from typing import Callable, Optional, TypeVar, Union
|
|
16
16
|
|
|
17
17
|
import mlrun
|
|
@@ -33,6 +33,8 @@ class OpenAIProvider(ModelProvider):
|
|
|
33
33
|
operations tailored to the OpenAI API.
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
|
+
support_async = True
|
|
37
|
+
|
|
36
38
|
def __init__(
|
|
37
39
|
self,
|
|
38
40
|
parent,
|
|
@@ -67,7 +69,7 @@ class OpenAIProvider(ModelProvider):
|
|
|
67
69
|
return endpoint, subpath
|
|
68
70
|
|
|
69
71
|
@property
|
|
70
|
-
def model(self):
|
|
72
|
+
def model(self) -> Optional[str]:
|
|
71
73
|
return self.endpoint
|
|
72
74
|
|
|
73
75
|
def load_client(self) -> None:
|
|
@@ -76,23 +78,20 @@ class OpenAIProvider(ModelProvider):
|
|
|
76
78
|
|
|
77
79
|
This method imports the `OpenAI` class from the `openai` package, instantiates
|
|
78
80
|
a client with the given keyword arguments (`self.options`), and assigns it to
|
|
79
|
-
`self._client`.
|
|
80
|
-
|
|
81
|
-
It also sets the default operation to `self.client.chat.completions.create`, which is
|
|
82
|
-
typically used for invoking chat-based model completions.
|
|
81
|
+
`self._client` and `self._async_client`.
|
|
83
82
|
|
|
84
83
|
Raises:
|
|
85
84
|
ImportError: If the `openai` package is not installed.
|
|
86
85
|
"""
|
|
87
86
|
try:
|
|
88
|
-
from openai import OpenAI # noqa
|
|
87
|
+
from openai import OpenAI, AsyncOpenAI # noqa
|
|
89
88
|
|
|
90
89
|
self._client = OpenAI(**self.options)
|
|
91
|
-
self.
|
|
90
|
+
self._async_client = AsyncOpenAI(**self.options)
|
|
92
91
|
except ImportError as exc:
|
|
93
92
|
raise ImportError("openai package is not installed") from exc
|
|
94
93
|
|
|
95
|
-
def get_client_options(self):
|
|
94
|
+
def get_client_options(self) -> dict:
|
|
96
95
|
res = dict(
|
|
97
96
|
api_key=self._get_secret_or_env("OPENAI_API_KEY"),
|
|
98
97
|
organization=self._get_secret_or_env("OPENAI_ORG_ID"),
|
|
@@ -103,14 +102,69 @@ class OpenAIProvider(ModelProvider):
|
|
|
103
102
|
)
|
|
104
103
|
return self._sanitize_options(res)
|
|
105
104
|
|
|
106
|
-
def
|
|
105
|
+
def custom_invoke(
|
|
107
106
|
self, operation: Optional[Callable[..., T]] = None, **invoke_kwargs
|
|
108
107
|
) -> Optional[T]:
|
|
108
|
+
"""
|
|
109
|
+
OpenAI-specific implementation of `ModelProvider.custom_invoke`.
|
|
110
|
+
|
|
111
|
+
Invokes an OpenAI model operation using the sync client. For full details, see
|
|
112
|
+
`ModelProvider.custom_invoke`.
|
|
113
|
+
|
|
114
|
+
Example:
|
|
115
|
+
```python
|
|
116
|
+
result = openai_model_provider.invoke(
|
|
117
|
+
openai_model_provider.client.images.generate,
|
|
118
|
+
prompt="A futuristic cityscape at sunset",
|
|
119
|
+
n=1,
|
|
120
|
+
size="1024x1024",
|
|
121
|
+
)
|
|
122
|
+
```
|
|
123
|
+
:param operation: Same as ModelProvider.custom_invoke.
|
|
124
|
+
:param invoke_kwargs: Same as ModelProvider.custom_invoke.
|
|
125
|
+
:return: Same as ModelProvider.custom_invoke.
|
|
126
|
+
|
|
127
|
+
"""
|
|
109
128
|
invoke_kwargs = self.get_invoke_kwargs(invoke_kwargs)
|
|
110
129
|
if operation:
|
|
111
130
|
return operation(**invoke_kwargs, model=self.model)
|
|
112
131
|
else:
|
|
113
|
-
return self.
|
|
132
|
+
return self.client.chat.completions.create(
|
|
133
|
+
**invoke_kwargs, model=self.model
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
async def async_custom_invoke(
|
|
137
|
+
self,
|
|
138
|
+
operation: Optional[Callable[..., Awaitable[T]]] = None,
|
|
139
|
+
**invoke_kwargs,
|
|
140
|
+
) -> Optional[T]:
|
|
141
|
+
"""
|
|
142
|
+
OpenAI-specific implementation of `ModelProvider.async_custom_invoke`.
|
|
143
|
+
|
|
144
|
+
Invokes an OpenAI model operation using the async client. For full details, see
|
|
145
|
+
`ModelProvider.async_custom_invoke`.
|
|
146
|
+
|
|
147
|
+
Example:
|
|
148
|
+
```python
|
|
149
|
+
result = openai_model_provider.invoke(
|
|
150
|
+
openai_model_provider.async_client.images.generate,
|
|
151
|
+
prompt="A futuristic cityscape at sunset",
|
|
152
|
+
n=1,
|
|
153
|
+
size="1024x1024",
|
|
154
|
+
)
|
|
155
|
+
```
|
|
156
|
+
:param operation: Same as ModelProvider.async_custom_invoke.
|
|
157
|
+
:param invoke_kwargs: Same as ModelProvider.async_custom_invoke.
|
|
158
|
+
:return: Same as ModelProvider.async_custom_invoke.
|
|
159
|
+
|
|
160
|
+
"""
|
|
161
|
+
invoke_kwargs = self.get_invoke_kwargs(invoke_kwargs)
|
|
162
|
+
if operation:
|
|
163
|
+
return await operation(**invoke_kwargs, model=self.model)
|
|
164
|
+
else:
|
|
165
|
+
return await self.async_client.chat.completions.create(
|
|
166
|
+
**invoke_kwargs, model=self.model
|
|
167
|
+
)
|
|
114
168
|
|
|
115
169
|
def invoke(
|
|
116
170
|
self,
|
|
@@ -133,12 +187,39 @@ class OpenAIProvider(ModelProvider):
|
|
|
133
187
|
|
|
134
188
|
:param invoke_kwargs:
|
|
135
189
|
Same as ModelProvider.invoke.
|
|
190
|
+
:return: Same as ModelProvider.invoke.
|
|
136
191
|
|
|
137
192
|
"""
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
193
|
+
response = self.custom_invoke(messages=messages, **invoke_kwargs)
|
|
194
|
+
if as_str:
|
|
195
|
+
return response.choices[0].message.content
|
|
196
|
+
return response
|
|
197
|
+
|
|
198
|
+
async def async_invoke(
|
|
199
|
+
self,
|
|
200
|
+
messages: Optional[list[dict]] = None,
|
|
201
|
+
as_str: bool = False,
|
|
202
|
+
**invoke_kwargs,
|
|
203
|
+
) -> str:
|
|
204
|
+
"""
|
|
205
|
+
OpenAI-specific implementation of `ModelProvider.async_invoke`.
|
|
206
|
+
Invokes an OpenAI model operation using the async client.
|
|
207
|
+
For full details, see `ModelProvider.async_invoke`.
|
|
208
|
+
|
|
209
|
+
:param messages: Same as ModelProvider.async_invoke.
|
|
210
|
+
|
|
211
|
+
:param as_str: bool
|
|
212
|
+
If `True`, returns only the main content of the first response
|
|
213
|
+
(`response.choices[0].message.content`).
|
|
214
|
+
If `False`, returns the full awaited response object, whose type depends on
|
|
215
|
+
the specific OpenAI SDK operation used (e.g., chat completion, completion, etc.).
|
|
216
|
+
|
|
217
|
+
:param invoke_kwargs:
|
|
218
|
+
Same as ModelProvider.async_invoke.
|
|
219
|
+
:returns Same as ModelProvider.async_invoke.
|
|
220
|
+
|
|
221
|
+
"""
|
|
222
|
+
response = await self.async_custom_invoke(messages=messages, **invoke_kwargs)
|
|
142
223
|
if as_str:
|
|
143
224
|
return response.choices[0].message.content
|
|
144
225
|
return response
|
|
@@ -638,6 +638,11 @@ class RunDBInterface(ABC):
|
|
|
638
638
|
):
|
|
639
639
|
pass
|
|
640
640
|
|
|
641
|
+
def wait_for_background_task_to_reach_terminal_state(
|
|
642
|
+
self, name: str, project: str = ""
|
|
643
|
+
) -> mlrun.common.schemas.BackgroundTask:
|
|
644
|
+
pass
|
|
645
|
+
|
|
641
646
|
@abstractmethod
|
|
642
647
|
def retry_pipeline(
|
|
643
648
|
self,
|
|
@@ -1145,3 +1150,12 @@ class RunDBInterface(ABC):
|
|
|
1145
1150
|
@abstractmethod
|
|
1146
1151
|
def get_project_summary(self, project: str) -> mlrun.common.schemas.ProjectSummary:
|
|
1147
1152
|
pass
|
|
1153
|
+
|
|
1154
|
+
@abstractmethod
|
|
1155
|
+
def get_drift_over_time(
|
|
1156
|
+
self,
|
|
1157
|
+
project: str,
|
|
1158
|
+
start: Optional[datetime.datetime] = None,
|
|
1159
|
+
end: Optional[datetime.datetime] = None,
|
|
1160
|
+
) -> mlrun.common.schemas.model_monitoring.ModelEndpointDriftValues:
|
|
1161
|
+
pass
|
|
@@ -757,7 +757,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
757
757
|
)
|
|
758
758
|
if response.status_code == http.HTTPStatus.ACCEPTED:
|
|
759
759
|
background_task = mlrun.common.schemas.BackgroundTask(**response.json())
|
|
760
|
-
return self.
|
|
760
|
+
return self.wait_for_background_task_to_reach_terminal_state(
|
|
761
761
|
background_task.metadata.name, project=project
|
|
762
762
|
)
|
|
763
763
|
return None
|
|
@@ -784,7 +784,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
784
784
|
)
|
|
785
785
|
if response.status_code == http.HTTPStatus.ACCEPTED:
|
|
786
786
|
background_task = mlrun.common.schemas.BackgroundTask(**response.json())
|
|
787
|
-
background_task = self.
|
|
787
|
+
background_task = self.wait_for_background_task_to_reach_terminal_state(
|
|
788
788
|
background_task.metadata.name, project=project
|
|
789
789
|
)
|
|
790
790
|
if (
|
|
@@ -839,7 +839,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
839
839
|
)
|
|
840
840
|
if response.status_code == http.HTTPStatus.ACCEPTED:
|
|
841
841
|
background_task = mlrun.common.schemas.BackgroundTask(**response.json())
|
|
842
|
-
background_task = self.
|
|
842
|
+
background_task = self.wait_for_background_task_to_reach_terminal_state(
|
|
843
843
|
background_task.metadata.name, project=project
|
|
844
844
|
)
|
|
845
845
|
if (
|
|
@@ -1485,7 +1485,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
1485
1485
|
"Function is being deleted", project_name=project, function_name=name
|
|
1486
1486
|
)
|
|
1487
1487
|
background_task = mlrun.common.schemas.BackgroundTask(**response.json())
|
|
1488
|
-
background_task = self.
|
|
1488
|
+
background_task = self.wait_for_background_task_to_reach_terminal_state(
|
|
1489
1489
|
background_task.metadata.name, project=project
|
|
1490
1490
|
)
|
|
1491
1491
|
if (
|
|
@@ -3274,7 +3274,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
3274
3274
|
if response.status_code == http.HTTPStatus.ACCEPTED:
|
|
3275
3275
|
logger.info("Waiting for project to be deleted", project_name=name)
|
|
3276
3276
|
background_task = mlrun.common.schemas.BackgroundTask(**response.json())
|
|
3277
|
-
background_task = self.
|
|
3277
|
+
background_task = self.wait_for_background_task_to_reach_terminal_state(
|
|
3278
3278
|
background_task.metadata.name
|
|
3279
3279
|
)
|
|
3280
3280
|
if (
|
|
@@ -3387,7 +3387,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
3387
3387
|
_verify_project_in_terminal_state,
|
|
3388
3388
|
)
|
|
3389
3389
|
|
|
3390
|
-
def
|
|
3390
|
+
def wait_for_background_task_to_reach_terminal_state(
|
|
3391
3391
|
self, name: str, project: str = ""
|
|
3392
3392
|
) -> mlrun.common.schemas.BackgroundTask:
|
|
3393
3393
|
def _verify_background_task_in_terminal_state():
|
|
@@ -3408,6 +3408,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
3408
3408
|
logger,
|
|
3409
3409
|
False,
|
|
3410
3410
|
_verify_background_task_in_terminal_state,
|
|
3411
|
+
fatal_exceptions=(mlrun.errors.MLRunAccessDeniedError,),
|
|
3411
3412
|
)
|
|
3412
3413
|
|
|
3413
3414
|
def create_project_secrets(
|
|
@@ -4082,7 +4083,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
4082
4083
|
**response.json()
|
|
4083
4084
|
).background_tasks
|
|
4084
4085
|
for task in background_tasks:
|
|
4085
|
-
task = self.
|
|
4086
|
+
task = self.wait_for_background_task_to_reach_terminal_state(
|
|
4086
4087
|
task.metadata.name, project=project
|
|
4087
4088
|
)
|
|
4088
4089
|
if (
|
|
@@ -4119,7 +4120,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
4119
4120
|
**response.json()
|
|
4120
4121
|
).background_tasks
|
|
4121
4122
|
for task in background_tasks:
|
|
4122
|
-
task = self.
|
|
4123
|
+
task = self.wait_for_background_task_to_reach_terminal_state(
|
|
4123
4124
|
task.metadata.name, project=project
|
|
4124
4125
|
)
|
|
4125
4126
|
if (
|
|
@@ -5158,6 +5159,38 @@ class HTTPRunDB(RunDBInterface):
|
|
|
5158
5159
|
response = self.api_call("GET", endpoint_path, error_message)
|
|
5159
5160
|
return mlrun.common.schemas.ProjectSummary(**response.json())
|
|
5160
5161
|
|
|
5162
|
+
def get_drift_over_time(
|
|
5163
|
+
self,
|
|
5164
|
+
project: str,
|
|
5165
|
+
start: Optional[datetime] = None,
|
|
5166
|
+
end: Optional[datetime] = None,
|
|
5167
|
+
) -> mlrun.common.schemas.model_monitoring.ModelEndpointDriftValues:
|
|
5168
|
+
"""
|
|
5169
|
+
Get drift counts over time for the project.
|
|
5170
|
+
|
|
5171
|
+
This method returns a list of tuples, each representing a time-interval (in a granularity set by the
|
|
5172
|
+
duration of the given time range) and the number of suspected drifts and detected drifts in that interval.
|
|
5173
|
+
For a range of 6 hours or less, the granularity is 10 minute, for a range of 2 hours to 72 hours, the
|
|
5174
|
+
granularity is 1 hour, and for a range of more than 72 hours, the granularity is 24 hours.
|
|
5175
|
+
|
|
5176
|
+
:param project: The name of the project for which to retrieve drift counts.
|
|
5177
|
+
:param start: Start time of the range to retrieve drift counts from.
|
|
5178
|
+
:param end: End time of the range to retrieve drift counts from.
|
|
5179
|
+
|
|
5180
|
+
:return: A ModelEndpointDriftValues object containing the drift counts over time.
|
|
5181
|
+
"""
|
|
5182
|
+
endpoint_path = f"projects/{project}/model-endpoints/drift-over-time"
|
|
5183
|
+
error_message = f"Failed retrieving drift data for {project}"
|
|
5184
|
+
response = self.api_call(
|
|
5185
|
+
method="GET",
|
|
5186
|
+
path=endpoint_path,
|
|
5187
|
+
error=error_message,
|
|
5188
|
+
params={"start": start, "end": end},
|
|
5189
|
+
)
|
|
5190
|
+
return mlrun.common.schemas.model_monitoring.ModelEndpointDriftValues(
|
|
5191
|
+
**response.json()
|
|
5192
|
+
)
|
|
5193
|
+
|
|
5161
5194
|
@staticmethod
|
|
5162
5195
|
def _parse_labels(
|
|
5163
5196
|
labels: Optional[Union[str, dict[str, Optional[str]], list[str]]],
|
|
@@ -5478,7 +5511,7 @@ class HTTPRunDB(RunDBInterface):
|
|
|
5478
5511
|
def _wait_for_background_task_from_response(self, response):
|
|
5479
5512
|
if response.status_code == http.HTTPStatus.ACCEPTED:
|
|
5480
5513
|
background_task = mlrun.common.schemas.BackgroundTask(**response.json())
|
|
5481
|
-
return self.
|
|
5514
|
+
return self.wait_for_background_task_to_reach_terminal_state(
|
|
5482
5515
|
background_task.metadata.name
|
|
5483
5516
|
)
|
|
5484
5517
|
return None
|
|
@@ -980,3 +980,11 @@ class NopDB(RunDBInterface):
|
|
|
980
980
|
|
|
981
981
|
def get_project_summary(self, project: str):
|
|
982
982
|
pass
|
|
983
|
+
|
|
984
|
+
def get_drift_over_time(
|
|
985
|
+
self,
|
|
986
|
+
project: str,
|
|
987
|
+
start: Optional[datetime.datetime] = None,
|
|
988
|
+
end: Optional[datetime.datetime] = None,
|
|
989
|
+
) -> mlrun.common.schemas.model_monitoring.ModelEndpointDriftValues:
|
|
990
|
+
pass
|