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.

Files changed (397) hide show
  1. {mlrun-1.10.0rc12/mlrun.egg-info → mlrun-1.10.0rc14}/PKG-INFO +2 -2
  2. mlrun-1.10.0rc14/mlrun/artifacts/llm_prompt.py +255 -0
  3. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/constants.py +0 -1
  4. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/__init__.py +1 -1
  5. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/model_endpoints.py +1 -1
  6. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/serving.py +7 -0
  7. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/workflow.py +0 -1
  8. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/config.py +2 -0
  9. mlrun-1.10.0rc14/mlrun/datastore/model_provider/model_provider.py +160 -0
  10. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/model_provider/openai_provider.py +52 -28
  11. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/remote_client.py +11 -0
  12. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/execution.py +19 -5
  13. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model.py +15 -0
  14. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +175 -8
  15. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/pipelines.py +40 -18
  16. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/project.py +15 -4
  17. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/run.py +25 -2
  18. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/__init__.py +2 -0
  19. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/server.py +1 -0
  20. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/states.py +521 -27
  21. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/system_steps.py +6 -2
  22. mlrun-1.10.0rc14/mlrun/utils/version/version.json +4 -0
  23. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14/mlrun.egg-info}/PKG-INFO +2 -2
  24. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/requires.txt +1 -1
  25. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/requirements.txt +1 -1
  26. mlrun-1.10.0rc12/mlrun/artifacts/llm_prompt.py +0 -165
  27. mlrun-1.10.0rc12/mlrun/datastore/model_provider/model_provider.py +0 -82
  28. mlrun-1.10.0rc12/mlrun/utils/version/version.json +0 -4
  29. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/LICENSE +0 -0
  30. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/MANIFEST.in +0 -0
  31. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/Makefile +0 -0
  32. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/README.md +0 -0
  33. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/dependencies.py +0 -0
  34. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/dev-requirements.txt +0 -0
  35. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/dockerfiles/mlrun-api/requirements.txt +0 -0
  36. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/archive.zip +0 -0
  37. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/function.py +0 -0
  38. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/handler.py +0 -0
  39. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/infile.txt +0 -0
  40. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/load-project.ipynb +0 -0
  41. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_basics.ipynb +0 -0
  42. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_dask.ipynb +0 -0
  43. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_db.ipynb +0 -0
  44. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_export_import.ipynb +0 -0
  45. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_jobs.ipynb +0 -0
  46. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_sparkk8s.ipynb +0 -0
  47. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/mlrun_vault.ipynb +0 -0
  48. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/model.bst +0 -0
  49. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/new-project.ipynb +0 -0
  50. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/nulltst.py +0 -0
  51. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/params.csv +0 -0
  52. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/remote-spark.ipynb +0 -0
  53. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/secrets.txt +0 -0
  54. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/spark-function.py +0 -0
  55. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/training.py +0 -0
  56. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/v2_model_server.ipynb +0 -0
  57. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/examples/xgb_serving.ipynb +0 -0
  58. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/extras-requirements.txt +0 -0
  59. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/__init__.py +0 -0
  60. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/__main__.py +0 -0
  61. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/alerts/__init__.py +0 -0
  62. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/alerts/alert.py +0 -0
  63. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/api/schemas/__init__.py +0 -0
  64. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/__init__.py +0 -0
  65. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/base.py +0 -0
  66. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/dataset.py +0 -0
  67. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/document.py +0 -0
  68. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/helpers.py +0 -0
  69. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/manager.py +0 -0
  70. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/model.py +0 -0
  71. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/artifacts/plots.py +0 -0
  72. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/__init__.py +0 -0
  73. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/db/__init__.py +0 -0
  74. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/db/dialects.py +0 -0
  75. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/__init__.py +0 -0
  76. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/artifact.py +0 -0
  77. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/base.py +0 -0
  78. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/feature_set.py +0 -0
  79. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/function.py +0 -0
  80. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/model_endpoint.py +0 -0
  81. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/pipeline.py +0 -0
  82. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/project.py +0 -0
  83. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/formatters/run.py +0 -0
  84. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/helpers.py +0 -0
  85. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/model_monitoring/__init__.py +0 -0
  86. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/model_monitoring/helpers.py +0 -0
  87. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/runtimes/constants.py +0 -0
  88. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/alert.py +0 -0
  89. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/api_gateway.py +0 -0
  90. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/artifact.py +0 -0
  91. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/auth.py +0 -0
  92. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/background_task.py +0 -0
  93. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/client_spec.py +0 -0
  94. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/clusterization_spec.py +0 -0
  95. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/common.py +0 -0
  96. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/constants.py +0 -0
  97. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/datastore_profile.py +0 -0
  98. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/events.py +0 -0
  99. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/feature_store.py +0 -0
  100. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/frontend_spec.py +0 -0
  101. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/function.py +0 -0
  102. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/http.py +0 -0
  103. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/hub.py +0 -0
  104. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/k8s.py +0 -0
  105. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/memory_reports.py +0 -0
  106. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
  107. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
  108. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
  109. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
  110. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/notification.py +0 -0
  111. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/object.py +0 -0
  112. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/pagination.py +0 -0
  113. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/partition.py +0 -0
  114. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/pipeline.py +0 -0
  115. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/project.py +0 -0
  116. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/regex.py +0 -0
  117. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/runs.py +0 -0
  118. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/runtime_resource.py +0 -0
  119. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/schedule.py +0 -0
  120. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/secret.py +0 -0
  121. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/schemas/tag.py +0 -0
  122. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/secrets.py +0 -0
  123. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/common/types.py +0 -0
  124. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/__init__.py +0 -0
  125. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/data_types.py +0 -0
  126. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/infer.py +0 -0
  127. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/spark.py +0 -0
  128. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/data_types/to_pandas.py +0 -0
  129. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/__init__.py +0 -0
  130. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/alibaba_oss.py +0 -0
  131. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/azure_blob.py +0 -0
  132. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/base.py +0 -0
  133. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/datastore.py +0 -0
  134. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/datastore_profile.py +0 -0
  135. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/dbfs_store.py +0 -0
  136. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/filestore.py +0 -0
  137. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/google_cloud_storage.py +0 -0
  138. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/hdfs.py +0 -0
  139. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/inmem.py +0 -0
  140. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/model_provider/__init__.py +0 -0
  141. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/redis.py +0 -0
  142. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/s3.py +0 -0
  143. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/snowflake_utils.py +0 -0
  144. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/sources.py +0 -0
  145. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/spark_udf.py +0 -0
  146. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/spark_utils.py +0 -0
  147. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/store_resources.py +0 -0
  148. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/storeytargets.py +0 -0
  149. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/targets.py +0 -0
  150. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/utils.py +0 -0
  151. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/v3io.py +0 -0
  152. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/vectorstore.py +0 -0
  153. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/wasbfs/__init__.py +0 -0
  154. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/datastore/wasbfs/fs.py +0 -0
  155. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/__init__.py +0 -0
  156. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/auth_utils.py +0 -0
  157. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/base.py +0 -0
  158. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/factory.py +0 -0
  159. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/httpdb.py +0 -0
  160. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/db/nopdb.py +0 -0
  161. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/errors.py +0 -0
  162. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/__init__.py +0 -0
  163. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/api.py +0 -0
  164. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/common.py +0 -0
  165. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/feature_set.py +0 -0
  166. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/feature_vector.py +0 -0
  167. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/feature_vector_utils.py +0 -0
  168. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/ingestion.py +0 -0
  169. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/__init__.py +0 -0
  170. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/base.py +0 -0
  171. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
  172. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/job.py +0 -0
  173. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/local_merger.py +0 -0
  174. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
  175. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
  176. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/feature_store/steps.py +0 -0
  177. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/features.py +0 -0
  178. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/__init__.py +0 -0
  179. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/__init__.py +0 -0
  180. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/artifacts_library.py +0 -0
  181. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
  182. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/model_handler.py +0 -0
  183. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/plan.py +0 -0
  184. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/producer.py +0 -0
  185. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_common/utils.py +0 -0
  186. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/__init__.py +0 -0
  187. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
  188. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
  189. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
  190. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
  191. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
  192. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_dl_common/utils.py +0 -0
  193. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/__init__.py +0 -0
  194. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
  195. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
  196. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
  197. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
  198. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
  199. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
  200. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plan.py +0 -0
  201. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
  202. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
  203. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
  204. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
  205. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
  206. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
  207. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/producer.py +0 -0
  208. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/_ml_common/utils.py +0 -0
  209. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
  210. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
  211. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/huggingface/__init__.py +0 -0
  212. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/huggingface/model_server.py +0 -0
  213. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/__init__.py +0 -0
  214. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
  215. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
  216. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
  217. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
  218. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
  219. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
  220. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
  221. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
  222. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/model_handler.py +0 -0
  223. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/model_server.py +0 -0
  224. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/lgbm/utils.py +0 -0
  225. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/__init__.py +0 -0
  226. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/dataset.py +0 -0
  227. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
  228. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/model_handler.py +0 -0
  229. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/onnx/model_server.py +0 -0
  230. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/parallel_coordinates.py +0 -0
  231. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/__init__.py +0 -0
  232. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
  233. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
  234. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
  235. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
  236. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
  237. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
  238. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
  239. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/model_handler.py +0 -0
  240. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/model_server.py +0 -0
  241. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/pytorch/utils.py +0 -0
  242. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/__init__.py +0 -0
  243. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/estimator.py +0 -0
  244. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/metric.py +0 -0
  245. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
  246. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
  247. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/model_handler.py +0 -0
  248. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/sklearn/utils.py +0 -0
  249. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/__init__.py +0 -0
  250. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
  251. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
  252. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
  253. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
  254. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
  255. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
  256. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/model_server.py +0 -0
  257. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/tf_keras/utils.py +0 -0
  258. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/__init__.py +0 -0
  259. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
  260. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/model_handler.py +0 -0
  261. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/frameworks/xgboost/utils.py +0 -0
  262. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/k8s_utils.py +0 -0
  263. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/__init__.py +0 -0
  264. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/base.py +0 -0
  265. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/client.py +0 -0
  266. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/factory.py +0 -0
  267. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/local.py +0 -0
  268. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/launcher/remote.py +0 -0
  269. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/lists.py +0 -0
  270. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/__init__.py +0 -0
  271. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/api.py +0 -0
  272. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/__init__.py +0 -0
  273. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
  274. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/base.py +0 -0
  275. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/context.py +0 -0
  276. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
  277. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
  278. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
  279. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/applications/results.py +0 -0
  280. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/controller.py +0 -0
  281. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/__init__.py +0 -0
  282. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/_schedules.py +0 -0
  283. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/_stats.py +0 -0
  284. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
  285. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
  286. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
  287. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
  288. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
  289. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
  290. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
  291. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
  292. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
  293. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
  294. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/features_drift_table.py +0 -0
  295. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/helpers.py +0 -0
  296. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/metrics/__init__.py +0 -0
  297. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
  298. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/stream_processing.py +0 -0
  299. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/model_monitoring/writer.py +0 -0
  300. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/__init__.py +0 -0
  301. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/context_handler.py +0 -0
  302. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/errors.py +0 -0
  303. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packager.py +0 -0
  304. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/__init__.py +0 -0
  305. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/default_packager.py +0 -0
  306. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/numpy_packagers.py +0 -0
  307. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/pandas_packagers.py +0 -0
  308. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
  309. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/packagers_manager.py +0 -0
  310. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/__init__.py +0 -0
  311. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_archiver.py +0 -0
  312. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_formatter.py +0 -0
  313. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_pickler.py +0 -0
  314. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/_supported_format.py +0 -0
  315. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/log_hint_utils.py +0 -0
  316. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/package/utils/type_hint_utils.py +0 -0
  317. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/platforms/__init__.py +0 -0
  318. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/platforms/iguazio.py +0 -0
  319. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/__init__.py +0 -0
  320. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/projects/operations.py +0 -0
  321. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/render.py +0 -0
  322. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/__init__.py +0 -0
  323. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/base.py +0 -0
  324. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/daskjob.py +0 -0
  325. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/__init__.py +0 -0
  326. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
  327. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
  328. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
  329. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/funcdoc.py +0 -0
  330. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/function_reference.py +0 -0
  331. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/generators.py +0 -0
  332. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/kubejob.py +0 -0
  333. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/local.py +0 -0
  334. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mounts.py +0 -0
  335. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mpijob/__init__.py +0 -0
  336. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mpijob/abstract.py +0 -0
  337. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/mpijob/v1.py +0 -0
  338. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/__init__.py +0 -0
  339. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
  340. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
  341. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/application/application.py +0 -0
  342. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
  343. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/function.py +0 -0
  344. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/nuclio.py +0 -0
  345. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/nuclio/serving.py +0 -0
  346. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/pod.py +0 -0
  347. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/remotesparkjob.py +0 -0
  348. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/sparkjob/__init__.py +0 -0
  349. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
  350. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/runtimes/utils.py +0 -0
  351. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/secrets.py +0 -0
  352. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/merger.py +0 -0
  353. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/remote.py +0 -0
  354. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/routers.py +0 -0
  355. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/serving_wrapper.py +0 -0
  356. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/utils.py +0 -0
  357. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/v1_serving.py +0 -0
  358. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/serving/v2_serving.py +0 -0
  359. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/__init__.py +0 -0
  360. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/tracker.py +0 -0
  361. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/tracker_manager.py +0 -0
  362. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/trackers/__init__.py +0 -0
  363. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/track/trackers/mlflow_tracker.py +0 -0
  364. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/__init__.py +0 -0
  365. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/async_http.py +0 -0
  366. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/azure_vault.py +0 -0
  367. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/clones.py +0 -0
  368. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/condition_evaluator.py +0 -0
  369. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/helpers.py +0 -0
  370. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/http.py +0 -0
  371. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/logger.py +0 -0
  372. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/__init__.py +0 -0
  373. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/__init__.py +0 -0
  374. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/base.py +0 -0
  375. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/console.py +0 -0
  376. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/git.py +0 -0
  377. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/ipython.py +0 -0
  378. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/mail.py +0 -0
  379. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/slack.py +0 -0
  380. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification/webhook.py +0 -0
  381. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/notifications/notification_pusher.py +0 -0
  382. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/regex.py +0 -0
  383. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/retryer.py +0 -0
  384. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/singleton.py +0 -0
  385. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/v3io_clients.py +0 -0
  386. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/vault.py +0 -0
  387. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/version/__init__.py +0 -0
  388. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun/utils/version/version.py +0 -0
  389. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/SOURCES.txt +0 -0
  390. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/dependency_links.txt +0 -0
  391. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/entry_points.txt +0 -0
  392. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/not-zip-safe +0 -0
  393. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/mlrun.egg-info/top_level.txt +0 -0
  394. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/packages.py +0 -0
  395. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/pyproject.toml +0 -0
  396. {mlrun-1.10.0rc12 → mlrun-1.10.0rc14}/setup.cfg +0 -0
  397. {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.0rc12
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.7
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()
@@ -81,7 +81,6 @@ class MLRunInternalLabels:
81
81
  kind = "kind"
82
82
  component = "component"
83
83
  mlrun_type = "mlrun__type"
84
- rerun_of = "rerun-of"
85
84
  original_workflow_id = "original-workflow-id"
86
85
  workflow_id = "workflow-id"
87
86
 
@@ -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,
@@ -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
 
@@ -125,6 +125,8 @@ default_config = {
125
125
  "interval": "30",
126
126
  # runs limit to fetch for retrying
127
127
  "fetch_runs_limit": 1000,
128
+ # minutes until a run is considered stale and will be aborted
129
+ "staleness_threshold": 60 * 24 * 3,
128
130
  },
129
131
  },
130
132
  "projects": {
@@ -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 _get_messages_parameter(
91
- self, prompt: Optional[str] = None, **invoke_kwargs
92
- ) -> (str, dict):
93
- invoke_kwargs = self.get_invoke_kwargs(invoke_kwargs)
94
- messages = invoke_kwargs.get("messages")
95
- if messages:
96
- if prompt:
97
- raise mlrun.errors.MLRunInvalidArgumentError(
98
- "can not provide 'messages' and 'prompt' to invoke"
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
- def invoke(self, prompt: Optional[str] = None, **invoke_kwargs) -> str:
114
- messages, invoke_kwargs = self._get_messages_parameter(
115
- prompt=prompt, **invoke_kwargs
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
- return response.choices[0].message.content
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