clarifai 11.7.5rc1__tar.gz → 11.8.1__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.
Files changed (313) hide show
  1. {clarifai-11.7.5rc1/clarifai.egg-info → clarifai-11.8.1}/PKG-INFO +1 -1
  2. clarifai-11.8.1/clarifai/__init__.py +1 -0
  3. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/user.py +0 -172
  4. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/model_builder.py +0 -133
  5. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/model_runner.py +21 -3
  6. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/openai_class.py +18 -0
  7. {clarifai-11.7.5rc1 → clarifai-11.8.1/clarifai.egg-info}/PKG-INFO +1 -1
  8. clarifai-11.8.1/clarifai.egg-info/SOURCES.txt +150 -0
  9. clarifai-11.7.5rc1/clarifai/__init__.py +0 -1
  10. clarifai-11.7.5rc1/clarifai/__pycache__/__init__.cpython-311.pyc +0 -0
  11. clarifai-11.7.5rc1/clarifai/__pycache__/__init__.cpython-312.pyc +0 -0
  12. clarifai-11.7.5rc1/clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
  13. clarifai-11.7.5rc1/clarifai/__pycache__/errors.cpython-311.pyc +0 -0
  14. clarifai-11.7.5rc1/clarifai/__pycache__/errors.cpython-39.pyc +0 -0
  15. clarifai-11.7.5rc1/clarifai/__pycache__/versions.cpython-311.pyc +0 -0
  16. clarifai-11.7.5rc1/clarifai/__pycache__/versions.cpython-39.pyc +0 -0
  17. clarifai-11.7.5rc1/clarifai/cli/__pycache__/__init__.cpython-311.pyc +0 -0
  18. clarifai-11.7.5rc1/clarifai/cli/__pycache__/__init__.cpython-39.pyc +0 -0
  19. clarifai-11.7.5rc1/clarifai/cli/__pycache__/base.cpython-311.pyc +0 -0
  20. clarifai-11.7.5rc1/clarifai/cli/__pycache__/base.cpython-39.pyc +0 -0
  21. clarifai-11.7.5rc1/clarifai/cli/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  22. clarifai-11.7.5rc1/clarifai/cli/__pycache__/compute_cluster.cpython-39.pyc +0 -0
  23. clarifai-11.7.5rc1/clarifai/cli/__pycache__/deployment.cpython-311.pyc +0 -0
  24. clarifai-11.7.5rc1/clarifai/cli/__pycache__/deployment.cpython-39.pyc +0 -0
  25. clarifai-11.7.5rc1/clarifai/cli/__pycache__/model.cpython-311.pyc +0 -0
  26. clarifai-11.7.5rc1/clarifai/cli/__pycache__/model.cpython-39.pyc +0 -0
  27. clarifai-11.7.5rc1/clarifai/cli/__pycache__/nodepool.cpython-311.pyc +0 -0
  28. clarifai-11.7.5rc1/clarifai/cli/__pycache__/nodepool.cpython-39.pyc +0 -0
  29. clarifai-11.7.5rc1/clarifai/cli/__pycache__/pipeline.cpython-311.pyc +0 -0
  30. clarifai-11.7.5rc1/clarifai/cli/__pycache__/pipeline_step.cpython-311.pyc +0 -0
  31. clarifai-11.7.5rc1/clarifai/cli/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  32. clarifai-11.7.5rc1/clarifai/cli/templates/__pycache__/pipeline_templates.cpython-311.pyc +0 -0
  33. clarifai-11.7.5rc1/clarifai/client/__pycache__/__init__.cpython-311.pyc +0 -0
  34. clarifai-11.7.5rc1/clarifai/client/__pycache__/__init__.cpython-312.pyc +0 -0
  35. clarifai-11.7.5rc1/clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
  36. clarifai-11.7.5rc1/clarifai/client/__pycache__/app.cpython-311.pyc +0 -0
  37. clarifai-11.7.5rc1/clarifai/client/__pycache__/app.cpython-312.pyc +0 -0
  38. clarifai-11.7.5rc1/clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
  39. clarifai-11.7.5rc1/clarifai/client/__pycache__/base.cpython-311.pyc +0 -0
  40. clarifai-11.7.5rc1/clarifai/client/__pycache__/base.cpython-39.pyc +0 -0
  41. clarifai-11.7.5rc1/clarifai/client/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  42. clarifai-11.7.5rc1/clarifai/client/__pycache__/dataset.cpython-311.pyc +0 -0
  43. clarifai-11.7.5rc1/clarifai/client/__pycache__/dataset.cpython-39.pyc +0 -0
  44. clarifai-11.7.5rc1/clarifai/client/__pycache__/deployment.cpython-311.pyc +0 -0
  45. clarifai-11.7.5rc1/clarifai/client/__pycache__/deployment.cpython-39.pyc +0 -0
  46. clarifai-11.7.5rc1/clarifai/client/__pycache__/input.cpython-311.pyc +0 -0
  47. clarifai-11.7.5rc1/clarifai/client/__pycache__/input.cpython-39.pyc +0 -0
  48. clarifai-11.7.5rc1/clarifai/client/__pycache__/lister.cpython-311.pyc +0 -0
  49. clarifai-11.7.5rc1/clarifai/client/__pycache__/lister.cpython-39.pyc +0 -0
  50. clarifai-11.7.5rc1/clarifai/client/__pycache__/model.cpython-311.pyc +0 -0
  51. clarifai-11.7.5rc1/clarifai/client/__pycache__/model.cpython-39.pyc +0 -0
  52. clarifai-11.7.5rc1/clarifai/client/__pycache__/model_client.cpython-311.pyc +0 -0
  53. clarifai-11.7.5rc1/clarifai/client/__pycache__/model_client.cpython-39.pyc +0 -0
  54. clarifai-11.7.5rc1/clarifai/client/__pycache__/module.cpython-311.pyc +0 -0
  55. clarifai-11.7.5rc1/clarifai/client/__pycache__/nodepool.cpython-311.pyc +0 -0
  56. clarifai-11.7.5rc1/clarifai/client/__pycache__/pipeline.cpython-311.pyc +0 -0
  57. clarifai-11.7.5rc1/clarifai/client/__pycache__/pipeline_step.cpython-311.pyc +0 -0
  58. clarifai-11.7.5rc1/clarifai/client/__pycache__/runner.cpython-311.pyc +0 -0
  59. clarifai-11.7.5rc1/clarifai/client/__pycache__/search.cpython-311.pyc +0 -0
  60. clarifai-11.7.5rc1/clarifai/client/__pycache__/user.cpython-311.pyc +0 -0
  61. clarifai-11.7.5rc1/clarifai/client/__pycache__/workflow.cpython-311.pyc +0 -0
  62. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/__init__.cpython-311.pyc +0 -0
  63. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/__init__.cpython-39.pyc +0 -0
  64. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/helper.cpython-311.pyc +0 -0
  65. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/helper.cpython-39.pyc +0 -0
  66. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/register.cpython-311.pyc +0 -0
  67. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/register.cpython-39.pyc +0 -0
  68. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/stub.cpython-311.pyc +0 -0
  69. clarifai-11.7.5rc1/clarifai/client/auth/__pycache__/stub.cpython-39.pyc +0 -0
  70. clarifai-11.7.5rc1/clarifai/constants/__pycache__/base.cpython-311.pyc +0 -0
  71. clarifai-11.7.5rc1/clarifai/constants/__pycache__/base.cpython-39.pyc +0 -0
  72. clarifai-11.7.5rc1/clarifai/constants/__pycache__/dataset.cpython-311.pyc +0 -0
  73. clarifai-11.7.5rc1/clarifai/constants/__pycache__/dataset.cpython-39.pyc +0 -0
  74. clarifai-11.7.5rc1/clarifai/constants/__pycache__/input.cpython-311.pyc +0 -0
  75. clarifai-11.7.5rc1/clarifai/constants/__pycache__/input.cpython-39.pyc +0 -0
  76. clarifai-11.7.5rc1/clarifai/constants/__pycache__/model.cpython-311.pyc +0 -0
  77. clarifai-11.7.5rc1/clarifai/constants/__pycache__/model.cpython-39.pyc +0 -0
  78. clarifai-11.7.5rc1/clarifai/constants/__pycache__/rag.cpython-311.pyc +0 -0
  79. clarifai-11.7.5rc1/clarifai/constants/__pycache__/search.cpython-311.pyc +0 -0
  80. clarifai-11.7.5rc1/clarifai/constants/__pycache__/workflow.cpython-311.pyc +0 -0
  81. clarifai-11.7.5rc1/clarifai/datasets/__pycache__/__init__.cpython-311.pyc +0 -0
  82. clarifai-11.7.5rc1/clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  83. clarifai-11.7.5rc1/clarifai/datasets/export/__pycache__/__init__.cpython-311.pyc +0 -0
  84. clarifai-11.7.5rc1/clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
  85. clarifai-11.7.5rc1/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-311.pyc +0 -0
  86. clarifai-11.7.5rc1/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-39.pyc +0 -0
  87. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/__init__.cpython-311.pyc +0 -0
  88. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
  89. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/base.cpython-311.pyc +0 -0
  90. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/base.cpython-39.pyc +0 -0
  91. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/features.cpython-311.pyc +0 -0
  92. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/features.cpython-39.pyc +0 -0
  93. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/image.cpython-311.pyc +0 -0
  94. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/image.cpython-39.pyc +0 -0
  95. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/multimodal.cpython-311.pyc +0 -0
  96. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/multimodal.cpython-39.pyc +0 -0
  97. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/text.cpython-311.pyc +0 -0
  98. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/text.cpython-39.pyc +0 -0
  99. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/utils.cpython-311.pyc +0 -0
  100. clarifai-11.7.5rc1/clarifai/datasets/upload/__pycache__/utils.cpython-39.pyc +0 -0
  101. clarifai-11.7.5rc1/clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-311.pyc +0 -0
  102. clarifai-11.7.5rc1/clarifai/datasets/upload/loaders/__pycache__/coco_detection.cpython-311.pyc +0 -0
  103. clarifai-11.7.5rc1/clarifai/datasets/upload/loaders/__pycache__/imagenet_classification.cpython-311.pyc +0 -0
  104. clarifai-11.7.5rc1/clarifai/rag/__pycache__/__init__.cpython-311.pyc +0 -0
  105. clarifai-11.7.5rc1/clarifai/rag/__pycache__/rag.cpython-311.pyc +0 -0
  106. clarifai-11.7.5rc1/clarifai/rag/__pycache__/utils.cpython-311.pyc +0 -0
  107. clarifai-11.7.5rc1/clarifai/runners/__pycache__/__init__.cpython-311.pyc +0 -0
  108. clarifai-11.7.5rc1/clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
  109. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/__init__.cpython-311.pyc +0 -0
  110. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
  111. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/dummy_openai_model.cpython-311.pyc +0 -0
  112. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/mcp_class.cpython-311.pyc +0 -0
  113. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/model_builder.cpython-311.pyc +0 -0
  114. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/model_builder.cpython-39.pyc +0 -0
  115. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/model_class.cpython-311.pyc +0 -0
  116. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/model_run_locally.cpython-311.pyc +0 -0
  117. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/model_runner.cpython-311.pyc +0 -0
  118. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/model_servicer.cpython-311.pyc +0 -0
  119. clarifai-11.7.5rc1/clarifai/runners/models/__pycache__/openai_class.cpython-311.pyc +0 -0
  120. clarifai-11.7.5rc1/clarifai/runners/pipeline_steps/__pycache__/__init__.cpython-311.pyc +0 -0
  121. clarifai-11.7.5rc1/clarifai/runners/pipeline_steps/__pycache__/pipeline_step_builder.cpython-311.pyc +0 -0
  122. clarifai-11.7.5rc1/clarifai/runners/pipelines/__pycache__/__init__.cpython-311.pyc +0 -0
  123. clarifai-11.7.5rc1/clarifai/runners/pipelines/__pycache__/pipeline_builder.cpython-311.pyc +0 -0
  124. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  125. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  126. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/code_script.cpython-311.pyc +0 -0
  127. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/code_script.cpython-39.pyc +0 -0
  128. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/const.cpython-311.pyc +0 -0
  129. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/data_utils.cpython-311.pyc +0 -0
  130. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
  131. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/loader.cpython-311.pyc +0 -0
  132. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/method_signatures.cpython-311.pyc +0 -0
  133. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/model_utils.cpython-311.pyc +0 -0
  134. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/openai_convertor.cpython-311.pyc +0 -0
  135. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/pipeline_validation.cpython-311.pyc +0 -0
  136. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/serializers.cpython-311.pyc +0 -0
  137. clarifai-11.7.5rc1/clarifai/runners/utils/__pycache__/url_fetcher.cpython-311.pyc +0 -0
  138. clarifai-11.7.5rc1/clarifai/runners/utils/data_types/__pycache__/__init__.cpython-311.pyc +0 -0
  139. clarifai-11.7.5rc1/clarifai/runners/utils/data_types/__pycache__/__init__.cpython-39.pyc +0 -0
  140. clarifai-11.7.5rc1/clarifai/runners/utils/data_types/__pycache__/data_types.cpython-311.pyc +0 -0
  141. clarifai-11.7.5rc1/clarifai/runners/utils/data_types/__pycache__/data_types.cpython-39.pyc +0 -0
  142. clarifai-11.7.5rc1/clarifai/schema/__pycache__/search.cpython-311.pyc +0 -0
  143. clarifai-11.7.5rc1/clarifai/urls/__pycache__/helper.cpython-311.pyc +0 -0
  144. clarifai-11.7.5rc1/clarifai/urls/__pycache__/helper.cpython-39.pyc +0 -0
  145. clarifai-11.7.5rc1/clarifai/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  146. clarifai-11.7.5rc1/clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  147. clarifai-11.7.5rc1/clarifai/utils/__pycache__/cli.cpython-311.pyc +0 -0
  148. clarifai-11.7.5rc1/clarifai/utils/__pycache__/cli.cpython-39.pyc +0 -0
  149. clarifai-11.7.5rc1/clarifai/utils/__pycache__/config.cpython-311.pyc +0 -0
  150. clarifai-11.7.5rc1/clarifai/utils/__pycache__/config.cpython-39.pyc +0 -0
  151. clarifai-11.7.5rc1/clarifai/utils/__pycache__/constants.cpython-311.pyc +0 -0
  152. clarifai-11.7.5rc1/clarifai/utils/__pycache__/constants.cpython-39.pyc +0 -0
  153. clarifai-11.7.5rc1/clarifai/utils/__pycache__/logging.cpython-311.pyc +0 -0
  154. clarifai-11.7.5rc1/clarifai/utils/__pycache__/logging.cpython-39.pyc +0 -0
  155. clarifai-11.7.5rc1/clarifai/utils/__pycache__/misc.cpython-311.pyc +0 -0
  156. clarifai-11.7.5rc1/clarifai/utils/__pycache__/misc.cpython-39.pyc +0 -0
  157. clarifai-11.7.5rc1/clarifai/utils/__pycache__/model_train.cpython-311.pyc +0 -0
  158. clarifai-11.7.5rc1/clarifai/utils/__pycache__/protobuf.cpython-311.pyc +0 -0
  159. clarifai-11.7.5rc1/clarifai/utils/__pycache__/protobuf.cpython-39.pyc +0 -0
  160. clarifai-11.7.5rc1/clarifai/utils/__pycache__/secrets.cpython-311.pyc +0 -0
  161. clarifai-11.7.5rc1/clarifai/utils/evaluation/__pycache__/__init__.cpython-311.pyc +0 -0
  162. clarifai-11.7.5rc1/clarifai/utils/evaluation/__pycache__/helpers.cpython-311.pyc +0 -0
  163. clarifai-11.7.5rc1/clarifai/utils/evaluation/__pycache__/main.cpython-311.pyc +0 -0
  164. clarifai-11.7.5rc1/clarifai/utils/evaluation/__pycache__/testset_annotation_parser.cpython-311.pyc +0 -0
  165. clarifai-11.7.5rc1/clarifai/workflows/__pycache__/__init__.cpython-311.pyc +0 -0
  166. clarifai-11.7.5rc1/clarifai/workflows/__pycache__/export.cpython-311.pyc +0 -0
  167. clarifai-11.7.5rc1/clarifai/workflows/__pycache__/utils.cpython-311.pyc +0 -0
  168. clarifai-11.7.5rc1/clarifai/workflows/__pycache__/validate.cpython-311.pyc +0 -0
  169. clarifai-11.7.5rc1/clarifai.egg-info/SOURCES.txt +0 -309
  170. {clarifai-11.7.5rc1 → clarifai-11.8.1}/LICENSE +0 -0
  171. {clarifai-11.7.5rc1 → clarifai-11.8.1}/MANIFEST.in +0 -0
  172. {clarifai-11.7.5rc1 → clarifai-11.8.1}/README.md +0 -0
  173. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/README.md +0 -0
  174. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/__init__.py +0 -0
  175. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/__main__.py +0 -0
  176. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/base.py +0 -0
  177. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/compute_cluster.py +0 -0
  178. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/deployment.py +0 -0
  179. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/model.py +0 -0
  180. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/nodepool.py +0 -0
  181. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/pipeline.py +0 -0
  182. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/pipeline_step.py +0 -0
  183. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/templates/__init__.py +0 -0
  184. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/templates/model_templates.py +0 -0
  185. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/templates/pipeline_step_templates.py +0 -0
  186. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli/templates/pipeline_templates.py +0 -0
  187. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/cli.py +0 -0
  188. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/__init__.py +0 -0
  189. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/app.py +0 -0
  190. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/auth/__init__.py +0 -0
  191. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/auth/helper.py +0 -0
  192. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/auth/register.py +0 -0
  193. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/auth/stub.py +0 -0
  194. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/base.py +0 -0
  195. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/compute_cluster.py +0 -0
  196. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/dataset.py +0 -0
  197. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/deployment.py +0 -0
  198. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/input.py +0 -0
  199. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/lister.py +0 -0
  200. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/model.py +0 -0
  201. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/model_client.py +0 -0
  202. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/module.py +0 -0
  203. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/nodepool.py +0 -0
  204. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/pipeline.py +0 -0
  205. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/pipeline_step.py +0 -0
  206. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/runner.py +0 -0
  207. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/search.py +0 -0
  208. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/client/workflow.py +0 -0
  209. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/base.py +0 -0
  210. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/dataset.py +0 -0
  211. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/input.py +0 -0
  212. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/model.py +0 -0
  213. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/rag.py +0 -0
  214. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/search.py +0 -0
  215. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/constants/workflow.py +0 -0
  216. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/__init__.py +0 -0
  217. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/export/__init__.py +0 -0
  218. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/export/inputs_annotations.py +0 -0
  219. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/__init__.py +0 -0
  220. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/base.py +0 -0
  221. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/features.py +0 -0
  222. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/image.py +0 -0
  223. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/loaders/README.md +0 -0
  224. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/loaders/__init__.py +0 -0
  225. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/loaders/coco_captions.py +0 -0
  226. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/loaders/coco_detection.py +0 -0
  227. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -0
  228. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/loaders/xview_detection.py +0 -0
  229. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/multimodal.py +0 -0
  230. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/text.py +0 -0
  231. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/datasets/upload/utils.py +0 -0
  232. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/errors.py +0 -0
  233. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/models/__init__.py +0 -0
  234. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/models/api.py +0 -0
  235. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/modules/README.md +0 -0
  236. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/modules/__init__.py +0 -0
  237. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/modules/css.py +0 -0
  238. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/modules/pages.py +0 -0
  239. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/modules/style.css +0 -0
  240. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/rag/__init__.py +0 -0
  241. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/rag/rag.py +0 -0
  242. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/rag/utils.py +0 -0
  243. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/__init__.py +0 -0
  244. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/dockerfile_template/Dockerfile.template +0 -0
  245. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/__init__.py +0 -0
  246. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/dummy_openai_model.py +0 -0
  247. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/mcp_class.py +0 -0
  248. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/model_class.py +0 -0
  249. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/model_run_locally.py +0 -0
  250. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/model_servicer.py +0 -0
  251. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/visual_classifier_class.py +0 -0
  252. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/models/visual_detector_class.py +0 -0
  253. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/pipeline_steps/__init__.py +0 -0
  254. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/pipeline_steps/pipeline_step_builder.py +0 -0
  255. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/pipelines/__init__.py +0 -0
  256. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/pipelines/pipeline_builder.py +0 -0
  257. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/server.py +0 -0
  258. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/__init__.py +0 -0
  259. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/code_script.py +0 -0
  260. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/const.py +0 -0
  261. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/data_types/__init__.py +0 -0
  262. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/data_types/data_types.py +0 -0
  263. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/data_utils.py +0 -0
  264. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/loader.py +0 -0
  265. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/method_signatures.py +0 -0
  266. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/model_utils.py +0 -0
  267. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/openai_convertor.py +0 -0
  268. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/pipeline_validation.py +0 -0
  269. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/serializers.py +0 -0
  270. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/runners/utils/url_fetcher.py +0 -0
  271. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/schema/search.py +0 -0
  272. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/urls/helper.py +0 -0
  273. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/__init__.py +0 -0
  274. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/cli.py +0 -0
  275. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/config.py +0 -0
  276. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/constants.py +0 -0
  277. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/evaluation/__init__.py +0 -0
  278. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/evaluation/helpers.py +0 -0
  279. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/evaluation/main.py +0 -0
  280. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/evaluation/testset_annotation_parser.py +0 -0
  281. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/logging.py +0 -0
  282. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/misc.py +0 -0
  283. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/model_train.py +0 -0
  284. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/protobuf.py +0 -0
  285. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/utils/secrets.py +0 -0
  286. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/versions.py +0 -0
  287. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/workflows/__init__.py +0 -0
  288. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/workflows/export.py +0 -0
  289. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/workflows/utils.py +0 -0
  290. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai/workflows/validate.py +0 -0
  291. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai.egg-info/dependency_links.txt +0 -0
  292. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai.egg-info/entry_points.txt +0 -0
  293. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai.egg-info/requires.txt +0 -0
  294. {clarifai-11.7.5rc1 → clarifai-11.8.1}/clarifai.egg-info/top_level.txt +0 -0
  295. {clarifai-11.7.5rc1 → clarifai-11.8.1}/pyproject.toml +0 -0
  296. {clarifai-11.7.5rc1 → clarifai-11.8.1}/requirements.txt +0 -0
  297. {clarifai-11.7.5rc1 → clarifai-11.8.1}/setup.cfg +0 -0
  298. {clarifai-11.7.5rc1 → clarifai-11.8.1}/setup.py +0 -0
  299. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_app.py +0 -0
  300. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_async_stub.py +0 -0
  301. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_auth.py +0 -0
  302. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_data_upload.py +0 -0
  303. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_eval.py +0 -0
  304. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_list_models.py +0 -0
  305. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_misc.py +0 -0
  306. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_model_predict.py +0 -0
  307. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_model_train.py +0 -0
  308. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_modules.py +0 -0
  309. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_pipeline_client.py +0 -0
  310. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_rag.py +0 -0
  311. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_search.py +0 -0
  312. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_secrets.py +0 -0
  313. {clarifai-11.7.5rc1 → clarifai-11.8.1}/tests/test_stub.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.7.5rc1
