clarifai 11.2.3rc1__py3-none-any.whl → 11.2.3rc3__py3-none-any.whl

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 (248) hide show
  1. clarifai/__init__.py +1 -1
  2. clarifai/__pycache__/__init__.cpython-310.pyc +0 -0
  3. clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
  4. clarifai/__pycache__/errors.cpython-310.pyc +0 -0
  5. clarifai/__pycache__/versions.cpython-310.pyc +0 -0
  6. clarifai/cli/__pycache__/__init__.cpython-310.pyc +0 -0
  7. clarifai/cli/__pycache__/base.cpython-310.pyc +0 -0
  8. clarifai/cli/__pycache__/base_cli.cpython-310.pyc +0 -0
  9. clarifai/cli/__pycache__/compute_cluster.cpython-310.pyc +0 -0
  10. clarifai/cli/__pycache__/deployment.cpython-310.pyc +0 -0
  11. clarifai/cli/__pycache__/model.cpython-310.pyc +0 -0
  12. clarifai/cli/__pycache__/model_cli.cpython-310.pyc +0 -0
  13. clarifai/cli/__pycache__/nodepool.cpython-310.pyc +0 -0
  14. clarifai/cli/base.py +81 -228
  15. clarifai/cli/compute_cluster.py +17 -25
  16. clarifai/cli/deployment.py +41 -67
  17. clarifai/cli/model.py +39 -26
  18. clarifai/cli/nodepool.py +40 -59
  19. clarifai/client/__pycache__/__init__.cpython-310.pyc +0 -0
  20. clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
  21. clarifai/client/__pycache__/app.cpython-310.pyc +0 -0
  22. clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
  23. clarifai/client/__pycache__/base.cpython-310.pyc +0 -0
  24. clarifai/client/__pycache__/compute_cluster.cpython-310.pyc +0 -0
  25. clarifai/client/__pycache__/dataset.cpython-310.pyc +0 -0
  26. clarifai/client/__pycache__/deployment.cpython-310.pyc +0 -0
  27. clarifai/client/__pycache__/input.cpython-310.pyc +0 -0
  28. clarifai/client/__pycache__/lister.cpython-310.pyc +0 -0
  29. clarifai/client/__pycache__/model.cpython-310.pyc +0 -0
  30. clarifai/client/__pycache__/module.cpython-310.pyc +0 -0
  31. clarifai/client/__pycache__/nodepool.cpython-310.pyc +0 -0
  32. clarifai/client/__pycache__/search.cpython-310.pyc +0 -0
  33. clarifai/client/__pycache__/user.cpython-310.pyc +0 -0
  34. clarifai/client/__pycache__/workflow.cpython-310.pyc +0 -0
  35. clarifai/client/app.py +1 -1
  36. clarifai/client/auth/__pycache__/__init__.cpython-310.pyc +0 -0
  37. clarifai/client/auth/__pycache__/helper.cpython-310.pyc +0 -0
  38. clarifai/client/auth/__pycache__/register.cpython-310.pyc +0 -0
  39. clarifai/client/auth/__pycache__/stub.cpython-310.pyc +0 -0
  40. clarifai/client/cli/__init__.py +0 -0
  41. clarifai/client/cli/__pycache__/__init__.cpython-310.pyc +0 -0
  42. clarifai/client/cli/__pycache__/base_cli.cpython-310.pyc +0 -0
  43. clarifai/client/cli/__pycache__/model_cli.cpython-310.pyc +0 -0
  44. clarifai/client/cli/base_cli.py +88 -0
  45. clarifai/client/cli/model_cli.py +29 -0
  46. clarifai/client/model.py +159 -393
  47. clarifai/client/model_client.py +502 -0
  48. clarifai/constants/__pycache__/base.cpython-310.pyc +0 -0
  49. clarifai/constants/__pycache__/dataset.cpython-310.pyc +0 -0
  50. clarifai/constants/__pycache__/input.cpython-310.pyc +0 -0
  51. clarifai/constants/__pycache__/{model.cpython-312.pyc → model.cpython-310.pyc} +0 -0
  52. clarifai/constants/__pycache__/rag.cpython-310.pyc +0 -0
  53. clarifai/constants/__pycache__/search.cpython-310.pyc +0 -0
  54. clarifai/constants/__pycache__/workflow.cpython-310.pyc +0 -0
  55. clarifai/datasets/__pycache__/__init__.cpython-310.pyc +0 -0
  56. clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  57. clarifai/datasets/export/__pycache__/__init__.cpython-310.pyc +0 -0
  58. clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
  59. clarifai/datasets/export/__pycache__/inputs_annotations.cpython-310.pyc +0 -0
  60. clarifai/datasets/upload/__pycache__/__init__.cpython-310.pyc +0 -0
  61. clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
  62. clarifai/datasets/upload/__pycache__/base.cpython-310.pyc +0 -0
  63. clarifai/datasets/upload/__pycache__/features.cpython-310.pyc +0 -0
  64. clarifai/datasets/upload/__pycache__/image.cpython-310.pyc +0 -0
  65. clarifai/datasets/upload/__pycache__/multimodal.cpython-310.pyc +0 -0
  66. clarifai/datasets/upload/__pycache__/text.cpython-310.pyc +0 -0
  67. clarifai/datasets/upload/__pycache__/utils.cpython-310.pyc +0 -0
  68. clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-39.pyc +0 -0
  69. clarifai/models/__pycache__/__init__.cpython-39.pyc +0 -0
  70. clarifai/modules/__pycache__/__init__.cpython-39.pyc +0 -0
  71. clarifai/rag/__pycache__/__init__.cpython-310.pyc +0 -0
  72. clarifai/rag/__pycache__/__init__.cpython-39.pyc +0 -0
  73. clarifai/rag/__pycache__/rag.cpython-310.pyc +0 -0
  74. clarifai/rag/__pycache__/rag.cpython-39.pyc +0 -0
  75. clarifai/rag/__pycache__/utils.cpython-310.pyc +0 -0
  76. clarifai/runners/__init__.py +2 -7
  77. clarifai/runners/__pycache__/__init__.cpython-310.pyc +0 -0
  78. clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
  79. clarifai/runners/dockerfile_template/Dockerfile.cpu.template +31 -0
  80. clarifai/runners/dockerfile_template/Dockerfile.cuda.template +42 -0
  81. clarifai/runners/dockerfile_template/Dockerfile.nim +71 -0
  82. clarifai/runners/models/__pycache__/__init__.cpython-310.pyc +0 -0
  83. clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
  84. clarifai/runners/models/__pycache__/base_typed_model.cpython-310.pyc +0 -0
  85. clarifai/runners/models/__pycache__/base_typed_model.cpython-39.pyc +0 -0
  86. clarifai/runners/models/__pycache__/model_class.cpython-310.pyc +0 -0
  87. clarifai/runners/models/__pycache__/model_run_locally.cpython-310-pytest-7.1.2.pyc +0 -0
  88. clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc +0 -0
  89. clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc +0 -0
  90. clarifai/runners/models/__pycache__/model_upload.cpython-310.pyc +0 -0
  91. clarifai/runners/models/model_builder.py +138 -51
  92. clarifai/runners/models/model_class.py +441 -28
  93. clarifai/runners/models/model_class_refract.py +80 -0
  94. clarifai/runners/models/model_run_locally.py +25 -89
  95. clarifai/runners/models/model_runner.py +8 -0
  96. clarifai/runners/models/model_servicer.py +11 -2
  97. clarifai/runners/models/model_upload.py +607 -0
  98. clarifai/runners/models/temp.py +25 -0
  99. clarifai/runners/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  100. clarifai/runners/utils/__pycache__/__init__.cpython-38.pyc +0 -0
  101. clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  102. clarifai/runners/utils/__pycache__/buffered_stream.cpython-310.pyc +0 -0
  103. clarifai/runners/utils/__pycache__/buffered_stream.cpython-38.pyc +0 -0
  104. clarifai/runners/utils/__pycache__/buffered_stream.cpython-39.pyc +0 -0
  105. clarifai/runners/utils/__pycache__/const.cpython-310.pyc +0 -0
  106. clarifai/runners/utils/__pycache__/constants.cpython-310.pyc +0 -0
  107. clarifai/runners/utils/__pycache__/constants.cpython-38.pyc +0 -0
  108. clarifai/runners/utils/__pycache__/constants.cpython-39.pyc +0 -0
  109. clarifai/runners/utils/__pycache__/data_handler.cpython-310.pyc +0 -0
  110. clarifai/runners/utils/__pycache__/data_handler.cpython-38.pyc +0 -0
  111. clarifai/runners/utils/__pycache__/data_handler.cpython-39.pyc +0 -0
  112. clarifai/runners/utils/__pycache__/data_utils.cpython-310.pyc +0 -0
  113. clarifai/runners/utils/__pycache__/data_utils.cpython-38.pyc +0 -0
  114. clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
  115. clarifai/runners/utils/__pycache__/grpc_server.cpython-310.pyc +0 -0
  116. clarifai/runners/utils/__pycache__/grpc_server.cpython-38.pyc +0 -0
  117. clarifai/runners/utils/__pycache__/grpc_server.cpython-39.pyc +0 -0
  118. clarifai/runners/utils/__pycache__/health.cpython-310.pyc +0 -0
  119. clarifai/runners/utils/__pycache__/health.cpython-38.pyc +0 -0
  120. clarifai/runners/utils/__pycache__/health.cpython-39.pyc +0 -0
  121. clarifai/runners/utils/__pycache__/loader.cpython-310.pyc +0 -0
  122. clarifai/runners/utils/__pycache__/logging.cpython-310.pyc +0 -0
  123. clarifai/runners/utils/__pycache__/logging.cpython-38.pyc +0 -0
  124. clarifai/runners/utils/__pycache__/logging.cpython-39.pyc +0 -0
  125. clarifai/runners/utils/__pycache__/stream_source.cpython-310.pyc +0 -0
  126. clarifai/runners/utils/__pycache__/stream_source.cpython-39.pyc +0 -0
  127. clarifai/runners/utils/__pycache__/url_fetcher.cpython-310.pyc +0 -0
  128. clarifai/runners/utils/__pycache__/url_fetcher.cpython-38.pyc +0 -0
  129. clarifai/runners/utils/__pycache__/url_fetcher.cpython-39.pyc +0 -0
  130. clarifai/runners/utils/code_script.py +217 -0
  131. clarifai/runners/utils/const.py +8 -9
  132. clarifai/runners/utils/data_handler.py +271 -210
  133. clarifai/runners/utils/data_handler_refract.py +213 -0
  134. clarifai/runners/utils/data_types.py +473 -0
  135. clarifai/runners/utils/data_utils.py +165 -0
  136. clarifai/runners/utils/loader.py +6 -36
  137. clarifai/runners/utils/logger.py +0 -0
  138. clarifai/runners/utils/method_signatures.py +518 -0
  139. clarifai/runners/utils/serializers.py +222 -0
  140. clarifai/schema/__pycache__/search.cpython-310.pyc +0 -0
  141. clarifai/urls/__pycache__/helper.cpython-310.pyc +0 -0
  142. clarifai/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  143. clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  144. clarifai/utils/__pycache__/cli.cpython-310.pyc +0 -0
  145. clarifai/utils/__pycache__/constants.cpython-310.pyc +0 -0
  146. clarifai/utils/__pycache__/logging.cpython-310.pyc +0 -0
  147. clarifai/utils/__pycache__/misc.cpython-310.pyc +0 -0
  148. clarifai/utils/__pycache__/model_train.cpython-310.pyc +0 -0
  149. clarifai/utils/cli.py +33 -132
  150. clarifai/utils/constants.py +0 -4
  151. clarifai/utils/evaluation/__pycache__/__init__.cpython-39.pyc +0 -0
  152. clarifai/utils/evaluation/__pycache__/main.cpython-39.pyc +0 -0
  153. clarifai/utils/misc.py +0 -2
  154. clarifai/workflows/__pycache__/__init__.cpython-310.pyc +0 -0
  155. clarifai/workflows/__pycache__/__init__.cpython-39.pyc +0 -0
  156. clarifai/workflows/__pycache__/export.cpython-310.pyc +0 -0
  157. clarifai/workflows/__pycache__/utils.cpython-310.pyc +0 -0
  158. clarifai/workflows/__pycache__/validate.cpython-310.pyc +0 -0
  159. {clarifai-11.2.3rc1.dist-info → clarifai-11.2.3rc3.dist-info}/METADATA +14 -3
  160. clarifai-11.2.3rc3.dist-info/RECORD +238 -0
  161. {clarifai-11.2.3rc1.dist-info → clarifai-11.2.3rc3.dist-info}/WHEEL +1 -1
  162. clarifai/__pycache__/__init__.cpython-312.pyc +0 -0
  163. clarifai/__pycache__/errors.cpython-312.pyc +0 -0
  164. clarifai/__pycache__/versions.cpython-312.pyc +0 -0
  165. clarifai/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  166. clarifai/cli/__pycache__/base.cpython-312.pyc +0 -0
  167. clarifai/cli/__pycache__/compute_cluster.cpython-312.pyc +0 -0
  168. clarifai/cli/__pycache__/deployment.cpython-312.pyc +0 -0
  169. clarifai/cli/__pycache__/model.cpython-312.pyc +0 -0
  170. clarifai/cli/__pycache__/nodepool.cpython-312.pyc +0 -0
  171. clarifai/client/__pycache__/__init__.cpython-312.pyc +0 -0
  172. clarifai/client/__pycache__/app.cpython-312.pyc +0 -0
  173. clarifai/client/__pycache__/base.cpython-312.pyc +0 -0
  174. clarifai/client/__pycache__/compute_cluster.cpython-312.pyc +0 -0
  175. clarifai/client/__pycache__/dataset.cpython-312.pyc +0 -0
  176. clarifai/client/__pycache__/deployment.cpython-312.pyc +0 -0
  177. clarifai/client/__pycache__/input.cpython-312.pyc +0 -0
  178. clarifai/client/__pycache__/lister.cpython-312.pyc +0 -0
  179. clarifai/client/__pycache__/model.cpython-312.pyc +0 -0
  180. clarifai/client/__pycache__/model_client.cpython-312.pyc +0 -0
  181. clarifai/client/__pycache__/module.cpython-312.pyc +0 -0
  182. clarifai/client/__pycache__/nodepool.cpython-312.pyc +0 -0
  183. clarifai/client/__pycache__/search.cpython-312.pyc +0 -0
  184. clarifai/client/__pycache__/user.cpython-312.pyc +0 -0
  185. clarifai/client/__pycache__/workflow.cpython-312.pyc +0 -0
  186. clarifai/client/auth/__pycache__/__init__.cpython-312.pyc +0 -0
  187. clarifai/client/auth/__pycache__/helper.cpython-312.pyc +0 -0
  188. clarifai/client/auth/__pycache__/register.cpython-312.pyc +0 -0
  189. clarifai/client/auth/__pycache__/stub.cpython-312.pyc +0 -0
  190. clarifai/constants/__pycache__/base.cpython-312.pyc +0 -0
  191. clarifai/constants/__pycache__/dataset.cpython-312.pyc +0 -0
  192. clarifai/constants/__pycache__/input.cpython-312.pyc +0 -0
  193. clarifai/constants/__pycache__/search.cpython-312.pyc +0 -0
  194. clarifai/constants/__pycache__/workflow.cpython-312.pyc +0 -0
  195. clarifai/datasets/__pycache__/__init__.cpython-312.pyc +0 -0
  196. clarifai/datasets/export/__pycache__/__init__.cpython-312.pyc +0 -0
  197. clarifai/datasets/export/__pycache__/inputs_annotations.cpython-312.pyc +0 -0
  198. clarifai/datasets/upload/__pycache__/__init__.cpython-312.pyc +0 -0
  199. clarifai/datasets/upload/__pycache__/base.cpython-312.pyc +0 -0
  200. clarifai/datasets/upload/__pycache__/features.cpython-312.pyc +0 -0
  201. clarifai/datasets/upload/__pycache__/image.cpython-312.pyc +0 -0
  202. clarifai/datasets/upload/__pycache__/multimodal.cpython-312.pyc +0 -0
  203. clarifai/datasets/upload/__pycache__/text.cpython-312.pyc +0 -0
  204. clarifai/datasets/upload/__pycache__/utils.cpython-312.pyc +0 -0
  205. clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-312.pyc +0 -0
  206. clarifai/datasets/upload/loaders/__pycache__/coco_detection.cpython-312.pyc +0 -0
  207. clarifai/modules/__pycache__/__init__.cpython-312.pyc +0 -0
  208. clarifai/modules/__pycache__/css.cpython-312.pyc +0 -0
  209. clarifai/runners/__pycache__/__init__.cpython-312.pyc +0 -0
  210. clarifai/runners/__pycache__/server.cpython-312.pyc +0 -0
  211. clarifai/runners/models/__pycache__/__init__.cpython-312.pyc +0 -0
  212. clarifai/runners/models/__pycache__/base_typed_model.cpython-312.pyc +0 -0
  213. clarifai/runners/models/__pycache__/model_builder.cpython-312.pyc +0 -0
  214. clarifai/runners/models/__pycache__/model_class.cpython-312.pyc +0 -0
  215. clarifai/runners/models/__pycache__/model_run_locally.cpython-312.pyc +0 -0
  216. clarifai/runners/models/__pycache__/model_runner.cpython-312.pyc +0 -0
  217. clarifai/runners/models/__pycache__/model_servicer.cpython-312.pyc +0 -0
  218. clarifai/runners/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  219. clarifai/runners/utils/__pycache__/const.cpython-312.pyc +0 -0
  220. clarifai/runners/utils/__pycache__/data_handler.cpython-312.pyc +0 -0
  221. clarifai/runners/utils/__pycache__/data_types.cpython-312.pyc +0 -0
  222. clarifai/runners/utils/__pycache__/data_utils.cpython-312.pyc +0 -0
  223. clarifai/runners/utils/__pycache__/loader.cpython-312.pyc +0 -0
  224. clarifai/runners/utils/__pycache__/method_signatures.cpython-312.pyc +0 -0
  225. clarifai/runners/utils/__pycache__/serializers.cpython-312.pyc +0 -0
  226. clarifai/runners/utils/__pycache__/url_fetcher.cpython-312.pyc +0 -0
  227. clarifai/schema/__pycache__/search.cpython-312.pyc +0 -0
  228. clarifai/urls/__pycache__/helper.cpython-312.pyc +0 -0
  229. clarifai/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  230. clarifai/utils/__pycache__/cli.cpython-312.pyc +0 -0
  231. clarifai/utils/__pycache__/config.cpython-312.pyc +0 -0
  232. clarifai/utils/__pycache__/constants.cpython-312.pyc +0 -0
  233. clarifai/utils/__pycache__/logging.cpython-312.pyc +0 -0
  234. clarifai/utils/__pycache__/misc.cpython-312.pyc +0 -0
  235. clarifai/utils/__pycache__/model_train.cpython-312.pyc +0 -0
  236. clarifai/utils/config.py +0 -105
  237. clarifai/utils/config.py~ +0 -145
  238. clarifai/utils/evaluation/__pycache__/__init__.cpython-312.pyc +0 -0
  239. clarifai/utils/evaluation/__pycache__/helpers.cpython-312.pyc +0 -0
  240. clarifai/utils/evaluation/__pycache__/main.cpython-312.pyc +0 -0
  241. clarifai/workflows/__pycache__/__init__.cpython-312.pyc +0 -0
  242. clarifai/workflows/__pycache__/export.cpython-312.pyc +0 -0
  243. clarifai/workflows/__pycache__/utils.cpython-312.pyc +0 -0
  244. clarifai/workflows/__pycache__/validate.cpython-312.pyc +0 -0
  245. clarifai-11.2.3rc1.dist-info/RECORD +0 -185
  246. {clarifai-11.2.3rc1.dist-info → clarifai-11.2.3rc3.dist-info}/LICENSE +0 -0
  247. {clarifai-11.2.3rc1.dist-info → clarifai-11.2.3rc3.dist-info}/entry_points.txt +0 -0
  248. {clarifai-11.2.3rc1.dist-info → clarifai-11.2.3rc3.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,12 @@
1
1
  from io import BytesIO
2
2
 
3
+ from clarifai_grpc.grpc.api.resources_pb2 import ModelTypeEnumOption
4
+ from clarifai_grpc.grpc.api.resources_pb2 import ModelTypeField as InputFieldProto
5
+ from clarifai_grpc.grpc.api.resources_pb2 import ModelTypeRangeInfo
3
6
  from PIL import Image
4
7
 
8
+ from clarifai.runners.utils.data_types import MessageData
9
+
5
10
 
6
11
  def image_to_bytes(img: Image.Image, format="JPEG") -> bytes:
7
12
  buffered = BytesIO()
@@ -13,3 +18,163 @@ def image_to_bytes(img: Image.Image, format="JPEG") -> bytes:
13
18
  def bytes_to_image(bytes_img) -> Image.Image:
14
19
  img = Image.open(BytesIO(bytes_img))
15
20
  return img
21
+
22
+
23
+ def is_openai_chat_format(messages):
24
+ """
25
+ Verify if the given argument follows the OpenAI chat messages format.
26
+
27
+ Args:
28
+ messages (list): A list of dictionaries representing chat messages.
29
+
30
+ Returns:
31
+ bool: True if valid, False otherwise.
32
+ """
33
+ if not isinstance(messages, list):
34
+ return False
35
+
36
+ valid_roles = {"system", "user", "assistant", "function"}
37
+
38
+ for msg in messages:
39
+ if not isinstance(msg, dict):
40
+ return False
41
+ if "role" not in msg or "content" not in msg:
42
+ return False
43
+ if msg["role"] not in valid_roles:
44
+ return False
45
+
46
+ content = msg["content"]
47
+
48
+ # Content should be either a string (text message) or a multimodal list
49
+ if isinstance(content, str):
50
+ continue # Valid text message
51
+
52
+ elif isinstance(content, list):
53
+ for item in content:
54
+ if not isinstance(item, dict):
55
+ return False
56
+ return True
57
+
58
+
59
+ class InputField(MessageData):
60
+ """A field that can be used to store input data."""
61
+
62
+ def __init__(
63
+ self,
64
+ default=None,
65
+ description=None,
66
+ min_value=None,
67
+ max_value=None,
68
+ choices=None,
69
+ # is_param=True
70
+ ):
71
+ self.default = default
72
+ self.description = description
73
+ self.min_value = min_value
74
+ self.max_value = max_value
75
+ self.choices = choices
76
+ # self.is_param = is_param
77
+
78
+ def __repr__(self) -> str:
79
+ attrs = []
80
+ if self.default is not None:
81
+ attrs.append(f"default={self.default!r}")
82
+ if self.description is not None:
83
+ attrs.append(f"description={self.description!r}")
84
+ if self.min_value is not None:
85
+ attrs.append(f"min_value={self.min_value!r}")
86
+ if self.max_value is not None:
87
+ attrs.append(f"max_value={self.max_value!r}")
88
+ if self.choices is not None:
89
+ attrs.append(f"choices={self.choices!r}")
90
+ # attrs.append(f"is_param={self.is_param!r}")
91
+ return f"InputField({', '.join(attrs)})"
92
+
93
+ def to_proto(self, proto=None) -> InputFieldProto:
94
+ if proto is None:
95
+ proto = InputFieldProto()
96
+ if self.description is not None:
97
+ proto.description = self.description
98
+
99
+ if self.choices is not None:
100
+ for choice in self.choices:
101
+ option = ModelTypeEnumOption(id=str(choice))
102
+ proto.model_type_enum_options.append(option)
103
+
104
+ proto.required = self.default is None
105
+
106
+ if self.min_value is not None or self.max_value is not None:
107
+ range_info = ModelTypeRangeInfo()
108
+ if self.min_value is not None:
109
+ range_info.min = float(self.min_value)
110
+ if self.max_value is not None:
111
+ range_info.max = float(self.max_value)
112
+ proto.model_type_range_info.CopyFrom(range_info)
113
+ # proto.is_param = self.is_param
114
+
115
+ if self.default is not None:
116
+ if isinstance(self.default, str) or isinstance(self.default, bool) or isinstance(
117
+ self.default, (int, float)):
118
+ proto.default = str(self.default)
119
+ else:
120
+ import json
121
+ proto.default = json.dumps(self.default)
122
+
123
+ return proto
124
+
125
+ @classmethod
126
+ def from_proto(cls, proto):
127
+ default = None
128
+ if proto.HasField('default'):
129
+ pb_value = proto.default
130
+ if pb_value.HasField('string_value'):
131
+ default = pb_value.string_value
132
+ try:
133
+ import json
134
+ default = json.loads(default)
135
+ except json.JSONDecodeError:
136
+ pass
137
+ elif pb_value.HasField('number_value'):
138
+ default = pb_value.number_value
139
+ if default.is_integer():
140
+ default = int(default)
141
+ else:
142
+ default = float(default)
143
+ elif pb_value.HasField('bool_value'):
144
+ default = pb_value.bool_value
145
+
146
+ choices = [option.id for option in proto.model_type_enum_options
147
+ ] if proto.model_type_enum_options else None
148
+
149
+ min_value = None
150
+ max_value = None
151
+ if proto.HasField('model_type_range_info'):
152
+ min_value = proto.model_type_range_info.min
153
+ max_value = proto.model_type_range_info.max
154
+ if min_value.is_integer():
155
+ min_value = int(min_value)
156
+ if max_value.is_integer():
157
+ max_value = int(max_value)
158
+
159
+ return cls(
160
+ default=default,
161
+ description=proto.description if proto.description else None,
162
+ min_value=min_value,
163
+ max_value=max_value,
164
+ choices=choices,
165
+ # is_param=proto.is_param
166
+ )
167
+
168
+ @classmethod
169
+ def set_default(cls, proto=None, default=None):
170
+
171
+ if proto is None:
172
+ proto = InputFieldProto()
173
+ if default is not None:
174
+ if isinstance(default, str) or isinstance(default, bool) or isinstance(
175
+ default, (int, float)):
176
+ proto.default = str(default)
177
+ else:
178
+ import json
179
+ proto.default = json.dumps(default)
180
+ return proto
@@ -6,7 +6,6 @@ import shutil
6
6
 
7
7
  import requests
8
8
 
9
- from clarifai.runners.utils.const import CONCEPTS_REQUIRED_MODEL_TYPE
10
9
  from clarifai.utils.logging import logger
11
10
 
12
11
 
@@ -14,10 +13,9 @@ class HuggingFaceLoader:
14
13
 
15
14
  HF_DOWNLOAD_TEXT = "The 'huggingface_hub' package is not installed. Please install it using 'pip install huggingface_hub'."
16
15
 
17
- def __init__(self, repo_id=None, token=None, model_type_id=None):
16
+ def __init__(self, repo_id=None, token=None):
18
17
  self.repo_id = repo_id
19
18
  self.token = token
20
- self.clarifai_model_type_id = model_type_id
21
19
  if token:
22
20
  if self.validate_hftoken(token):
23
21
  try:
@@ -45,17 +43,13 @@ class HuggingFaceLoader:
45
43
  f"Error setting up Hugging Face token, please make sure you have the correct token: {e}")
