mlrun 1.10.0rc12__tar.gz → 1.10.0rc14__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.0rc12/mlrun.egg-info → mlrun-1.10.0rc14}/PKG-INFO +2 -2
- mlrun-1.10.0rc14/mlrun/artifacts/llm_prompt.py +255 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/constants.py +0 -1
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/__init__.py +1 -1
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/model_endpoints.py +1 -1
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/serving.py +7 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/workflow.py +0 -1
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/config.py +2 -0
- mlrun-1.10.0rc14/mlrun/datastore/model_provider/model_provider.py +160 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/model_provider/openai_provider.py +52 -28
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/remote_client.py +11 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/execution.py +19 -5
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model.py +15 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +175 -8
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/pipelines.py +40 -18
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/project.py +15 -4
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/run.py +25 -2
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/__init__.py +2 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/server.py +1 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/states.py +521 -27
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/system_steps.py +6 -2
- mlrun-1.10.0rc14/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14/mlrun.egg-info}/PKG-INFO +2 -2
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/requires.txt +1 -1
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/requirements.txt +1 -1
- mlrun-1.10.0rc12/mlrun/artifacts/llm_prompt.py +0 -165
- mlrun-1.10.0rc12/mlrun/datastore/model_provider/model_provider.py +0 -82
- mlrun-1.10.0rc12/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/LICENSE +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/Makefile +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/README.md +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/dependencies.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/dev-requirements.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/dockerfiles/mlrun-api/requirements.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/function.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/model.bst +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/params.csv +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/training.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/extras-requirements.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/api/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/document.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/manager.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/function.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/httpdb.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/nopdb.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/local.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/api.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/controller.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/_schedules.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/_stats.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/stream_processing.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/writer.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/platforms/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/daskjob.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/local.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mpijob/abstract.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mpijob/v1.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/application/application.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/function.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/serving.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/pod.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/remotesparkjob.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/remote.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/helpers.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification_pusher.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/retryer.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/SOURCES.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/packages.py +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/pyproject.toml +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/setup.cfg +0 -0
- {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/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.0rc14
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -44,7 +44,7 @@ Requires-Dist: semver~=3.0
|
|
|
44
44
|
Requires-Dist: dependency-injector~=4.41
|
|
45
45
|
Requires-Dist: fsspec<2024.7,>=2023.9.2
|
|
46
46
|
Requires-Dist: v3iofs~=0.1.17
|
|
47
|
-
Requires-Dist: storey~=1.10.
|
|
47
|
+
Requires-Dist: storey~=1.10.8
|
|
48
48
|
Requires-Dist: inflection~=0.5.0
|
|
49
49
|
Requires-Dist: python-dotenv~=1.0
|
|
50
50
|
Requires-Dist: setuptools>=75.2
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Copyright 2025 Iguazio
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
import json
|
|
15
|
+
import tempfile
|
|
16
|
+
from typing import Optional, Union
|
|
17
|
+
|
|
18
|
+
import mlrun
|
|
19
|
+
import mlrun.artifacts.model as model_art
|
|
20
|
+
import mlrun.common.schemas
|
|
21
|
+
from mlrun.artifacts import Artifact, ArtifactMetadata, ArtifactSpec
|
|
22
|
+
from mlrun.utils import StorePrefix, logger
|
|
23
|
+
|
|
24
|
+
MAX_PROMPT_LENGTH = 1024
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class LLMPromptArtifactSpec(ArtifactSpec):
|
|
28
|
+
_dict_fields = ArtifactSpec._dict_fields + [
|
|
29
|
+
"prompt_template",
|
|
30
|
+
"prompt_legend",
|
|
31
|
+
"model_configuration",
|
|
32
|
+
"description",
|
|
33
|
+
]
|
|
34
|
+
PROMPT_TEMPLATE_KEYS = ("content", "role")
|
|
35
|
+
PROMPT_LEGENDS_KEYS = ("field", "description")
|
|
36
|
+
|
|
37
|
+
def __init__(
|
|
38
|
+
self,
|
|
39
|
+
model_artifact: Union[model_art.ModelArtifact, str] = None,
|
|
40
|
+
prompt_template: Optional[list[dict]] = None,
|
|
41
|
+
prompt_path: Optional[str] = None,
|
|
42
|
+
prompt_legend: Optional[dict] = None,
|
|
43
|
+
model_configuration: Optional[dict] = None,
|
|
44
|
+
description: Optional[str] = None,
|
|
45
|
+
target_path: Optional[str] = None,
|
|
46
|
+
**kwargs,
|
|
47
|
+
):
|
|
48
|
+
if prompt_template and prompt_path:
|
|
49
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
50
|
+
"Cannot specify both 'prompt_template' and 'prompt_path'"
|
|
51
|
+
)
|
|
52
|
+
if prompt_legend:
|
|
53
|
+
self._verify_prompt_legend(prompt_legend)
|
|
54
|
+
if prompt_path:
|
|
55
|
+
self._verify_prompt_path(prompt_path)
|
|
56
|
+
if prompt_template:
|
|
57
|
+
self._verify_prompt_template(prompt_template)
|
|
58
|
+
super().__init__(
|
|
59
|
+
src_path=prompt_path,
|
|
60
|
+
target_path=target_path,
|
|
61
|
+
parent_uri=model_artifact.uri
|
|
62
|
+
if isinstance(model_artifact, model_art.ModelArtifact)
|
|
63
|
+
else model_artifact,
|
|
64
|
+
**kwargs,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
self.prompt_template = prompt_template
|
|
68
|
+
self.prompt_legend = prompt_legend
|
|
69
|
+
self.model_configuration = model_configuration
|
|
70
|
+
self.description = description
|
|
71
|
+
self._model_artifact = (
|
|
72
|
+
model_artifact
|
|
73
|
+
if isinstance(model_artifact, model_art.ModelArtifact)
|
|
74
|
+
else None
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
def _verify_prompt_template(self, prompt_template):
|
|
78
|
+
if not (
|
|
79
|
+
isinstance(prompt_template, list)
|
|
80
|
+
and all(isinstance(item, dict) for item in prompt_template)
|
|
81
|
+
):
|
|
82
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
83
|
+
"Expected prompt_template to be a list of dicts"
|
|
84
|
+
)
|
|
85
|
+
keys_to_pop = []
|
|
86
|
+
for message in prompt_template:
|
|
87
|
+
for key in message.keys():
|
|
88
|
+
if isinstance(key, str):
|
|
89
|
+
if key.lower() not in self.PROMPT_TEMPLATE_KEYS:
|
|
90
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
91
|
+
f"Expected prompt_template to contain dict that "
|
|
92
|
+
f"only has keys from {self.PROMPT_TEMPLATE_KEYS}"
|
|
93
|
+
)
|
|
94
|
+
else:
|
|
95
|
+
if not key.islower():
|
|
96
|
+
message[key.lower()] = message[key]
|
|
97
|
+
keys_to_pop.append(key)
|
|
98
|
+
else:
|
|
99
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
100
|
+
f"Expected prompt_template to contain dict that only"
|
|
101
|
+
f" has str keys got {key} of type {type(key)}"
|
|
102
|
+
)
|
|
103
|
+
for key_to_pop in keys_to_pop:
|
|
104
|
+
message.pop(key_to_pop)
|
|
105
|
+
|
|
106
|
+
@property
|
|
107
|
+
def model_uri(self):
|
|
108
|
+
return self.parent_uri
|
|
109
|
+
|
|
110
|
+
@staticmethod
|
|
111
|
+
def _verify_prompt_legend(prompt_legend: dict):
|
|
112
|
+
if prompt_legend is None:
|
|
113
|
+
return True
|
|
114
|
+
for place_holder, body_map in prompt_legend.items():
|
|
115
|
+
if isinstance(body_map, dict):
|
|
116
|
+
if body_map.get("field") is None:
|
|
117
|
+
body_map["field"] = place_holder
|
|
118
|
+
body_map["description"] = body_map.get("description")
|
|
119
|
+
if diff := set(body_map.keys()) - set(
|
|
120
|
+
LLMPromptArtifactSpec.PROMPT_LEGENDS_KEYS
|
|
121
|
+
):
|
|
122
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
123
|
+
"prompt_legend values must contain only 'field' and "
|
|
124
|
+
f"'description' keys, got extra fields: {diff}"
|
|
125
|
+
)
|
|
126
|
+
else:
|
|
127
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
128
|
+
f"Wrong prompt_legend format, {place_holder} is not mapped to dict"
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
@staticmethod
|
|
132
|
+
def _verify_prompt_path(prompt_path: str):
|
|
133
|
+
with mlrun.datastore.store_manager.object(prompt_path).open(mode="r") as p_file:
|
|
134
|
+
try:
|
|
135
|
+
json.load(p_file)
|
|
136
|
+
except json.JSONDecodeError:
|
|
137
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
138
|
+
f"Failed on decoding str in path "
|
|
139
|
+
f"{prompt_path} expected file to contain a "
|
|
140
|
+
f"json format."
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
def get_body(self):
|
|
144
|
+
if self.prompt_template:
|
|
145
|
+
return json.dumps(self.prompt_template)
|
|
146
|
+
else:
|
|
147
|
+
return None
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class LLMPromptArtifact(Artifact):
|
|
151
|
+
"""
|
|
152
|
+
LLM Prompt Artifact
|
|
153
|
+
|
|
154
|
+
This artifact is used to store and manage LLM prompts.
|
|
155
|
+
Stores the prompt string/path and a link to the related model artifact.
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
kind = mlrun.common.schemas.ArtifactCategories.llm_prompt
|
|
159
|
+
_store_prefix = StorePrefix.LLMPrompt
|
|
160
|
+
|
|
161
|
+
def __init__(
|
|
162
|
+
self,
|
|
163
|
+
key: Optional[str] = None,
|
|
164
|
+
project: Optional[str] = None,
|
|
165
|
+
model_artifact: Union[
|
|
166
|
+
model_art.ModelArtifact, str
|
|
167
|
+
] = None, # TODO support partial model uri
|
|
168
|
+
prompt_template: Optional[list[dict]] = None,
|
|
169
|
+
prompt_path: Optional[str] = None,
|
|
170
|
+
prompt_legend: Optional[dict] = None,
|
|
171
|
+
model_configuration: Optional[dict] = None,
|
|
172
|
+
description: Optional[str] = None,
|
|
173
|
+
target_path=None,
|
|
174
|
+
**kwargs,
|
|
175
|
+
):
|
|
176
|
+
llm_prompt_spec = LLMPromptArtifactSpec(
|
|
177
|
+
prompt_template=prompt_template,
|
|
178
|
+
prompt_path=prompt_path,
|
|
179
|
+
prompt_legend=prompt_legend,
|
|
180
|
+
model_artifact=model_artifact,
|
|
181
|
+
model_configuration=model_configuration,
|
|
182
|
+
target_path=target_path,
|
|
183
|
+
description=description,
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
llm_metadata = ArtifactMetadata(
|
|
187
|
+
key=key,
|
|
188
|
+
project=project or "",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
super().__init__(spec=llm_prompt_spec, metadata=llm_metadata, **kwargs)
|
|
192
|
+
|
|
193
|
+
@property
|
|
194
|
+
def spec(self) -> LLMPromptArtifactSpec:
|
|
195
|
+
return self._spec
|
|
196
|
+
|
|
197
|
+
@spec.setter
|
|
198
|
+
def spec(self, spec: LLMPromptArtifactSpec):
|
|
199
|
+
self._spec = self._verify_dict(spec, "spec", LLMPromptArtifactSpec)
|
|
200
|
+
|
|
201
|
+
@property
|
|
202
|
+
def model_artifact(self) -> Optional[model_art.ModelArtifact]:
|
|
203
|
+
"""
|
|
204
|
+
Get the model artifact linked to this prompt artifact.
|
|
205
|
+
"""
|
|
206
|
+
if self.spec._model_artifact:
|
|
207
|
+
return self.spec._model_artifact
|
|
208
|
+
if self.spec.model_uri:
|
|
209
|
+
self.spec._model_artifact, _ = (
|
|
210
|
+
mlrun.datastore.store_manager.get_store_artifact(self.spec.model_uri)
|
|
211
|
+
)
|
|
212
|
+
return self.spec._model_artifact
|
|
213
|
+
return None
|
|
214
|
+
|
|
215
|
+
def read_prompt(self) -> Optional[Union[str, list[dict]]]:
|
|
216
|
+
"""
|
|
217
|
+
Read the prompt json from the artifact or if provided prompt template.
|
|
218
|
+
@:param as_str: True to return the prompt string or a list of dicts.
|
|
219
|
+
@:return prompt string or list of dicts
|
|
220
|
+
"""
|
|
221
|
+
if self.spec.prompt_template:
|
|
222
|
+
return self.spec.prompt_template
|
|
223
|
+
if self.spec.target_path:
|
|
224
|
+
with mlrun.datastore.store_manager.object(url=self.spec.target_path).open(
|
|
225
|
+
mode="r"
|
|
226
|
+
) as p_file:
|
|
227
|
+
try:
|
|
228
|
+
return json.load(p_file)
|
|
229
|
+
except json.JSONDecodeError:
|
|
230
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
231
|
+
f"Failed on decoding str in path "
|
|
232
|
+
f"{self.spec.target_path} expected file to contain a "
|
|
233
|
+
f"json format."
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
def before_log(self):
|
|
237
|
+
"""
|
|
238
|
+
Prepare the artifact before logging.
|
|
239
|
+
This method is called before the artifact is logged.
|
|
240
|
+
"""
|
|
241
|
+
if (
|
|
242
|
+
self.spec.prompt_template
|
|
243
|
+
and len(str(self.spec.prompt_template)) > MAX_PROMPT_LENGTH
|
|
244
|
+
):
|
|
245
|
+
logger.debug(
|
|
246
|
+
"Prompt string exceeds maximum length, saving to a temporary file."
|
|
247
|
+
)
|
|
248
|
+
with tempfile.NamedTemporaryFile(
|
|
249
|
+
delete=False, mode="w", suffix=".json"
|
|
250
|
+
) as temp_file:
|
|
251
|
+
temp_file.write(json.dumps(self.spec.prompt_template))
|
|
252
|
+
self.spec.src_path = temp_file.name
|
|
253
|
+
self.spec.prompt_template = None
|
|
254
|
+
self._src_is_temp = True
|
|
255
|
+
super().before_log()
|
|
@@ -214,7 +214,7 @@ from .secret import (
|
|
|
214
214
|
SecretsData,
|
|
215
215
|
UserSecretCreationRequest,
|
|
216
216
|
)
|
|
217
|
-
from .serving import ModelRunnerStepData, MonitoringData
|
|
217
|
+
from .serving import ModelRunnerStepData, ModelsData, MonitoringData
|
|
218
218
|
from .tag import Tag, TagObjects
|
|
219
219
|
from .workflow import (
|
|
220
220
|
GetWorkflowResponse,
|
{mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/model_endpoints.py
RENAMED
|
@@ -336,8 +336,8 @@ class ModelEndpointMonitoringMetricNoData(_ModelEndpointMonitoringMetricValuesBa
|
|
|
336
336
|
|
|
337
337
|
class ApplicationBaseRecord(BaseModel):
|
|
338
338
|
type: Literal["metric", "result"]
|
|
339
|
-
time: datetime
|
|
340
339
|
value: float
|
|
340
|
+
time: Optional[datetime] = None
|
|
341
341
|
|
|
342
342
|
|
|
343
343
|
class ApplicationResultRecord(ApplicationBaseRecord):
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
+
import enum
|
|
16
|
+
|
|
15
17
|
from pydantic.v1 import BaseModel
|
|
16
18
|
|
|
17
19
|
from mlrun.common.types import StrEnum
|
|
@@ -40,3 +42,8 @@ class MonitoringData(StrEnum):
|
|
|
40
42
|
MODEL_PATH = "model_path"
|
|
41
43
|
MODEL_ENDPOINT_UID = "model_endpoint_uid"
|
|
42
44
|
MODEL_CLASS = "model_class"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class ModelsData(enum.Enum):
|
|
48
|
+
MODEL_CLASS = 0
|
|
49
|
+
MODEL_PARAMETERS = 1
|
|
@@ -49,7 +49,6 @@ class WorkflowRequest(pydantic.v1.BaseModel):
|
|
|
49
49
|
class RerunWorkflowRequest(pydantic.v1.BaseModel):
|
|
50
50
|
run_name: typing.Optional[str] = None
|
|
51
51
|
run_id: typing.Optional[str] = None
|
|
52
|
-
original_workflow_id: typing.Optional[str] = None
|
|
53
52
|
notifications: typing.Optional[list[Notification]] = None
|
|
54
53
|
workflow_runner_node_selector: typing.Optional[dict[str, str]] = None
|
|
55
54
|
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Copyright 2025 Iguazio
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
from collections.abc import Awaitable
|
|
15
|
+
from typing import Callable, Optional, TypeVar, Union
|
|
16
|
+
|
|
17
|
+
import mlrun.errors
|
|
18
|
+
from mlrun.datastore.remote_client import (
|
|
19
|
+
BaseRemoteClient,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
T = TypeVar("T")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ModelProvider(BaseRemoteClient):
|
|
26
|
+
"""
|
|
27
|
+
The ModelProvider class is an abstract base for integrating with external
|
|
28
|
+
model providers, primarily generative AI (GenAI) services.
|
|
29
|
+
|
|
30
|
+
Designed to be subclassed, it defines a consistent interface and shared
|
|
31
|
+
functionality for tasks such as text generation, embeddings, and invoking
|
|
32
|
+
fine-tuned models. Subclasses should implement provider-specific logic,
|
|
33
|
+
including SDK client initialization, model invocation, and custom operations.
|
|
34
|
+
|
|
35
|
+
Key Features:
|
|
36
|
+
- Establishes a consistent, reusable client management for model provider integrations.
|
|
37
|
+
- Simplifies GenAI service integration by abstracting common operations.
|
|
38
|
+
- Reduces duplication through shared components for common tasks.
|
|
39
|
+
- Holds default invocation parameters (e.g., temperature, max_tokens) to avoid boilerplate
|
|
40
|
+
code and promote consistency.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
support_async = False
|
|
44
|
+
|
|
45
|
+
def __init__(
|
|
46
|
+
self,
|
|
47
|
+
parent,
|
|
48
|
+
kind,
|
|
49
|
+
name,
|
|
50
|
+
endpoint="",
|
|
51
|
+
secrets: Optional[dict] = None,
|
|
52
|
+
default_invoke_kwargs: Optional[dict] = None,
|
|
53
|
+
):
|
|
54
|
+
super().__init__(
|
|
55
|
+
parent=parent, name=name, kind=kind, endpoint=endpoint, secrets=secrets
|
|
56
|
+
)
|
|
57
|
+
self.default_invoke_kwargs = default_invoke_kwargs or {}
|
|
58
|
+
self._client = None
|
|
59
|
+
self._default_operation = None
|
|
60
|
+
self._async_client = None
|
|
61
|
+
self._default_async_operation = None
|
|
62
|
+
|
|
63
|
+
def load_client(self) -> None:
|
|
64
|
+
"""
|
|
65
|
+
Initializes the SDK client for the model provider with the given keyword arguments
|
|
66
|
+
and assigns it to an instance attribute (e.g., self._client).
|
|
67
|
+
|
|
68
|
+
Subclasses should override this method to:
|
|
69
|
+
- Create and configure the provider-specific client instance.
|
|
70
|
+
- 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
|
+
"""
|
|
74
|
+
|
|
75
|
+
raise NotImplementedError("load_client method is not implemented")
|
|
76
|
+
|
|
77
|
+
def invoke(
|
|
78
|
+
self,
|
|
79
|
+
messages: Optional[list[dict]] = None,
|
|
80
|
+
as_str: bool = False,
|
|
81
|
+
**invoke_kwargs,
|
|
82
|
+
) -> Optional[Union[str, T]]:
|
|
83
|
+
"""
|
|
84
|
+
Invokes a generative AI model with the provided messages and additional parameters.
|
|
85
|
+
This method is designed to be a flexible interface for interacting with various
|
|
86
|
+
generative AI backends (e.g., OpenAI, Hugging Face, etc.). It allows users to send
|
|
87
|
+
a list of messages (following a standardized format) and receive a response. The
|
|
88
|
+
response can be returned as plain text or in its full structured format, depending
|
|
89
|
+
on the `as_str` parameter.
|
|
90
|
+
|
|
91
|
+
:param messages: A list of dictionaries representing the conversation history or input messages.
|
|
92
|
+
Each dictionary should follow the format::
|
|
93
|
+
{"role": "system"| "user" | "assistant" ..., "content": "Message content as a string"}
|
|
94
|
+
Example:
|
|
95
|
+
|
|
96
|
+
.. code-block:: json
|
|
97
|
+
|
|
98
|
+
[
|
|
99
|
+
{"role": "system", "content": "You are a helpful assistant."},
|
|
100
|
+
{"role": "user", "content": "What is the capital of France?"}
|
|
101
|
+
]
|
|
102
|
+
|
|
103
|
+
This format is consistent across all backends. Defaults to None if no messages
|
|
104
|
+
are provided.
|
|
105
|
+
|
|
106
|
+
:param as_str: A boolean flag indicating whether to return the response as a plain string.
|
|
107
|
+
- If True, the function extracts and returns the main content of the first
|
|
108
|
+
response.
|
|
109
|
+
- If False, the function returns the full response object,
|
|
110
|
+
which may include additional metadata or multiple response options.
|
|
111
|
+
Defaults to False.
|
|
112
|
+
|
|
113
|
+
:param invoke_kwargs:
|
|
114
|
+
Additional keyword arguments to be passed to the underlying model API call.
|
|
115
|
+
These can include parameters such as temperature, max tokens, etc.,
|
|
116
|
+
depending on the capabilities of the specific backend being used.
|
|
117
|
+
|
|
118
|
+
:return:
|
|
119
|
+
- If `as_str` is True: Returns the main content of the first response as a string.
|
|
120
|
+
- If `as_str` is False: Returns the full response object.
|
|
121
|
+
|
|
122
|
+
"""
|
|
123
|
+
raise NotImplementedError("invoke method is not implemented")
|
|
124
|
+
|
|
125
|
+
def customized_invoke(
|
|
126
|
+
self, operation: Optional[Callable[..., T]] = None, **invoke_kwargs
|
|
127
|
+
) -> Optional[T]:
|
|
128
|
+
raise NotImplementedError("customized_invoke method is not implemented")
|
|
129
|
+
|
|
130
|
+
@property
|
|
131
|
+
def client(self):
|
|
132
|
+
return self._client
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def model(self):
|
|
136
|
+
return None
|
|
137
|
+
|
|
138
|
+
def get_invoke_kwargs(self, invoke_kwargs):
|
|
139
|
+
kwargs = self.default_invoke_kwargs.copy()
|
|
140
|
+
kwargs.update(invoke_kwargs)
|
|
141
|
+
return kwargs
|
|
142
|
+
|
|
143
|
+
@property
|
|
144
|
+
def async_client(self):
|
|
145
|
+
if not self.support_async:
|
|
146
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
147
|
+
f"{self.__class__.__name__} does not support async operations"
|
|
148
|
+
)
|
|
149
|
+
return self._async_client
|
|
150
|
+
|
|
151
|
+
async def async_customized_invoke(self, **kwargs):
|
|
152
|
+
raise NotImplementedError("async_customized_invoke is not implemented")
|
|
153
|
+
|
|
154
|
+
async def async_invoke(
|
|
155
|
+
self,
|
|
156
|
+
messages: Optional[list[dict]] = None,
|
|
157
|
+
as_str: bool = False,
|
|
158
|
+
**invoke_kwargs,
|
|
159
|
+
) -> Awaitable[str]:
|
|
160
|
+
raise NotImplementedError("async_invoke is not implemented")
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Callable, Optional, TypeVar
|
|
15
|
+
from typing import Callable, Optional, TypeVar, Union
|
|
16
16
|
|
|
17
17
|
import mlrun
|
|
18
18
|
from mlrun.datastore.model_provider.model_provider import ModelProvider
|
|
@@ -21,6 +21,18 @@ T = TypeVar("T")
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class OpenAIProvider(ModelProvider):
|
|
24
|
+
"""
|
|
25
|
+
OpenAIProvider is a wrapper around the OpenAI SDK that provides an interface
|
|
26
|
+
for interacting with OpenAI's generative AI services.
|
|
27
|
+
|
|
28
|
+
It supports both synchronous and asynchronous operations, allowing flexible
|
|
29
|
+
integration into various workflows.
|
|
30
|
+
|
|
31
|
+
This class extends the ModelProvider base class and implements OpenAI-specific
|
|
32
|
+
functionality, including client initialization, model invocation, and custom
|
|
33
|
+
operations tailored to the OpenAI API.
|
|
34
|
+
"""
|
|
35
|
+
|
|
24
36
|
def __init__(
|
|
25
37
|
self,
|
|
26
38
|
parent,
|
|
@@ -59,6 +71,19 @@ class OpenAIProvider(ModelProvider):
|
|
|
59
71
|
return self.endpoint
|
|
60
72
|
|
|
61
73
|
def load_client(self) -> None:
|
|
74
|
+
"""
|
|
75
|
+
Initializes the OpenAI SDK client using the provided options.
|
|
76
|
+
|
|
77
|
+
This method imports the `OpenAI` class from the `openai` package, instantiates
|
|
78
|
+
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.
|
|
83
|
+
|
|
84
|
+
Raises:
|
|
85
|
+
ImportError: If the `openai` package is not installed.
|
|
86
|
+
"""
|
|
62
87
|
try:
|
|
63
88
|
from openai import OpenAI # noqa
|
|
64
89
|
|
|
@@ -87,34 +112,33 @@ class OpenAIProvider(ModelProvider):
|
|
|
87
112
|
else:
|
|
88
113
|
return self._default_operation(**invoke_kwargs, model=self.model)
|
|
89
114
|
|
|
90
|
-
def
|
|
91
|
-
self,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
elif prompt:
|
|
101
|
-
messages = [
|
|
102
|
-
{
|
|
103
|
-
"role": "user",
|
|
104
|
-
"content": prompt,
|
|
105
|
-
},
|
|
106
|
-
]
|
|
107
|
-
else:
|
|
108
|
-
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
109
|
-
"must provide 'messages' or 'prompt' to invoke"
|
|
110
|
-
)
|
|
111
|
-
return messages, invoke_kwargs
|
|
115
|
+
def invoke(
|
|
116
|
+
self,
|
|
117
|
+
messages: Optional[list[dict]] = None,
|
|
118
|
+
as_str: bool = False,
|
|
119
|
+
**invoke_kwargs,
|
|
120
|
+
) -> Optional[Union[str, T]]:
|
|
121
|
+
"""
|
|
122
|
+
OpenAI-specific implementation of `ModelProvider.invoke`.
|
|
123
|
+
Invokes an OpenAI model operation using the sync client.
|
|
124
|
+
For full details, see `ModelProvider.invoke`.
|
|
112
125
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
126
|
+
:param messages: Same as ModelProvider.invoke.
|
|
127
|
+
|
|
128
|
+
:param as_str: bool
|
|
129
|
+
If `True`, returns only the main content of the first response
|
|
130
|
+
(`response.choices[0].message.content`).
|
|
131
|
+
If `False`, returns the full response object, whose type depends on
|
|
132
|
+
the specific OpenAI SDK operation used (e.g., chat completion, completion, etc.).
|
|
133
|
+
|
|
134
|
+
:param invoke_kwargs:
|
|
135
|
+
Same as ModelProvider.invoke.
|
|
136
|
+
|
|
137
|
+
"""
|
|
138
|
+
invoke_kwargs = self.get_invoke_kwargs(invoke_kwargs)
|
|
117
139
|
response = self._default_operation(
|
|
118
140
|
model=self.endpoint, messages=messages, **invoke_kwargs
|
|
119
141
|
)
|
|
120
|
-
|
|
142
|
+
if as_str:
|
|
143
|
+
return response.choices[0].message.content
|
|
144
|
+
return response
|
|
@@ -18,6 +18,17 @@ import mlrun
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class BaseRemoteClient:
|
|
21
|
+
"""
|
|
22
|
+
The BaseRemoteClient class serves as a foundational component for managing
|
|
23
|
+
secrets and configurations.
|
|
24
|
+
It is designed to be extended by subclasses that interact with external services,
|
|
25
|
+
such as file systems (e.g., Datastore) or model providers (e.g., ModelProvider).
|
|
26
|
+
|
|
27
|
+
This class is intended to provide shared functionality and should not be
|
|
28
|
+
used directly. Instead, create a subclass to implement logic specific to
|
|
29
|
+
your use case, such as interactions with S3 storage or invoking model providers like OpenAI.
|
|
30
|
+
"""
|
|
31
|
+
|
|
21
32
|
def __init__(self, parent, kind, name, endpoint="", secrets: Optional[dict] = None):
|
|
22
33
|
self._parent = parent
|
|
23
34
|
self.kind = kind
|