3
+ Version: 11.8.1
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -0,0 +1 @@
1
+ __version__ = "11.8.1"
@@ -533,178 +533,6 @@ class User(Lister, BaseClient):
533
533
  ]
534
534
  return f"Clarifai User Details: \n{', '.join(attribute_strings)}\n"
535
535
 
536
- def get_secret(self, secret_id: str) -> dict:
537
- """Returns a secret object if exists.
538
-
539
- Args:
540
- secret_id (str): The secret ID to interact with
541
-
542
- Returns:
543
- Dict: A dictionary containing information about the existing secret ID.
544
-
545
- Example:
546
- >>> from clarifai.client.user import User
547
- >>> client = User(user_id="user_id")
548
- >>> secret_info = client.get_secret(secret_id="secret_id")
549
- """
550
- request = service_pb2.GetSecretRequest(user_app_id=self.user_app_id, id=secret_id)
551
- response = self._grpc_request(self.STUB.GetSecret, request)
552
- if response.status.code != status_code_pb2.SUCCESS:
553
- raise Exception(
554
- f"""Error getting secret, are you sure this is a valid secret id {secret_id} at the user_id
555
- {self.user_app_id.user_id}.
556
- Error: {response.status.description}"""
557
- )
558
-
559
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
560
- kwargs = self.process_response_keys(dict_response["secret"], "secret")
561
-
562
- return dict(auth=self.auth_helper, **kwargs)
563
-
564
- def list_secrets(
565
- self, page_no: int = None, per_page: int = None
566
- ) -> Generator[dict, None, None]:
567
- """List all secrets for the user
568
-
569
- Args:
570
- page_no (int): The page number to list.
571
- per_page (int): The number of items per page.
572
-
573
- Yields:
574
- Dict: Dictionaries containing information about the secrets.
575
-
576
- Example:
577
- >>> from clarifai.client.user import User
578
- >>> client = User(user_id="user_id")
579
- >>> all_secrets = list(client.list_secrets())
580
-
581
- Note:
582
- Defaults to 16 per page if page_no is specified and per_page is not specified.
583
- If both page_no and per_page are None, then lists all the resources.
584
- """
585
- request_data = dict(user_app_id=self.user_app_id)
586
- all_secrets_info = self.list_pages_generator(
587
- self.STUB.ListSecrets,
588
- service_pb2.ListSecretsRequest,
589
- request_data,
590
- per_page=per_page,
591
- page_no=page_no,
592
- )
593
- for secret_info in all_secrets_info:
594
- yield dict(auth=self.auth_helper, **secret_info)
595
-
596
- def create_secrets(self, secrets: List[Dict[str, Any]]) -> List[dict]:
597
- """Creates secrets for the user.
598
-
599
- Args:
600
- secrets (List[Dict[str, Any]]): List of secret configurations to create.
601
- Each secret dict can contain:
602
- - id (str): The name/ID of the secret (required)
603
- - value (str): The secret value (required)
604
- - description (str): Optional description of the secret
605
- - expires_at (str): Optional expiration timestamp
606
-
607
- Returns:
608
- List[Dict]: List of dictionaries containing information about the created secrets.
609
-
610
- Example:
611
- >>> from clarifai.client.user import User
612
- >>> client = User(user_id="user_id")
613
- >>> secrets = [{"id": "secret1", "value": "secret_value", "description": "My Secret"}]
614
- >>> created_secrets = client.create_secrets(secrets)
615
- """
616
- assert isinstance(secrets, list), "secrets param should be a list"
617
-
618
- # Convert dict secrets to protobuf Secret objects
619
- secret_objects = []
620
- for secret_config in secrets:
621
- secret_objects.append(resources_pb2.Secret(**secret_config))
622
-
623
- request = service_pb2.PostSecretsRequest(
624
- user_app_id=self.user_app_id, secrets=secret_objects
625
- )
626
- response = self._grpc_request(self.STUB.PostSecrets, request)
627
- if response.status.code != status_code_pb2.SUCCESS:
628
- raise Exception(response.status)
629
-
630
- self.logger.info(f"Secrets created successfully:\n{response.status}")
631
-
632
- # Convert response to list of dictionaries
633
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
634
- created_secrets = []
635
- for secret in dict_response.get("secrets", []):
636
- kwargs = self.process_response_keys(secret, "secret")
637
- created_secrets.append(dict(auth=self.auth_helper, **kwargs))
638
-
639
- return created_secrets
640
-
641
- def patch_secrets(
642
- self, secrets: List[Dict[str, Any]], action: str = 'overwrite'
643
- ) -> List[dict]:
644
- """Patches secrets for the user.
645
-
646
- Args:
647
- secrets (List[Dict[str, Any]]): List of secret configurations to patch.
648
- Each secret dict should contain:
649
- - id (str): The name/ID of the secret to patch (required)
650
- - value (str): Optional new secret value
651
- - description (str): Optional new description
652
- - expires_at (str): Optional new expiration timestamp
653
- action (str): The action to perform on the secrets (overwrite/remove).
654
-
655
- Returns:
656
- List[Dict]: List of dictionaries containing information about the patched secrets.
657
-
658
- Example:
659
- >>> from clarifai.client.user import User
660
- >>> client = User(user_id="user_id")
661
- >>> secrets = [{"id": "secret1", "description": "Updated Secret Description"}]
662
- >>> patched_secrets = client.patch_secrets(secrets, action="overwrite")
663
- """
664
- assert isinstance(secrets, list), "secrets param should be a list"
665
-
666
- # Convert dict secrets to protobuf Secret objects
667
- secret_objects = []
668
- for secret_config in secrets:
669
- secret_objects.append(resources_pb2.Secret(**secret_config))
670
-
671
- request = service_pb2.PatchSecretsRequest(
672
- user_app_id=self.user_app_id, secret=secret_objects, action=action
673
- )
674
- response = self._grpc_request(self.STUB.PatchSecrets, request)
675
- if response.status.code != status_code_pb2.SUCCESS:
676
- raise Exception(response.status)
677
-
678
- self.logger.info(f"Secrets patched successfully:\n{response.status}")
679
-
680
- # Convert response to list of dictionaries
681
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
682
- patched_secrets = []
683
- for secret in dict_response.get("secrets", []):
684
- kwargs = self.process_response_keys(secret, "secret")
685
- patched_secrets.append(dict(auth=self.auth_helper, **kwargs))
686
-
687
- return patched_secrets
688
-
689
- def delete_secrets(self, secret_ids: List[str]) -> None:
690
- """Deletes a list of secrets for the user.
691
-
692
- Args:
693
- secret_ids (List[str]): The secret IDs of the user to delete.
694
-
695
- Example:
696
- >>> from clarifai.client.user import User
697
- >>> client = User(user_id="user_id")
698
- >>> client.delete_secrets(secret_ids=["secret_id1", "secret_id2"])
699
- """
700
- assert isinstance(secret_ids, list), "secret_ids param should be a list"
701
-
702
- request = service_pb2.DeleteSecretsRequest(user_app_id=self.user_app_id, ids=secret_ids)
703
- response = self._grpc_request(self.STUB.DeleteSecrets, request)
704
- if response.status.code != status_code_pb2.SUCCESS:
705
- raise Exception(response.status)
706
- self.logger.info("\nSecrets Deleted\n%s", response.status)
707
-
708
536
  def list_models(
709
537
  self,
710
538
  user_id: str = None,
@@ -102,7 +102,6 @@ class ModelBuilder:
102
102
  self.folder = self._validate_folder(folder)
103
103
  self.config = self._load_config(os.path.join(self.folder, 'config.yaml'))
104
104
  self._validate_config()
105
- self._validate_config_secrets()
106
105
  self._validate_stream_options()
107
106
  self.model_proto = self._get_model_proto()
108
107
  self.model_id = self.model_proto.id
@@ -466,115 +465,6 @@ class ModelBuilder:
466
465
  "2) set_output_context"
467
466
  )