46
44
  return False
47
45
 
48
- def download_checkpoints(self,
49
- checkpoint_path: str,
50
- allowed_file_patterns=None,
51
- ignore_file_patterns=None):
46
+ def download_checkpoints(self, checkpoint_path: str):
52
47
  # throw error if huggingface_hub wasn't installed
53
48
  try:
54
49
  from huggingface_hub import snapshot_download
55
50
  except ImportError:
56
51
  raise ImportError(self.HF_DOWNLOAD_TEXT)
57
- if os.path.exists(checkpoint_path) and self.validate_download(
58
- checkpoint_path, allowed_file_patterns, ignore_file_patterns):
52
+ if os.path.exists(checkpoint_path) and self.validate_download(checkpoint_path):
59
53
  logger.info("Checkpoints already exist")
60
54
  return True
61
55
  else:
@@ -67,16 +61,10 @@ class HuggingFaceLoader:
67
61
  return False
68
62
 
69
63
  self.ignore_patterns = self._get_ignore_patterns()
70
- if ignore_file_patterns:
71
- if self.ignore_patterns:
72
- self.ignore_patterns.extend(ignore_file_patterns)
73
- else:
74
- self.ignore_patterns = ignore_file_patterns
75
64
  snapshot_download(
76
65
  repo_id=self.repo_id,
77
66
  local_dir=checkpoint_path,
78
67
  local_dir_use_symlinks=False,
79
- allow_patterns=allowed_file_patterns,
80
68
  ignore_patterns=self.ignore_patterns)
