clarifai 9.10.2__py3-none-any.whl → 9.10.3__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 (323) hide show
  1. clarifai/client/__init__.py +3 -2
  2. clarifai/client/app.py +39 -23
  3. clarifai/client/base.py +6 -6
  4. clarifai/client/dataset.py +113 -55
  5. clarifai/client/input.py +47 -55
  6. clarifai/client/model.py +27 -25
  7. clarifai/client/module.py +13 -11
  8. clarifai/client/runner.py +5 -3
  9. clarifai/client/search.py +7 -3
  10. clarifai/client/user.py +14 -8
  11. clarifai/client/workflow.py +22 -20
  12. clarifai/constants/dataset.py +22 -0
  13. clarifai/datasets/upload/base.py +9 -7
  14. clarifai/datasets/upload/features.py +3 -3
  15. clarifai/datasets/upload/image.py +49 -50
  16. clarifai/datasets/upload/loaders/coco_captions.py +26 -80
  17. clarifai/datasets/upload/loaders/coco_detection.py +56 -115
  18. clarifai/datasets/upload/loaders/coco_segmentation.py +69 -137
  19. clarifai/datasets/upload/loaders/imagenet_classification.py +2 -3
  20. clarifai/datasets/upload/loaders/xview_detection.py +3 -3
  21. clarifai/datasets/upload/text.py +16 -16
  22. clarifai/datasets/upload/utils.py +196 -21
  23. clarifai/utils/misc.py +21 -0
  24. clarifai/versions.py +1 -1
  25. {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/METADATA +3 -3
  26. clarifai-9.10.3.dist-info/RECORD +96 -0
  27. clarifai-9.10.3.dist-info/top_level.txt +1 -0
  28. clarifai/auth/__init__.py +0 -6
  29. clarifai/auth/helper.py +0 -367
  30. clarifai/auth/register.py +0 -23
  31. clarifai/auth/stub.py +0 -127
  32. clarifai/datasets/upload/examples/README.md +0 -31
  33. clarifai/datasets/upload/examples/image_classification/__init__.py +0 -0
  34. clarifai/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
  35. clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
  36. clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
  37. clarifai/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
  38. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
  39. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
  40. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
  41. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
  42. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
  43. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
  44. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
  45. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
  46. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
  47. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
  48. clarifai/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
  49. clarifai/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
  50. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
  51. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
  52. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
  53. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
  54. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
  55. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
  56. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
  57. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
  58. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
  59. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
  60. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
  61. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
  62. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
  63. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
  64. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
  65. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
  66. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
  67. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
  68. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
  69. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
  70. clarifai/datasets/upload/examples/text_classification/__init__.py +0 -0
  71. clarifai/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
  72. clarifai/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
  73. clarifai/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
  74. clarifai/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
  75. clarifai/datasets/upload/loaders/README.md +0 -49
  76. clarifai/models/model_serving/README.md +0 -155
  77. clarifai/models/model_serving/docs/custom_config.md +0 -33
  78. clarifai/models/model_serving/docs/dependencies.md +0 -11
  79. clarifai/models/model_serving/docs/inference_parameters.md +0 -134
  80. clarifai/models/model_serving/docs/model_types.md +0 -20
  81. clarifai/models/model_serving/docs/output.md +0 -28
  82. clarifai/models/model_serving/examples/README.md +0 -7
  83. clarifai/models/model_serving/examples/image_classification/README.md +0 -9
  84. clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
  85. clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
  86. clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
  87. clarifai/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
  88. clarifai/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
  89. clarifai/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
  90. clarifai/models/model_serving/examples/text_classification/README.md +0 -9
  91. clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
  92. clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
  93. clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
  94. clarifai/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
  95. clarifai/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
  96. clarifai/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
  97. clarifai/models/model_serving/examples/text_embedding/README.md +0 -9
  98. clarifai/models/model_serving/examples/text_to_image/README.md +0 -9
  99. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
  100. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
  101. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
  102. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
  103. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
  104. clarifai/models/model_serving/examples/text_to_text/README.md +0 -10
  105. clarifai/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
  106. clarifai/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
  107. clarifai/models/model_serving/examples/visual_detection/README.md +0 -11
  108. clarifai/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
  109. clarifai/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
  110. clarifai/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
  111. clarifai/models/model_serving/examples/visual_embedding/README.md +0 -9
  112. clarifai/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
  113. clarifai/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
  114. clarifai/models/model_serving/examples/visual_segmentation/README.md +0 -9
  115. clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
  116. clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
  117. clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
  118. clarifai/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
  119. clarifai/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
  120. clarifai/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
  121. clarifai/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
  122. clarifai/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
  123. clarifai/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
  124. clarifai/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
  125. clarifai/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
  126. clarifai/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
  127. clarifai/modules/README.md +0 -5
  128. clarifai/modules/style.css +0 -217
  129. clarifai-9.10.2.dist-info/RECORD +0 -386
  130. clarifai-9.10.2.dist-info/top_level.txt +0 -2
  131. clarifai_utils/__init__.py +0 -0
  132. clarifai_utils/auth/__init__.py +0 -6
  133. clarifai_utils/auth/helper.py +0 -367
  134. clarifai_utils/auth/register.py +0 -23
  135. clarifai_utils/auth/stub.py +0 -127
  136. clarifai_utils/cli.py +0 -0
  137. clarifai_utils/client/__init__.py +0 -16
  138. clarifai_utils/client/app.py +0 -684
  139. clarifai_utils/client/auth/__init__.py +0 -4
  140. clarifai_utils/client/auth/helper.py +0 -367
  141. clarifai_utils/client/auth/register.py +0 -23
  142. clarifai_utils/client/auth/stub.py +0 -127
  143. clarifai_utils/client/base.py +0 -131
  144. clarifai_utils/client/dataset.py +0 -442
  145. clarifai_utils/client/input.py +0 -892
  146. clarifai_utils/client/lister.py +0 -54
  147. clarifai_utils/client/model.py +0 -575
  148. clarifai_utils/client/module.py +0 -94
  149. clarifai_utils/client/runner.py +0 -161
  150. clarifai_utils/client/search.py +0 -254
  151. clarifai_utils/client/user.py +0 -253
  152. clarifai_utils/client/workflow.py +0 -223
  153. clarifai_utils/constants/model.py +0 -4
  154. clarifai_utils/constants/search.py +0 -2
  155. clarifai_utils/datasets/__init__.py +0 -0
  156. clarifai_utils/datasets/export/__init__.py +0 -0
  157. clarifai_utils/datasets/export/inputs_annotations.py +0 -222
  158. clarifai_utils/datasets/upload/__init__.py +0 -0
  159. clarifai_utils/datasets/upload/base.py +0 -66
  160. clarifai_utils/datasets/upload/examples/README.md +0 -31
  161. clarifai_utils/datasets/upload/examples/image_classification/__init__.py +0 -0
  162. clarifai_utils/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
  163. clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
  164. clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
  165. clarifai_utils/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
  166. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
  167. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
  168. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
  169. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
  170. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
  171. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
  172. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
  173. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
  174. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
  175. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
  176. clarifai_utils/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
  177. clarifai_utils/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
  178. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
  179. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
  180. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
  181. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
  182. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
  183. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
  184. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
  185. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
  186. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
  187. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
  188. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
  189. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
  190. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
  191. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
  192. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
  193. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
  194. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
  195. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
  196. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
  197. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
  198. clarifai_utils/datasets/upload/examples/text_classification/__init__.py +0 -0
  199. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
  200. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
  201. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
  202. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
  203. clarifai_utils/datasets/upload/features.py +0 -44
  204. clarifai_utils/datasets/upload/image.py +0 -165
  205. clarifai_utils/datasets/upload/loaders/README.md +0 -49
  206. clarifai_utils/datasets/upload/loaders/__init__.py +0 -0
  207. clarifai_utils/datasets/upload/loaders/coco_captions.py +0 -103
  208. clarifai_utils/datasets/upload/loaders/coco_detection.py +0 -134
  209. clarifai_utils/datasets/upload/loaders/coco_segmentation.py +0 -166
  210. clarifai_utils/datasets/upload/loaders/imagenet_classification.py +0 -59
  211. clarifai_utils/datasets/upload/loaders/xview_detection.py +0 -148
  212. clarifai_utils/datasets/upload/text.py +0 -53
  213. clarifai_utils/datasets/upload/utils.py +0 -63
  214. clarifai_utils/errors.py +0 -89
  215. clarifai_utils/models/__init__.py +0 -0
  216. clarifai_utils/models/api.py +0 -283
  217. clarifai_utils/models/model_serving/README.md +0 -155
  218. clarifai_utils/models/model_serving/__init__.py +0 -12
  219. clarifai_utils/models/model_serving/cli/__init__.py +0 -12
  220. clarifai_utils/models/model_serving/cli/deploy_cli.py +0 -123
  221. clarifai_utils/models/model_serving/cli/model_zip.py +0 -61
  222. clarifai_utils/models/model_serving/cli/repository.py +0 -87
  223. clarifai_utils/models/model_serving/constants.py +0 -1
  224. clarifai_utils/models/model_serving/docs/custom_config.md +0 -33
  225. clarifai_utils/models/model_serving/docs/dependencies.md +0 -11
  226. clarifai_utils/models/model_serving/docs/inference_parameters.md +0 -134
  227. clarifai_utils/models/model_serving/docs/model_types.md +0 -20
  228. clarifai_utils/models/model_serving/docs/output.md +0 -28
  229. clarifai_utils/models/model_serving/examples/README.md +0 -7
  230. clarifai_utils/models/model_serving/examples/image_classification/README.md +0 -9
  231. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/__init__.py +0 -0
  232. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/inference.py +0 -56
  233. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/model.py +0 -61
  234. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
  235. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
  236. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
  237. clarifai_utils/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
  238. clarifai_utils/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
  239. clarifai_utils/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
  240. clarifai_utils/models/model_serving/examples/text_classification/README.md +0 -9
  241. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/__init__.py +0 -0
  242. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/inference.py +0 -55
  243. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/model.py +0 -61
  244. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
  245. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
  246. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
  247. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
  248. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
  249. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
  250. clarifai_utils/models/model_serving/examples/text_embedding/README.md +0 -9
  251. clarifai_utils/models/model_serving/examples/text_to_image/README.md +0 -9
  252. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
  253. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
  254. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
  255. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
  256. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
  257. clarifai_utils/models/model_serving/examples/text_to_text/README.md +0 -10
  258. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/__init__.py +0 -0
  259. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/inference.py +0 -47
  260. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/model.py +0 -60
  261. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
  262. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
  263. clarifai_utils/models/model_serving/examples/visual_detection/README.md +0 -11
  264. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/inference.py +0 -72
  265. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/model.py +0 -61
  266. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
  267. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
  268. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
  269. clarifai_utils/models/model_serving/examples/visual_embedding/README.md +0 -9
  270. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/__init__.py +0 -0
  271. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/inference.py +0 -51
  272. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/model.py +0 -60
  273. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
  274. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
  275. clarifai_utils/models/model_serving/examples/visual_segmentation/README.md +0 -9
  276. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/__init__.py +0 -0
  277. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/inference.py +0 -55
  278. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/model.py +0 -60
  279. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
  280. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
  281. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
  282. clarifai_utils/models/model_serving/model_config/__init__.py +0 -14
  283. clarifai_utils/models/model_serving/model_config/config.py +0 -302
  284. clarifai_utils/models/model_serving/model_config/inference_parameter.py +0 -124
  285. clarifai_utils/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
  286. clarifai_utils/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
  287. clarifai_utils/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
  288. clarifai_utils/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
  289. clarifai_utils/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
  290. clarifai_utils/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
  291. clarifai_utils/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
  292. clarifai_utils/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
  293. clarifai_utils/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
  294. clarifai_utils/models/model_serving/model_config/serializer.py +0 -134
  295. clarifai_utils/models/model_serving/models/__init__.py +0 -12
  296. clarifai_utils/models/model_serving/models/default_test.py +0 -275
  297. clarifai_utils/models/model_serving/models/inference.py +0 -42
  298. clarifai_utils/models/model_serving/models/model_types.py +0 -265
  299. clarifai_utils/models/model_serving/models/output.py +0 -124
  300. clarifai_utils/models/model_serving/models/pb_model.py +0 -74
  301. clarifai_utils/models/model_serving/models/test.py +0 -64
  302. clarifai_utils/models/model_serving/pb_model_repository.py +0 -101
  303. clarifai_utils/modules/README.md +0 -5
  304. clarifai_utils/modules/__init__.py +0 -0
  305. clarifai_utils/modules/css.py +0 -60
  306. clarifai_utils/modules/pages.py +0 -42
  307. clarifai_utils/modules/style.css +0 -217
  308. clarifai_utils/runners/__init__.py +0 -0
  309. clarifai_utils/runners/example.py +0 -33
  310. clarifai_utils/schema/search.py +0 -69
  311. clarifai_utils/urls/helper.py +0 -103
  312. clarifai_utils/utils/__init__.py +0 -0
  313. clarifai_utils/utils/logging.py +0 -90
  314. clarifai_utils/utils/misc.py +0 -33
  315. clarifai_utils/utils/model_train.py +0 -157
  316. clarifai_utils/versions.py +0 -6
  317. clarifai_utils/workflows/__init__.py +0 -0
  318. clarifai_utils/workflows/export.py +0 -68
  319. clarifai_utils/workflows/utils.py +0 -59
  320. clarifai_utils/workflows/validate.py +0 -67
  321. {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/LICENSE +0 -0
  322. {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/WHEEL +0 -0
  323. {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/entry_points.txt +0 -0
@@ -1,94 +0,0 @@
1
- from typing import Dict, Generator
2
-
3
- from clarifai_grpc.grpc.api import resources_pb2, service_pb2
4
-
5
- from clarifai.client.base import BaseClient
6
- from clarifai.client.lister import Lister
7
- from clarifai.errors import UserError
8
- from clarifai.urls.helper import ClarifaiUrlHelper
9
- from clarifai.utils.logging import get_logger
10
-
11
-
12
- class Module(Lister, BaseClient):
13
- """Module is a class that provides access to Clarifai API endpoints related to Module information."""
14
-
15
- def __init__(self,
16
- url_init: str = "",
17
- module_id: str = "",
18
- module_version: Dict = {'id': ""},
19
- base_url: str = "https://api.clarifai.com",
20
- **kwargs):
21
- """Initializes a Module object.
22
-
23
- Args:
24
- url_init (str): The URL to initialize the module object.
25
- module_id (str): The Module ID to interact with.
26
- module_version (dict): The Module Version to interact with.
27
- base_url (str): Base API url. Default "https://api.clarifai.com"
28
- **kwargs: Additional keyword arguments to be passed to the Module.
29
- """
30
- if url_init != "" and module_id != "":
31
- raise UserError("You can only specify one of url_init or module_id.")
32
- if url_init == "" and module_id == "":
33
- raise UserError("You must specify one of url_init or module_id.")
34
- if url_init != "":
35
- user_id, app_id, module_id, module_version_id = ClarifaiUrlHelper.split_module_ui_url(
36
- url_init)
37
- module_version = {'id': module_version_id}
38
- kwargs = {'user_id': user_id, 'app_id': app_id}
39
-
40
- self.kwargs = {**kwargs, 'id': module_id, 'module_version': module_version}
41
- self.module_info = resources_pb2.Module(**self.kwargs)
42
- self.logger = get_logger(logger_level="INFO")
43
- BaseClient.__init__(self, user_id=self.user_id, app_id=self.app_id, base=base_url)
44
- Lister.__init__(self)
45
-
46
- def list_versions(self, page_no: int = None,
47
- per_page: int = None) -> Generator['Module', None, None]:
48
- """Lists all the module versions for the module.
49
-
50
- Args:
51
- page_no (int): The page number to list.
52
- per_page (int): The number of items per page.
53
-
54
- Yields:
55
- Moudle: Module objects for versions of the module.
56
-
57
- Example:
58
- >>> from clarifai.client.module import Module
59
- >>> module = Module(module_id='module_id', user_id='user_id', app_id='app_id')
60
- >>> all_Module_versions = list(module.list_versions())
61
-
62
- Note:
63
- Defaults to 16 per page if page_no is specified and per_page is not specified.
64
- If both page_no and per_page are None, then lists all the resources.
65
- """
66
- request_data = dict(
67
- user_app_id=self.user_app_id,
68
- module_id=self.id,
69
- )
70
- all_module_versions_info = self.list_pages_generator(
71
- self.STUB.ListModuleVersions,
72
- service_pb2.ListModuleVersionsRequest,
73
- request_data,
74
- per_page=per_page,
75
- page_no=page_no)
76
-
77
- for module_version_info in all_module_versions_info:
78
- module_version_info['id'] = module_version_info['module_version_id']
79
- del module_version_info['module_version_id']
80
- yield Module(
81
- module_id=self.id,
82
- base_url=self.base,
83
- **dict(self.kwargs, module_version=module_version_info))
84
-
85
- def __getattr__(self, name):
86
- return getattr(self.module_info, name)
87
-
88
- def __str__(self):
89
- init_params = [param for param in self.kwargs.keys()]
90
- attribute_strings = [
91
- f"{param}={getattr(self.module_info, param)}" for param in init_params
92
- if hasattr(self.module_info, param)
93
- ]
94
- return f"Module Details: \n{', '.join(attribute_strings)}\n"
@@ -1,161 +0,0 @@
1
- # Copyright 2023 Clarifai, Inc.
2
- # Licensed under the Apache License, Version 2.0 (the "License");
3
- # you may not use this file except in compliance with the License.
4
- # You may obtain a copy of the License at
5
- #
6
- # http://www.apache.org/licenses/LICENSE-2.0
7
- #
8
- # Unless required by applicable law or agreed to in writing, software
9
- # distributed under the License is distributed on an "AS IS" BASIS,
10
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- # See the License for the specific language governing permissions and
12
- # limitations under the License.
13
- """Interface to Clarifai Runners API."""
14
-
15
- import os
16
-
17
- from clarifai_grpc.grpc.api import resources_pb2, service_pb2
18
- from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
19
- from google.protobuf import json_format
20
-
21
- from clarifai.client.base import BaseClient
22
- from clarifai.errors import UserError
23
- from clarifai.utils.logging import get_logger
24
-
25
-
26
- class Runner(BaseClient):
27
- """Base class for remote inference runners. This should be subclassed with the run_input method
28
- implemented to process each input in the request.
29
-
30
- Then on the subclass call start() to start the run loop.
31
- """
32
-
33
- def __init__(self,
34
- runner_id: str,
35
- user_id: str = "",
36
- check_runner_exists: bool = True,
37
- base_url: str = "https://api.clarifai.com",
38
- **kwargs) -> None:
39
- """
40
- Args:
41
- runner_id (str): the id of the runner to use. Create the runner in the Clarifai API first
42
- user_id (str): Clarifai User ID
43
- base_url (str): Base API url. Default "https://api.clarifai.com"
44
- """
45
- user_id = user_id or os.environ.get("CLARIFAI_USER_ID", "")
46
-
47
- if user_id == "":
48
- raise UserError(
49
- "Set CLARIFAI_USER_ID as environment variables or pass user_id as input arguments")
50
-
51
- self.runner_id = runner_id
52
- self.logger = get_logger("INFO", __name__)
53
- self.kwargs = {**kwargs, 'id': runner_id, 'user_id': user_id}
54
- self.runner_info = resources_pb2.Runner(**self.kwargs)
55
- BaseClient.__init__(self, user_id=self.user_id, app_id="", base=base_url)
56
-
57
- # Check that the runner exists.
58
- if check_runner_exists:
59
- request = service_pb2.GetRunnerRequest(user_app_id=self.user_app_id, runner_id=runner_id)
60
- response = self._grpc_request(self.STUB.GetRunner, request)
61
- if response.status.code != status_code_pb2.SUCCESS:
62
- raise Exception(
63
- f"""Error getting runner, are you use this is a valid runner id {runner_id} at the user_id
64
- {self.user_app_id.user_id}.
65
- Error: {response.status.description}""")
66
-
67
- def start(self):
68
- """Start the run loop. This will ask the Clarifai API for work, and when it gets work, it will run
69
- the model on the inputs and post the results back to the Clarifai API. It will then ask for more
70
- work again.
71
- """
72
- self._long_poll_loop()
73
-
74
- def _run(self, request: service_pb2.PostModelOutputsRequest) -> service_pb2.MultiOutputResponse:
75
- """Run the model on the given request. You shouldn't need to override this method, see run_input
76
- for the implementation to process each input in the request.
77
-
78
- Args:
79
- request: service_pb2.PostModelOutputsRequest - the request to run the model on
80
-
81
- Returns:
82
- service_pb2.MultiOutputResponse - the response from the model's run_input implementation.
83
- """
84
- outputs = []
85
- # TODO: parallelize this
86
- for inp in request.inputs:
87
- # TODO: handle errors
88
- outputs.append(self.run_input(inp))
89
-
90
- return service_pb2.MultiOutputResponse(
91
- status=status_pb2.Status(
92
- code=status_code_pb2.SUCCESS,
93
- description="Success",
94
- ),
95
- outputs=outputs,
96
- )
97
-
98
- def run_input(self, input: resources_pb2.Input) -> resources_pb2.Output:
99
- """Run the model on the given input in the request. This is the method you should override to
100
- process each input in the request.
101
-
102
- Args:
103
- input: resources_pb2.Input - the input to run the model on
104
-
105
- Returns:
106
- resources_pb2.Output - the response from the model's run_input implementation.
107
- """
108
- raise NotImplementedError("run_input() not implemented")
109
-
110
- def _long_poll_loop(self):
111
- """This method will long poll for work, and when it gets work, it will run the model on the inputs
112
- and post the results back to the Clarifai API. It will then long poll again for more work.
113
- """
114
- c = 0
115
- # TODO: handle more errors within this loop so it never stops.
116
- # TODO: perhaps have multiple processes running this loop to handle more work.
117
- while True:
118
- # Long poll waiting for work.
119
- self.logger.info("Loop iteration: {}".format(c))
120
- request = service_pb2.ListRunnerItemsRequest(
121
- user_app_id=self.user_app_id, runner_id=self.runner_id)
122
- work_response = self._grpc_request(self.STUB.ListRunnerItems, request)
123
- if work_response.status.code == status_code_pb2.RUNNER_NEEDS_RETRY:
124
- c += 1
125
- continue # immediate restart the long poll
126
- if work_response.status.code != status_code_pb2.SUCCESS:
127
- raise Exception("Error getting work: {}".format(work_response.status.description))
128
- if len(work_response.items) == 0:
129
- self.logger.info("No work to do. Waiting...")
130
- continue
131
-
132
- # We have work to do. Run the model on the inputs.
133
- for item in work_response.items:
134
- if not item.HasField('post_model_outputs_request'):
135
- raise Exception("Unexpected work item type: {}".format(item))
136
- self.logger.info(
137
- f"Working on item: {item.id} with inputs {len(item.post_model_outputs_request.inputs)}"
138
- )
139
- result = self._run(item.post_model_outputs_request)
140
-
141
- request = service_pb2.PostRunnerItemOutputsRequest(
142
- user_app_id=self.user_app_id,
143
- item_id=item.id,
144
- runner_id=self.runner_id,
145
- runner_item_outputs=[service_pb2.RunnerItemOutput(multi_output_response=result)])
146
- result_response = self._grpc_request(self.STUB.PostRunnerItemOutputs, request)
147
- if result_response.status.code != status_code_pb2.SUCCESS:
148
- raise Exception(
149
- json_format.MessageToJson(result_response, preserving_proto_field_name=True))
150
- # raise Exception("Error posting result: {}".format(result_response.status.description))
151
-
152
- def __getattr__(self, name):
153
- return getattr(self.runner_info, name)
154
-
155
- def __str__(self):
156
- init_params = [param for param in self.kwargs.keys()]
157
- attribute_strings = [
158
- f"{param}={getattr(self.runner_info, param)}" for param in init_params
159
- if hasattr(self.runner_info, param)
160
- ]
161
- return f"Runner Details: \n{', '.join(attribute_strings)}\n"
@@ -1,254 +0,0 @@
1
- from math import ceil
2
- from typing import Any, Callable, Dict, Generator
3
-
4
- from clarifai_grpc.grpc.api import resources_pb2, service_pb2
5
- from clarifai_grpc.grpc.api.status import status_code_pb2
6
- from google.protobuf.json_format import MessageToDict
7
- from google.protobuf.struct_pb2 import Struct
8
- from schema import SchemaError
9
-
10
- from clarifai.client.base import BaseClient
11
- from clarifai.client.input import Inputs
12
- from clarifai.client.lister import Lister
13
- from clarifai.constants.search import DEFAULT_SEARCH_METRIC, DEFAULT_TOP_K
14
- from clarifai.errors import UserError
15
- from clarifai.schema.search import get_schema
16
-
17
-
18
- class Search(Lister, BaseClient):
19
-
20
- def __init__(self,
21
- user_id,
22
- app_id,
23
- top_k: int = DEFAULT_TOP_K,
24
- metric: str = DEFAULT_SEARCH_METRIC):
25
- """Initialize the Search object.
26
-
27
- Args:
28
- user_id (str): User ID.
29
- app_id (str): App ID.
30
- top_k (int, optional): Top K results to retrieve. Defaults to 10.
31
- metric (str, optional): Similarity metric (either 'cosine' or 'euclidean'). Defaults to 'cosine'.
32
-
33
- Raises:
34
- UserError: If the metric is not 'cosine' or 'euclidean'.
35
- """
36
- if metric not in ["cosine", "euclidean"]:
37
- raise UserError("Metric should be either cosine or euclidean")
38
-
39
- self.user_id = user_id
40
- self.app_id = app_id
41
- self.metric_distance = dict(cosine="COSINE_DISTANCE", euclidean="EUCLIDEAN_DISTANCE")[metric]
42
- self.data_proto = resources_pb2.Data()
43
- self.top_k = top_k
44
-
45
- self.inputs = Inputs(user_id=self.user_id, app_id=self.app_id)
46
- self.rank_filter_schema = get_schema()
47
- BaseClient.__init__(self, user_id=self.user_id, app_id=self.app_id)
48
- Lister.__init__(self, page_size=1000)
49
-
50
- def _get_annot_proto(self, **kwargs):
51
- """Get an Annotation proto message based on keyword arguments.
52
-
53
- Args:
54
- **kwargs: Keyword arguments specifying the resource.
55
-
56
- Returns:
57
- resources_pb2.Annotation: An Annotation proto message.
58
- """
59
- if not kwargs:
60
- return resources_pb2.Annotation()
61
-
62
- self.data_proto = resources_pb2.Data()
63
- for key, value in kwargs.items():
64
- if key == "image_bytes":
65
- image_proto = self.inputs.get_input_from_bytes("", image_bytes=value).data.image
66
- self.data_proto.image.CopyFrom(image_proto)
67
-
68
- elif key == "image_url":
69
- image_proto = self.inputs.get_input_from_url("", image_url=value).data.image
70
- self.data_proto.image.CopyFrom(image_proto)
71
-
72
- elif key == "concepts":
73
- for concept in value:
74
- concept_proto = resources_pb2.Concept(**concept)
75
- self.data_proto.concepts.add().CopyFrom(concept_proto)
76
-
77
- elif key == "text_raw":
78
- text_proto = self.inputs.get_input_from_bytes(
79
- "", text_bytes=bytes(value, 'utf-8')).data.text
80
- self.data_proto.text.CopyFrom(text_proto)
81
-
82
- elif key == "metadata":
83
- metadata_struct = Struct()
84
- metadata_struct.update(value)
85
- self.data_proto.metadata.CopyFrom(metadata_struct)
86
-
87
- elif key == "geo_point":
88
- geo_point_proto = self._get_geo_point_proto(value["longitude"], value["latitude"],
89
- value["geo_limit"])
90
- self.data_proto.geo.CopyFrom(geo_point_proto)
91
-
92
- else:
93
- raise UserError(f"kwargs contain key that is not supported: {key}")
94
- return resources_pb2.Annotation(data=self.data_proto)
95
-
96
- def _get_input_proto(self, **kwargs):
97
- """Get an Input proto message based on keyword arguments.
98
-
99
- Args:
100
- **kwargs: Keyword arguments specifying the resource.
101
-
102
- Returns:
103
- resources_pb2.Input: An Input proto message.
104
- """
105
- if not kwargs:
106
- return resources_pb2.Input()
107
-
108
- self.input_proto = resources_pb2.Input()
109
- self.data_proto = resources_pb2.Data()
110
- for key, value in kwargs.items():
111
- if key == "input_types":
112
- for input_type in value:
113
- if input_type == "image":
114
- self.data_proto.image.CopyFrom(resources_pb2.Image())
115
- elif input_type == "text":
116
- self.data_proto.text.CopyFrom(resources_pb2.Text())
117
- elif input_type == "audio":
118
- self.data_proto.audio.CopyFrom(resources_pb2.Audio())
119
- elif input_type == "video":
120
- self.data_proto.video.CopyFrom(resources_pb2.Video())
121
- self.input_proto.data.CopyFrom(self.data_proto)
122
- elif key == "input_dataset_ids":
123
- self.input_proto.dataset_ids.extend(value)
124
- elif key == "input_status_code":
125
- self.input_proto.status.code = value
126
- else:
127
- raise UserError(f"kwargs contain key that is not supported: {key}")
128
- return self.input_proto
129
-
130
- def _get_geo_point_proto(self, longitude: float, latitude: float,
131
- geo_limit: float) -> resources_pb2.Geo:
132
- """Get a GeoPoint proto message based on geographical data.
133
-
134
- Args:
135
- longitude (float): Longitude coordinate.
136
- latitude (float): Latitude coordinate.
137
- geo_limit (float): Geographical limit.
138
-
139
- Returns:
140
- resources_pb2.Geo: A Geo proto message.
141
- """
142
- return resources_pb2.Geo(
143
- geo_point=resources_pb2.GeoPoint(longitude=longitude, latitude=latitude),
144
- geo_limit=resources_pb2.GeoLimit(type="withinKilometers", value=geo_limit))
145
-
146
- def list_all_pages_generator(
147
- self, endpoint: Callable[..., Any], proto_message: Any,
148
- request_data: Dict[str, Any]) -> Generator[Dict[str, Any], None, None]:
149
- """Lists all pages of a resource.
150
-
151
- Args:
152
- endpoint (Callable): The endpoint to call.
153
- proto_message (Any): The proto message to use.
154
- request_data (dict): The request data to use.
155
-
156
- Yields:
157
- response_dict: The next item in the listing.
158
- """
159
- max_pages = ceil(self.top_k / self.default_page_size)
160
- total_hits = 0
161
- page = 1
162
- while (page <= max_pages):
163
- if (page == max_pages):
164
- per_page = self.top_k - total_hits
165
- else:
166
- per_page = self.default_page_size
167
- request_data['pagination'] = service_pb2.Pagination(page=page, per_page=per_page)
168
- response = self._grpc_request(endpoint, proto_message(**request_data))
169
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
170
- if response.status.code != status_code_pb2.SUCCESS:
171
- if "page * perPage cannot exceed" in str(response.status.details):
172
- msg = (f"Your top_k is set to {self.top_k}. "
173
- f"The current pagination settings exceed the limit. Please reach out to "
174
- f"support@clarifai.com to request an increase for your use case.\n"
175
- f"req_id: {response.status.req_id}")
176
- raise UserError(msg)
177
- else:
178
- raise Exception(f"Listing failed with response {response!r}")
179
-
180
- if 'hits' not in list(dict_response.keys()):
181
- break
182
- page += 1
183
- total_hits += per_page
184
- yield response
185
-
186
- def query(self, ranks=[{}], filters=[{}]):
187
- """Perform a query with rank and filters.
188
-
189
- Args:
190
- ranks (List[Dict], optional): List of rank parameters. Defaults to [{}].
191
- filters (List[Dict], optional): List of filter parameters. Defaults to [{}].
192
-
193
- Returns:
194
- Generator[Dict[str, Any], None, None]: A generator of query results.
195
-
196
- Examples:
197
- Get successful inputs of type image or text
198
- >>> from clarifai.client.search import Search
199
- >>> search = Search(user_id='user_id', app_id='app_id', top_k=10, metric='cosine')
200
- >>> res = search.query(filters=[{'input_types': ['image', 'text']}, {'input_status_code': 30000}])
201
-
202
- Vector search over inputs
203
- >>> from clarifai.client.search import Search
204
- >>> search = Search(user_id='user_id', app_id='app_id', top_k=1, metric='cosine')
205
- >>> res = search.query(ranks=[{'image_url': 'https://samples.clarifai.com/dog.tiff'}])
206
-
207
- Note: For more detailed search examples, please refer to [examples](https://github.com/Clarifai/examples/tree/main/search).
208
- """
209
- try:
210
- self.rank_filter_schema.validate(ranks)
211
- self.rank_filter_schema.validate(filters)
212
- except SchemaError as err:
213
- raise UserError(f"Invalid rank or filter input: {err}")
214
-
215
- ## Calls PostInputsSearches for input filters
216
- if any(["input" in k for k in filters[0].keys()]):
217
- filters_input_proto = []
218
- for filter_dict in filters:
219
- filters_input_proto.append(self._get_input_proto(**filter_dict))
220
- all_filters = [
221
- resources_pb2.Filter(input=filter_input) for filter_input in filters_input_proto
222
- ]
223
- request_data = dict(
224
- user_app_id=self.user_app_id,
225
- searches=[
226
- resources_pb2.Search(
227
- query=resources_pb2.Query(filters=all_filters), metric=self.metric_distance)
228
- ])
229
-
230
- return self.list_all_pages_generator(self.STUB.PostInputsSearches,
231
- service_pb2.PostInputsSearchesRequest, request_data)
232
-
233
- # Calls PostAnnotationsSearches for annotation ranks, filters
234
- rank_annot_proto, filters_annot_proto = [], []
235
- for rank_dict in ranks:
236
- rank_annot_proto.append(self._get_annot_proto(**rank_dict))
237
- for filter_dict in filters:
238
- filters_annot_proto.append(self._get_annot_proto(**filter_dict))
239
-
240
- all_ranks = [resources_pb2.Rank(annotation=rank_annot) for rank_annot in rank_annot_proto]
241
- all_filters = [
242
- resources_pb2.Filter(annotation=filter_annot) for filter_annot in filters_annot_proto
243
- ]
244
-
245
- request_data = dict(
246
- user_app_id=self.user_app_id,
247
- searches=[
248
- resources_pb2.Search(
249
- query=resources_pb2.Query(ranks=all_ranks, filters=all_filters),
250
- metric=self.metric_distance)
251
- ])
252
-
253
- return self.list_all_pages_generator(self.STUB.PostAnnotationsSearches,
254
- service_pb2.PostAnnotationsSearchesRequest, request_data)