468
467
 
469
- def _validate_config_secrets(self):
470
- """
471
- Validate the secrets section in the config file.
472
- """
473
- if "secrets" not in self.config:
474
- return
475
-
476
- secrets = self.config.get("secrets", [])
477
- if not isinstance(secrets, list):
478
- raise ValueError("The 'secrets' field must be an array.")
479
-
480
- for i, secret in enumerate(secrets):
481
- if not isinstance(secret, dict):
482
- raise ValueError(f"Secret at index {i} must be a dictionary.")
483
-
484
- # Validate required fields
485
- if "id" not in secret or not secret["id"]:
486
- raise ValueError(f"Secret at index {i} must have a non-empty 'id' field.")
487
-
488
- if "type" not in secret or not secret["type"]:
489
- secret["type"] = "env"
490
-
491
- if "env_var" not in secret or not secret["env_var"]:
492
- raise ValueError(f"Secret at index {i} must have a non-empty 'env_var' field.")
493
- # Validate secret type
494
- if secret["type"] != "env":
495
- raise ValueError(
496
- f"Secret at index {i} has invalid type '{secret['type']}'. Must be 'env'."
497
- )
498
-
499
- logger.info(f"Validated {len(secrets)} secrets in config file.")
500
-
501
- def _process_secrets(self):
502
- """
503
- Process secrets from config file and create/validate them using the User client.
504
- Returns the processed secrets array for inclusion in ModelVersion.OutputInfo.Params.
505
- """
506
- if "secrets" not in self.config:
507
- return []
508
-
509
- secrets = self.config.get("secrets", [])
510
- if not secrets:
511
- return []
512
-
513
- # Get user client for secret operations
514
- user = User(
515
- user_id=self.config.get('model').get('user_id'),
516
- pat=self.client.pat,
517
- token=self.client.token,
518
- base_url=self.client.base,
519
- )
520
-
521
- processed_secrets = []
522
- secrets_to_create = []
523
-
524
- for secret in secrets:
525
- secret_id = secret["id"]
526
- secret_type = secret.get("type", "env")
527
- env_var = secret["env_var"]
528
- secret_value = secret.get("value") # Optional for existing secrets
529
-
530
- # Check if secret already exists
531
- try:
532
- existing_secret = user.get_secret(secret_id)
533
- logger.info(f"Secret '{secret_id}' already exists, using existing secret.")
534
-
535
- # Add to processed secrets without the value
536
- processed_secret = {
537
- "id": secret_id,
538
- "type": secret_type,
539
- "env_var": env_var,
540
- }
541
- processed_secrets.append(processed_secret)
542
-
543
- except Exception:
544
- # Secret doesn't exist, need to create it
545
- if secret_value:
546
- logger.info(f"Secret '{secret_id}' does not exist, will create it.")
547
- secrets_to_create.append(
548
- {
549
- "id": secret_id,
550
- "value": secret_value,
551
- "description": secret.get("description", f"Secret for {env_var}"),
552
- }
553
- )
554
-
555
- # Add to processed secrets
556
- processed_secret = {
557
- "id": secret_id,
558
- "type": secret_type,
559
- "env_var": env_var,
560
- }
561
- processed_secrets.append(processed_secret)
562
- else:
563
- raise ValueError(
564
- f"Secret '{secret_id}' does not exist and no value provided for creation."
565
- )
566
-
567
- # Create new secrets if any
568
- if secrets_to_create:
569
- try:
570
- created_secrets = user.create_secrets(secrets_to_create)
571
- logger.info(f"Successfully created {len(created_secrets)} new secrets.")
572
- except Exception as e:
573
- logger.error(f"Failed to create secrets: {e}")
574
- raise
575
-
576
- return processed_secrets
577
-
578
468
  def _is_clarifai_internal(self):