81
69
  # Remove the `.cache` folder if it exists
82
70
  cache_path = os.path.join(checkpoint_path, ".cache")
@@ -87,8 +75,7 @@ class HuggingFaceLoader:
87
75
  logger.error(f"Error downloading model checkpoints {e}")
88
76
  return False
89
77
  finally:
90
- is_downloaded = self.validate_download(checkpoint_path, allowed_file_patterns,
91
- ignore_file_patterns)
78
+ is_downloaded = self.validate_download(checkpoint_path)
92
79
  if not is_downloaded:
93
80
  logger.error("Error validating downloaded model checkpoints")
94
81
  return False
@@ -122,13 +109,9 @@ class HuggingFaceLoader:
122
109
  from huggingface_hub import file_exists, repo_exists
123
110
  except ImportError:
124
111
  raise ImportError(self.HF_DOWNLOAD_TEXT)
125
- if self.clarifai_model_type_id in CONCEPTS_REQUIRED_MODEL_TYPE:
126
- return repo_exists(self.repo_id) and file_exists(self.repo_id, 'config.json')
127
- else:
128
- return repo_exists(self.repo_id)
112
+ return repo_exists(self.repo_id) and file_exists(self.repo_id, 'config.json')
129
113
 
130
- def validate_download(self, checkpoint_path: str, allowed_file_patterns: list,
131
- ignore_file_patterns: list):
114
+ def validate_download(self, checkpoint_path: str):
132
115
  # check if model exists on HF
133
116
  try:
134
117
  from huggingface_hub import list_repo_files
@@ -137,20 +120,7 @@ class HuggingFaceLoader:
137
120
  # Get the list of files on the repo
138
121
  repo_files = list_repo_files(self.repo_id, token=self.token)
139
122
 
140
- # Get the list of files on the repo that are allowed
141
- if allowed_file_patterns:
142
-
143
- def should_allow(file_path):
144
- return any(fnmatch.fnmatch(file_path, pattern) for pattern in allowed_file_patterns)
145
-
146
- repo_files = [f for f in repo_files if should_allow(f)]
147
-
148
123
  self.ignore_patterns = self._get_ignore_patterns()
149
- if ignore_file_patterns:
150
- if self.ignore_patterns:
151
- self.ignore_patterns.extend(ignore_file_patterns)
152
- else:
153
- self.ignore_patterns = ignore_file_patterns
154
124
  # Get the list of files on the repo that are not ignored
155
125
  if getattr(self, "ignore_patterns", None):
156
126
  patterns = self.ignore_patterns
File without changes