579
469
  """
580
470
  Check if the current user is a Clarifai internal user based on email domain.
@@ -1368,29 +1258,6 @@ class ModelBuilder:
1368
1258
  metadata_struct.update({'git_registry': git_info})
1369
1259
  model_version_proto.metadata.CopyFrom(metadata_struct)
1370
1260
 
1371
- # Process and add secrets to output_info.params
1372
- try:
1373
- processed_secrets = self._process_secrets()
1374
- if processed_secrets:
1375
- # Initialize output_info.params if not already present
1376
- if not model_version_proto.HasField("output_info"):
1377
- model_version_proto.output_info.CopyFrom(resources_pb2.OutputInfo())
1378
-
1379
- # Initialize params if not already present
1380
- if not model_version_proto.output_info.HasField("params"):
1381
- from google.protobuf.struct_pb2 import Struct
1382
-
1383
- model_version_proto.output_info.params.CopyFrom(Struct())
1384
-
1385
- # Add secrets to params
1386
- model_version_proto.output_info.params.update({"secrets": processed_secrets})
1387
- logger.info(
1388
- f"Added {len(processed_secrets)} secrets to model version output_info.params"
1389
- )
1390
- except Exception as e:
1391
- logger.error(f"Failed to process secrets: {e}")
1392
- raise
1393
-
1394
1261
  model_type_id = self.config.get('model').get('model_type_id')
1395
1262
  if model_type_id in CONCEPTS_REQUIRED_MODEL_TYPE:
1396
1263
  if 'concepts' in self.config:
@@ -1,10 +1,10 @@
1
1
  import time
2
- from typing import Iterator, Optional
2
+ from typing import Iterator, Optional, Union
3
3
 
4
4
  from clarifai_grpc.grpc.api import service_pb2
5
5
  from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
6
6
  from clarifai_protocol import BaseRunner
7
- from clarifai_protocol.utils.health import HealthProbeRequestHandler
7
+ from clarifai_protocol.utils.health import HealthProbeRequestHandler, start_health_server_thread
8
8
 
9
9
  from clarifai.client.auth.helper import ClarifaiAuthHelper
10
10
  from clarifai.utils.constants import STATUS_FAIL, STATUS_MIXED, STATUS_OK, STATUS_UNKNOWN
@@ -15,7 +15,7 @@ from ..utils.url_fetcher import ensure_urls_downloaded
15
15
  from .model_class import ModelClass
16
16
 
17
17
 
18
- class ModelRunner(BaseRunner, HealthProbeRequestHandler):
18
+ class ModelRunner(BaseRunner):
19
19
  """
20
20
  This is a subclass of the runner class which will handle only the work items relevant to models.
21
21
  """
@@ -32,6 +32,7 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
32
32
  pat: Optional[str] = None,
33
33
  token: Optional[str] = None,
34
34
  num_parallel_polls: int = 4,
35
+ health_check_port: Union[int, None] = 8080,
35
36
  **kwargs,
36
37
  ) -> None:
37
38
  super().__init__(
@@ -70,10 +71,27 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
70
71
  # If auth helper creation fails, proceed without authentication
71
72
  self._auth_helper = None
72
73
 
74
+ # if the model has a handle_liveness_probe method, call it to determine liveness
75
+ # otherwise rely on self.is_alive from the protocol
76
+ if hasattr(self.model, 'handle_liveness_probe'):
77
+ HealthProbeRequestHandler.handle_liveness_probe = self.model.handle_liveness_probe
78
+
79
+ # if the model has a handle_readiness_probe method, call it to determine readiness
80
+ # otherwise rely on self.is_ready from the protocol
81
+ if hasattr(self.model, 'handle_readiness_probe'):
82
+ HealthProbeRequestHandler.handle_readiness_probe = self.model.handle_readiness_probe
83
+
84
+ # if the model has a handle_startup_probe method, call it to determine startup
85
+ # otherwise rely on self.is_startup from the protocol
86
+ if hasattr(self.model, 'handle_startup_probe'):
87
+ HealthProbeRequestHandler.handle_startup_probe = self.model.handle_startup_probe
88
+
73
89
  # After model load successfully set the health probe to ready and startup
74
90
  HealthProbeRequestHandler.is_ready = True
75
91
  HealthProbeRequestHandler.is_startup = True
76
92
 
93
+ start_health_server_thread(port=health_check_port, address='')
94
+
77
95
  def get_runner_item_output_for_status(
78
96
  self, status: status_pb2.Status
79
97
  ) -> service_pb2.RunnerItemOutput:
@@ -69,6 +69,24 @@ class OpenAIModelClass(ModelClass):
69
69
 
70
70
  return completion_args
71
71
 
72
+ def handle_liveness_probe(self) -> bool:
73
+ """Handle liveness probe by checking if the client can list models."""
74
+ try:
75
+ _ = self.client.models.list()
76
+ return True
77
+ except Exception as e:
78
+ logger.error(f"Liveness probe failed: {e}", exc_info=True)
79
+ return False
80
+
81
+ def handle_readiness_probe(self) -> bool:
82
+ """Handle readiness probe by checking if the client can list models."""
83
+ try:
84
+ _ = self.client.models.list()
85
+ return True
86
+ except Exception as e:
87
+ logger.error(f"Readiness probe failed: {e}", exc_info=True)
88
+ return False
89
+
72
90
  def _set_usage(self, resp):
73
91
  if resp.usage and resp.usage.prompt_tokens and resp.usage.completion_tokens:
74
92
  self.set_output_context(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.7.5rc1
3
+ Version: 11.8.1
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -0,0 +1,150 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ requirements.txt
6
+ setup.py
7
+ clarifai/__init__.py
8
+ clarifai/cli.py
9
+ clarifai/errors.py
10
+ clarifai/versions.py
11
+ clarifai.egg-info/PKG-INFO
12
+ clarifai.egg-info/SOURCES.txt
13
+ clarifai.egg-info/dependency_links.txt
14
+ clarifai.egg-info/entry_points.txt
15
+ clarifai.egg-info/requires.txt
16
+ clarifai.egg-info/top_level.txt
17
+ clarifai/cli/README.md
18
+ clarifai/cli/__init__.py
19
+ clarifai/cli/__main__.py
20
+ clarifai/cli/base.py
21
+ clarifai/cli/compute_cluster.py
22
+ clarifai/cli/deployment.py
23
+ clarifai/cli/model.py
24
+ clarifai/cli/nodepool.py
25
+ clarifai/cli/pipeline.py
26
+ clarifai/cli/pipeline_step.py
27
+ clarifai/cli/templates/__init__.py
28
+ clarifai/cli/templates/model_templates.py
29
+ clarifai/cli/templates/pipeline_step_templates.py
30
+ clarifai/cli/templates/pipeline_templates.py
31
+ clarifai/client/__init__.py
32
+ clarifai/client/app.py
33
+ clarifai/client/base.py
34
+ clarifai/client/compute_cluster.py
35
+ clarifai/client/dataset.py
36
+ clarifai/client/deployment.py
37
+ clarifai/client/input.py
38
+ clarifai/client/lister.py
39
+ clarifai/client/model.py
40
+ clarifai/client/model_client.py
41
+ clarifai/client/module.py
42
+ clarifai/client/nodepool.py
43
+ clarifai/client/pipeline.py
44
+ clarifai/client/pipeline_step.py
45
+ clarifai/client/runner.py
46
+ clarifai/client/search.py
47
+ clarifai/client/user.py
48
+ clarifai/client/workflow.py
49
+ clarifai/client/auth/__init__.py
50
+ clarifai/client/auth/helper.py
51
+ clarifai/client/auth/register.py
52
+ clarifai/client/auth/stub.py
53
+ clarifai/constants/base.py
54
+ clarifai/constants/dataset.py
55
+ clarifai/constants/input.py
56
+ clarifai/constants/model.py
57
+ clarifai/constants/rag.py
58
+ clarifai/constants/search.py
59
+ clarifai/constants/workflow.py
60
+ clarifai/datasets/__init__.py
61
+ clarifai/datasets/export/__init__.py
62
+ clarifai/datasets/export/inputs_annotations.py
63
+ clarifai/datasets/upload/__init__.py
64
+ clarifai/datasets/upload/base.py
65
+ clarifai/datasets/upload/features.py
66
+ clarifai/datasets/upload/image.py
67
+ clarifai/datasets/upload/multimodal.py
68
+ clarifai/datasets/upload/text.py
69
+ clarifai/datasets/upload/utils.py
70
+ clarifai/datasets/upload/loaders/README.md
71
+ clarifai/datasets/upload/loaders/__init__.py
72
+ clarifai/datasets/upload/loaders/coco_captions.py
73
+ clarifai/datasets/upload/loaders/coco_detection.py
74
+ clarifai/datasets/upload/loaders/imagenet_classification.py
75
+ clarifai/datasets/upload/loaders/xview_detection.py
76
+ clarifai/models/__init__.py
77
+ clarifai/models/api.py
78
+ clarifai/modules/README.md
79
+ clarifai/modules/__init__.py
80
+ clarifai/modules/css.py
81
+ clarifai/modules/pages.py
82
+ clarifai/modules/style.css
83
+ clarifai/rag/__init__.py
84
+ clarifai/rag/rag.py
85
+ clarifai/rag/utils.py
86
+ clarifai/runners/__init__.py
87
+ clarifai/runners/server.py
88
+ clarifai/runners/dockerfile_template/Dockerfile.template
89
+ clarifai/runners/models/__init__.py
90
+ clarifai/runners/models/dummy_openai_model.py
91
+ clarifai/runners/models/mcp_class.py
92
+ clarifai/runners/models/model_builder.py
93
+ clarifai/runners/models/model_class.py
94
+ clarifai/runners/models/model_run_locally.py
95
+ clarifai/runners/models/model_runner.py
96
+ clarifai/runners/models/model_servicer.py
97
+ clarifai/runners/models/openai_class.py
98
+ clarifai/runners/models/visual_classifier_class.py
99
+ clarifai/runners/models/visual_detector_class.py
100
+ clarifai/runners/pipeline_steps/__init__.py
101
+ clarifai/runners/pipeline_steps/pipeline_step_builder.py
102
+ clarifai/runners/pipelines/__init__.py
103
+ clarifai/runners/pipelines/pipeline_builder.py
104
+ clarifai/runners/utils/__init__.py
105
+ clarifai/runners/utils/code_script.py
106
+ clarifai/runners/utils/const.py
107
+ clarifai/runners/utils/data_utils.py
108
+ clarifai/runners/utils/loader.py
109
+ clarifai/runners/utils/method_signatures.py
110
+ clarifai/runners/utils/model_utils.py
111
+ clarifai/runners/utils/openai_convertor.py
112
+ clarifai/runners/utils/pipeline_validation.py
113
+ clarifai/runners/utils/serializers.py
114
+ clarifai/runners/utils/url_fetcher.py
115
+ clarifai/runners/utils/data_types/__init__.py
116
+ clarifai/runners/utils/data_types/data_types.py
117
+ clarifai/schema/search.py
118
+ clarifai/urls/helper.py
119
+ clarifai/utils/__init__.py
120
+ clarifai/utils/cli.py
121
+ clarifai/utils/config.py
122
+ clarifai/utils/constants.py
123
+ clarifai/utils/logging.py
124
+ clarifai/utils/misc.py
125
+ clarifai/utils/model_train.py
126
+ clarifai/utils/protobuf.py
127
+ clarifai/utils/secrets.py
128
+ clarifai/utils/evaluation/__init__.py
129
+ clarifai/utils/evaluation/helpers.py
130
+ clarifai/utils/evaluation/main.py
131
+ clarifai/utils/evaluation/testset_annotation_parser.py
132
+ clarifai/workflows/__init__.py
133
+ clarifai/workflows/export.py
134
+ clarifai/workflows/utils.py
135
+ clarifai/workflows/validate.py
136
+ tests/test_app.py
137
+ tests/test_async_stub.py
138
+ tests/test_auth.py
139
+ tests/test_data_upload.py
140
+ tests/test_eval.py
141
+ tests/test_list_models.py
142
+ tests/test_misc.py
143
+ tests/test_model_predict.py
144
+ tests/test_model_train.py
145
+ tests/test_modules.py
146
+ tests/test_pipeline_client.py
147
+ tests/test_rag.py
148
+ tests/test_search.py
149
+ tests/test_secrets.py
150
+ tests/test_stub.py
@@ -1 +0,0 @@
1
- __version__ = "11.7.5rc1"