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.
- clarifai/client/__init__.py +3 -2
- clarifai/client/app.py +39 -23
- clarifai/client/base.py +6 -6
- clarifai/client/dataset.py +113 -55
- clarifai/client/input.py +47 -55
- clarifai/client/model.py +27 -25
- clarifai/client/module.py +13 -11
- clarifai/client/runner.py +5 -3
- clarifai/client/search.py +7 -3
- clarifai/client/user.py +14 -8
- clarifai/client/workflow.py +22 -20
- clarifai/constants/dataset.py +22 -0
- clarifai/datasets/upload/base.py +9 -7
- clarifai/datasets/upload/features.py +3 -3
- clarifai/datasets/upload/image.py +49 -50
- clarifai/datasets/upload/loaders/coco_captions.py +26 -80
- clarifai/datasets/upload/loaders/coco_detection.py +56 -115
- clarifai/datasets/upload/loaders/coco_segmentation.py +69 -137
- clarifai/datasets/upload/loaders/imagenet_classification.py +2 -3
- clarifai/datasets/upload/loaders/xview_detection.py +3 -3
- clarifai/datasets/upload/text.py +16 -16
- clarifai/datasets/upload/utils.py +196 -21
- clarifai/utils/misc.py +21 -0
- clarifai/versions.py +1 -1
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/METADATA +3 -3
- clarifai-9.10.3.dist-info/RECORD +96 -0
- clarifai-9.10.3.dist-info/top_level.txt +1 -0
- clarifai/auth/__init__.py +0 -6
- clarifai/auth/helper.py +0 -367
- clarifai/auth/register.py +0 -23
- clarifai/auth/stub.py +0 -127
- clarifai/datasets/upload/examples/README.md +0 -31
- clarifai/datasets/upload/examples/image_classification/__init__.py +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
- clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
- clarifai/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
- clarifai/datasets/upload/examples/text_classification/__init__.py +0 -0
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
- clarifai/datasets/upload/loaders/README.md +0 -49
- clarifai/models/model_serving/README.md +0 -155
- clarifai/models/model_serving/docs/custom_config.md +0 -33
- clarifai/models/model_serving/docs/dependencies.md +0 -11
- clarifai/models/model_serving/docs/inference_parameters.md +0 -134
- clarifai/models/model_serving/docs/model_types.md +0 -20
- clarifai/models/model_serving/docs/output.md +0 -28
- clarifai/models/model_serving/examples/README.md +0 -7
- clarifai/models/model_serving/examples/image_classification/README.md +0 -9
- clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
- clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
- clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
- clarifai/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
- clarifai/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
- clarifai/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
- clarifai/models/model_serving/examples/text_classification/README.md +0 -9
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
- clarifai/models/model_serving/examples/text_embedding/README.md +0 -9
- clarifai/models/model_serving/examples/text_to_image/README.md +0 -9
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
- clarifai/models/model_serving/examples/text_to_text/README.md +0 -10
- clarifai/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
- clarifai/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
- clarifai/models/model_serving/examples/visual_detection/README.md +0 -11
- clarifai/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
- clarifai/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
- clarifai/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
- clarifai/models/model_serving/examples/visual_embedding/README.md +0 -9
- clarifai/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
- clarifai/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
- clarifai/models/model_serving/examples/visual_segmentation/README.md +0 -9
- clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
- clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
- clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
- clarifai/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
- clarifai/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
- clarifai/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
- clarifai/modules/README.md +0 -5
- clarifai/modules/style.css +0 -217
- clarifai-9.10.2.dist-info/RECORD +0 -386
- clarifai-9.10.2.dist-info/top_level.txt +0 -2
- clarifai_utils/__init__.py +0 -0
- clarifai_utils/auth/__init__.py +0 -6
- clarifai_utils/auth/helper.py +0 -367
- clarifai_utils/auth/register.py +0 -23
- clarifai_utils/auth/stub.py +0 -127
- clarifai_utils/cli.py +0 -0
- clarifai_utils/client/__init__.py +0 -16
- clarifai_utils/client/app.py +0 -684
- clarifai_utils/client/auth/__init__.py +0 -4
- clarifai_utils/client/auth/helper.py +0 -367
- clarifai_utils/client/auth/register.py +0 -23
- clarifai_utils/client/auth/stub.py +0 -127
- clarifai_utils/client/base.py +0 -131
- clarifai_utils/client/dataset.py +0 -442
- clarifai_utils/client/input.py +0 -892
- clarifai_utils/client/lister.py +0 -54
- clarifai_utils/client/model.py +0 -575
- clarifai_utils/client/module.py +0 -94
- clarifai_utils/client/runner.py +0 -161
- clarifai_utils/client/search.py +0 -254
- clarifai_utils/client/user.py +0 -253
- clarifai_utils/client/workflow.py +0 -223
- clarifai_utils/constants/model.py +0 -4
- clarifai_utils/constants/search.py +0 -2
- clarifai_utils/datasets/__init__.py +0 -0
- clarifai_utils/datasets/export/__init__.py +0 -0
- clarifai_utils/datasets/export/inputs_annotations.py +0 -222
- clarifai_utils/datasets/upload/__init__.py +0 -0
- clarifai_utils/datasets/upload/base.py +0 -66
- clarifai_utils/datasets/upload/examples/README.md +0 -31
- clarifai_utils/datasets/upload/examples/image_classification/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
- clarifai_utils/datasets/upload/examples/text_classification/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
- clarifai_utils/datasets/upload/features.py +0 -44
- clarifai_utils/datasets/upload/image.py +0 -165
- clarifai_utils/datasets/upload/loaders/README.md +0 -49
- clarifai_utils/datasets/upload/loaders/__init__.py +0 -0
- clarifai_utils/datasets/upload/loaders/coco_captions.py +0 -103
- clarifai_utils/datasets/upload/loaders/coco_detection.py +0 -134
- clarifai_utils/datasets/upload/loaders/coco_segmentation.py +0 -166
- clarifai_utils/datasets/upload/loaders/imagenet_classification.py +0 -59
- clarifai_utils/datasets/upload/loaders/xview_detection.py +0 -148
- clarifai_utils/datasets/upload/text.py +0 -53
- clarifai_utils/datasets/upload/utils.py +0 -63
- clarifai_utils/errors.py +0 -89
- clarifai_utils/models/__init__.py +0 -0
- clarifai_utils/models/api.py +0 -283
- clarifai_utils/models/model_serving/README.md +0 -155
- clarifai_utils/models/model_serving/__init__.py +0 -12
- clarifai_utils/models/model_serving/cli/__init__.py +0 -12
- clarifai_utils/models/model_serving/cli/deploy_cli.py +0 -123
- clarifai_utils/models/model_serving/cli/model_zip.py +0 -61
- clarifai_utils/models/model_serving/cli/repository.py +0 -87
- clarifai_utils/models/model_serving/constants.py +0 -1
- clarifai_utils/models/model_serving/docs/custom_config.md +0 -33
- clarifai_utils/models/model_serving/docs/dependencies.md +0 -11
- clarifai_utils/models/model_serving/docs/inference_parameters.md +0 -134
- clarifai_utils/models/model_serving/docs/model_types.md +0 -20
- clarifai_utils/models/model_serving/docs/output.md +0 -28
- clarifai_utils/models/model_serving/examples/README.md +0 -7
- clarifai_utils/models/model_serving/examples/image_classification/README.md +0 -9
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/inference.py +0 -56
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/model.py +0 -61
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
- clarifai_utils/models/model_serving/examples/text_classification/README.md +0 -9
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/inference.py +0 -55
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/model.py +0 -61
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
- clarifai_utils/models/model_serving/examples/text_embedding/README.md +0 -9
- clarifai_utils/models/model_serving/examples/text_to_image/README.md +0 -9
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
- clarifai_utils/models/model_serving/examples/text_to_text/README.md +0 -10
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/inference.py +0 -47
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
- clarifai_utils/models/model_serving/examples/visual_detection/README.md +0 -11
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/inference.py +0 -72
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/model.py +0 -61
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
- clarifai_utils/models/model_serving/examples/visual_embedding/README.md +0 -9
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/inference.py +0 -51
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
- clarifai_utils/models/model_serving/examples/visual_segmentation/README.md +0 -9
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/inference.py +0 -55
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
- clarifai_utils/models/model_serving/model_config/__init__.py +0 -14
- clarifai_utils/models/model_serving/model_config/config.py +0 -302
- clarifai_utils/models/model_serving/model_config/inference_parameter.py +0 -124
- clarifai_utils/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
- clarifai_utils/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/serializer.py +0 -134
- clarifai_utils/models/model_serving/models/__init__.py +0 -12
- clarifai_utils/models/model_serving/models/default_test.py +0 -275
- clarifai_utils/models/model_serving/models/inference.py +0 -42
- clarifai_utils/models/model_serving/models/model_types.py +0 -265
- clarifai_utils/models/model_serving/models/output.py +0 -124
- clarifai_utils/models/model_serving/models/pb_model.py +0 -74
- clarifai_utils/models/model_serving/models/test.py +0 -64
- clarifai_utils/models/model_serving/pb_model_repository.py +0 -101
- clarifai_utils/modules/README.md +0 -5
- clarifai_utils/modules/__init__.py +0 -0
- clarifai_utils/modules/css.py +0 -60
- clarifai_utils/modules/pages.py +0 -42
- clarifai_utils/modules/style.css +0 -217
- clarifai_utils/runners/__init__.py +0 -0
- clarifai_utils/runners/example.py +0 -33
- clarifai_utils/schema/search.py +0 -69
- clarifai_utils/urls/helper.py +0 -103
- clarifai_utils/utils/__init__.py +0 -0
- clarifai_utils/utils/logging.py +0 -90
- clarifai_utils/utils/misc.py +0 -33
- clarifai_utils/utils/model_train.py +0 -157
- clarifai_utils/versions.py +0 -6
- clarifai_utils/workflows/__init__.py +0 -0
- clarifai_utils/workflows/export.py +0 -68
- clarifai_utils/workflows/utils.py +0 -59
- clarifai_utils/workflows/validate.py +0 -67
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/LICENSE +0 -0
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/WHEEL +0 -0
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/entry_points.txt +0 -0
clarifai_utils/client/user.py
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
from typing import Any, Dict, Generator, List
|
|
2
|
-
|
|
3
|
-
from clarifai_grpc.grpc.api import resources_pb2, service_pb2
|
|
4
|
-
from clarifai_grpc.grpc.api.status import status_code_pb2
|
|
5
|
-
from google.protobuf.json_format import MessageToDict
|
|
6
|
-
|
|
7
|
-
from clarifai.client.app import App
|
|
8
|
-
from clarifai.client.base import BaseClient
|
|
9
|
-
from clarifai.client.lister import Lister
|
|
10
|
-
from clarifai.client.runner import Runner
|
|
11
|
-
from clarifai.errors import UserError
|
|
12
|
-
from clarifai.utils.logging import get_logger
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class User(Lister, BaseClient):
|
|
16
|
-
"""User is a class that provides access to Clarifai API endpoints related to user information."""
|
|
17
|
-
|
|
18
|
-
def __init__(self, user_id: str = "", base_url: str = "https://api.clarifai.com", **kwargs):
|
|
19
|
-
"""Initializes an User object.
|
|
20
|
-
|
|
21
|
-
Args:
|
|
22
|
-
user_id (str): The user ID for the user to interact with.
|
|
23
|
-
base_url (str): Base API url. Default "https://api.clarifai.com"
|
|
24
|
-
**kwargs: Additional keyword arguments to be passed to the User.
|
|
25
|
-
"""
|
|
26
|
-
self.kwargs = {**kwargs, 'id': user_id}
|
|
27
|
-
self.user_info = resources_pb2.User(**self.kwargs)
|
|
28
|
-
self.logger = get_logger(logger_level="INFO", name=__name__)
|
|
29
|
-
BaseClient.__init__(self, user_id=self.id, app_id="", base=base_url)
|
|
30
|
-
Lister.__init__(self)
|
|
31
|
-
|
|
32
|
-
def list_apps(self, filter_by: Dict[str, Any] = {}, page_no: int = None,
|
|
33
|
-
per_page: int = None) -> Generator[App, None, None]:
|
|
34
|
-
"""Lists all the apps for the user.
|
|
35
|
-
|
|
36
|
-
Args:
|
|
37
|
-
filter_by (dict): A dictionary of filters to be applied to the list of apps.
|
|
38
|
-
page_no (int): The page number to list.
|
|
39
|
-
per_page (int): The number of items per page.
|
|
40
|
-
|
|
41
|
-
Yields:
|
|
42
|
-
App: App objects for the user.
|
|
43
|
-
|
|
44
|
-
Example:
|
|
45
|
-
>>> from clarifai.client.user import User
|
|
46
|
-
>>> apps = list(User("user_id").list_apps())
|
|
47
|
-
|
|
48
|
-
Note:
|
|
49
|
-
Defaults to 16 per page if page_no is specified and per_page is not specified.
|
|
50
|
-
If both page_no and per_page are None, then lists all the resources.
|
|
51
|
-
"""
|
|
52
|
-
request_data = dict(user_app_id=self.user_app_id, **filter_by)
|
|
53
|
-
all_apps_info = self.list_pages_generator(
|
|
54
|
-
self.STUB.ListApps,
|
|
55
|
-
service_pb2.ListAppsRequest,
|
|
56
|
-
request_data,
|
|
57
|
-
per_page=per_page,
|
|
58
|
-
page_no=page_no)
|
|
59
|
-
for app_info in all_apps_info:
|
|
60
|
-
yield App(base_url=self.base, **app_info)
|
|
61
|
-
|
|
62
|
-
def list_runners(self, filter_by: Dict[str, Any] = {}, page_no: int = None,
|
|
63
|
-
per_page: int = None) -> Generator[Runner, None, None]:
|
|
64
|
-
"""List all runners for the user
|
|
65
|
-
|
|
66
|
-
Args:
|
|
67
|
-
filter_by (dict): A dictionary of filters to apply to the list of runners.
|
|
68
|
-
page_no (int): The page number to list.
|
|
69
|
-
per_page (int): The number of items per page.
|
|
70
|
-
|
|
71
|
-
Yields:
|
|
72
|
-
Runner: Runner objects for the runners.
|
|
73
|
-
|
|
74
|
-
Example:
|
|
75
|
-
>>> from clarifai.client.user import User
|
|
76
|
-
>>> client = User(user_id="user_id")
|
|
77
|
-
>>> all_runners= list(client.list_runners())
|
|
78
|
-
|
|
79
|
-
Note:
|
|
80
|
-
Defaults to 16 per page if page_no is specified and per_page is not specified.
|
|
81
|
-
If both page_no and per_page are None, then lists all the resources.
|
|
82
|
-
"""
|
|
83
|
-
request_data = dict(user_app_id=self.user_app_id, **filter_by)
|
|
84
|
-
all_runners_info = self.list_pages_generator(
|
|
85
|
-
self.STUB.ListRunners,
|
|
86
|
-
service_pb2.ListRunnersRequest,
|
|
87
|
-
request_data,
|
|
88
|
-
per_page=per_page,
|
|
89
|
-
page_no=page_no)
|
|
90
|
-
|
|
91
|
-
for runner_info in all_runners_info:
|
|
92
|
-
yield Runner(check_runner_exists=False, base_url=self.base, **runner_info)
|
|
93
|
-
|
|
94
|
-
def create_app(self, app_id: str, base_workflow: str = 'Empty', **kwargs) -> App:
|
|
95
|
-
"""Creates an app for the user.
|
|
96
|
-
|
|
97
|
-
Args:
|
|
98
|
-
app_id (str): The app ID for the app to create.
|
|
99
|
-
base_workflow (str): The base workflow to use for the app.(Examples: 'Universal', 'Language-Understanding', 'General')
|
|
100
|
-
**kwargs: Additional keyword arguments to be passed to the App.
|
|
101
|
-
|
|
102
|
-
Returns:
|
|
103
|
-
App: An App object for the specified app ID.
|
|
104
|
-
|
|
105
|
-
Example:
|
|
106
|
-
>>> from clarifai.client.user import User
|
|
107
|
-
>>> client = User(user_id="user_id")
|
|
108
|
-
>>> app = client.create_app(app_id="app_id",base_workflow="Universal")
|
|
109
|
-
"""
|
|
110
|
-
workflow = resources_pb2.Workflow(id=base_workflow, app_id="main", user_id="clarifai")
|
|
111
|
-
request = service_pb2.PostAppsRequest(
|
|
112
|
-
user_app_id=self.user_app_id,
|
|
113
|
-
apps=[resources_pb2.App(id=app_id, default_workflow=workflow, **kwargs)])
|
|
114
|
-
response = self._grpc_request(self.STUB.PostApps, request)
|
|
115
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
116
|
-
raise Exception(response.status)
|
|
117
|
-
self.logger.info("\nApp created\n%s", response.status)
|
|
118
|
-
kwargs.update({'user_id': self.id, 'base_url': self.base})
|
|
119
|
-
return App(app_id=app_id, **kwargs)
|
|
120
|
-
|
|
121
|
-
def create_runner(self, runner_id: str, labels: List[str], description: str) -> Runner:
|
|
122
|
-
"""Create a runner
|
|
123
|
-
|
|
124
|
-
Args:
|
|
125
|
-
runner_id (str): The Id of runner to create
|
|
126
|
-
labels (List[str]): Labels to match runner
|
|
127
|
-
description (str): Description of Runner
|
|
128
|
-
|
|
129
|
-
Returns:
|
|
130
|
-
Runner: A runner object for the specified Runner ID
|
|
131
|
-
|
|
132
|
-
Example:
|
|
133
|
-
>>> from clarifai.client.user import User
|
|
134
|
-
>>> client = User(user_id="user_id")
|
|
135
|
-
>>> runner = client.create_runner(runner_id="runner_id", labels=["label to link runner"], description="laptop runner")
|
|
136
|
-
"""
|
|
137
|
-
if not isinstance(labels, List):
|
|
138
|
-
raise UserError("Labels must be a List of strings")
|
|
139
|
-
|
|
140
|
-
request = service_pb2.PostRunnersRequest(
|
|
141
|
-
user_app_id=self.user_app_id,
|
|
142
|
-
runners=[resources_pb2.Runner(id=runner_id, labels=labels, description=description)])
|
|
143
|
-
response = self._grpc_request(self.STUB.PostRunners, request)
|
|
144
|
-
|
|
145
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
146
|
-
raise Exception(response.status)
|
|
147
|
-
self.logger.info("\nRunner created\n%s", response.status)
|
|
148
|
-
|
|
149
|
-
return Runner(
|
|
150
|
-
runner_id=runner_id,
|
|
151
|
-
user_id=self.id,
|
|
152
|
-
labels=labels,
|
|
153
|
-
description=description,
|
|
154
|
-
check_runner_exists=False,
|
|
155
|
-
base_url=self.base)
|
|
156
|
-
|
|
157
|
-
def app(self, app_id: str, **kwargs) -> App:
|
|
158
|
-
"""Returns an App object for the specified app ID.
|
|
159
|
-
|
|
160
|
-
Args:
|
|
161
|
-
app_id (str): The app ID for the app to interact with.
|
|
162
|
-
**kwargs: Additional keyword arguments to be passed to the App.
|
|
163
|
-
|
|
164
|
-
Returns:
|
|
165
|
-
App: An App object for the specified app ID.
|
|
166
|
-
|
|
167
|
-
Example:
|
|
168
|
-
>>> from clarifai.client.user import User
|
|
169
|
-
>>> app = User("user_id").app("app_id")
|
|
170
|
-
"""
|
|
171
|
-
request = service_pb2.GetAppRequest(
|
|
172
|
-
user_app_id=resources_pb2.UserAppIDSet(user_id=self.id, app_id=app_id))
|
|
173
|
-
response = self._grpc_request(self.STUB.GetApp, request)
|
|
174
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
175
|
-
raise Exception(response.status)
|
|
176
|
-
|
|
177
|
-
kwargs['user_id'] = self.id
|
|
178
|
-
kwargs.update({'base_url': self.base})
|
|
179
|
-
return App(app_id=app_id, **kwargs)
|
|
180
|
-
|
|
181
|
-
def runner(self, runner_id: str) -> Runner:
|
|
182
|
-
"""Returns a Runner object if exists.
|
|
183
|
-
|
|
184
|
-
Args:
|
|
185
|
-
runner_id (str): The runner ID to interact with
|
|
186
|
-
|
|
187
|
-
Returns:
|
|
188
|
-
Runner: A Runner object for the existing runner ID.
|
|
189
|
-
|
|
190
|
-
Example:
|
|
191
|
-
>>> from clarifai.client.user import User
|
|
192
|
-
>>> client = User(user_id="user_id")
|
|
193
|
-
>>> runner = client.runner(runner_id="runner_id")
|
|
194
|
-
"""
|
|
195
|
-
request = service_pb2.GetRunnerRequest(user_app_id=self.user_app_id, runner_id=runner_id)
|
|
196
|
-
response = self._grpc_request(self.STUB.GetRunner, request)
|
|
197
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
198
|
-
raise Exception(
|
|
199
|
-
f"""Error getting runner, are you use this is a valid runner id {runner_id} at the user_id/app_id
|
|
200
|
-
{self.user_app_id.user_id}/{self.user_app_id.app_id}.
|
|
201
|
-
Error: {response.status.description}""")
|
|
202
|
-
|
|
203
|
-
dict_response = MessageToDict(response, preserving_proto_field_name=True)
|
|
204
|
-
kwargs = self.process_response_keys(dict_response[list(dict_response.keys())[1]],
|
|
205
|
-
list(dict_response.keys())[1])
|
|
206
|
-
|
|
207
|
-
return Runner(check_runner_exists=False, base_url=self.base, **kwargs)
|
|
208
|
-
|
|
209
|
-
def delete_app(self, app_id: str) -> None:
|
|
210
|
-
"""Deletes an app for the user.
|
|
211
|
-
|
|
212
|
-
Args:
|
|
213
|
-
app_id (str): The app ID for the app to delete.
|
|
214
|
-
|
|
215
|
-
Example:
|
|
216
|
-
>>> from clarifai.client.user import User
|
|
217
|
-
>>> user = User("user_id").delete_app("app_id")
|
|
218
|
-
"""
|
|
219
|
-
request = service_pb2.DeleteAppRequest(
|
|
220
|
-
user_app_id=resources_pb2.UserAppIDSet(user_id=self.id, app_id=app_id))
|
|
221
|
-
response = self._grpc_request(self.STUB.DeleteApp, request)
|
|
222
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
223
|
-
raise Exception(response.status)
|
|
224
|
-
self.logger.info("\nApp Deleted\n%s", response.status)
|
|
225
|
-
|
|
226
|
-
def delete_runner(self, runner_id: str) -> None:
|
|
227
|
-
"""Deletes all spectified runner ids
|
|
228
|
-
|
|
229
|
-
Args:
|
|
230
|
-
runner_ids (str): List of runners to delete
|
|
231
|
-
|
|
232
|
-
Example:
|
|
233
|
-
>>> from clarifai.client.user import User
|
|
234
|
-
>>> client = User(user_id="user_id")
|
|
235
|
-
>>> client.delete_runner(runner_id="runner_id")
|
|
236
|
-
"""
|
|
237
|
-
request = service_pb2.DeleteRunnersRequest(user_app_id=self.user_app_id, ids=[runner_id])
|
|
238
|
-
response = self._grpc_request(self.STUB.DeleteRunners, request)
|
|
239
|
-
|
|
240
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
241
|
-
raise Exception(response.status)
|
|
242
|
-
self.logger.info("\nRunner Deleted\n%s", response.status)
|
|
243
|
-
|
|
244
|
-
def __getattr__(self, name):
|
|
245
|
-
return getattr(self.user_info, name)
|
|
246
|
-
|
|
247
|
-
def __str__(self):
|
|
248
|
-
init_params = [param for param in self.kwargs.keys()]
|
|
249
|
-
attribute_strings = [
|
|
250
|
-
f"{param}={getattr(self.user_info, param)}" for param in init_params
|
|
251
|
-
if hasattr(self.user_info, param)
|
|
252
|
-
]
|
|
253
|
-
return f"Clarifai User Details: \n{', '.join(attribute_strings)}\n"
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from typing import Dict, Generator, List
|
|
3
|
-
|
|
4
|
-
from clarifai_grpc.grpc.api import resources_pb2, service_pb2
|
|
5
|
-
from clarifai_grpc.grpc.api.resources_pb2 import Input
|
|
6
|
-
from clarifai_grpc.grpc.api.status import status_code_pb2
|
|
7
|
-
|
|
8
|
-
from clarifai.client.base import BaseClient
|
|
9
|
-
from clarifai.client.input import Inputs
|
|
10
|
-
from clarifai.client.lister import Lister
|
|
11
|
-
from clarifai.errors import UserError
|
|
12
|
-
from clarifai.urls.helper import ClarifaiUrlHelper
|
|
13
|
-
from clarifai.utils.logging import get_logger
|
|
14
|
-
from clarifai.workflows.export import Exporter
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class Workflow(Lister, BaseClient):
|
|
18
|
-
"""Workflow is a class that provides access to Clarifai API endpoints related to Workflow information."""
|
|
19
|
-
|
|
20
|
-
def __init__(self,
|
|
21
|
-
url_init: str = "",
|
|
22
|
-
workflow_id: str = "",
|
|
23
|
-
workflow_version: Dict = {'id': ""},
|
|
24
|
-
output_config: Dict = {'min_value': 0},
|
|
25
|
-
base_url: str = "https://api.clarifai.com",
|
|
26
|
-
**kwargs):
|
|
27
|
-
"""Initializes a Workflow object.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
url_init (str): The URL to initialize the workflow object.
|
|
31
|
-
workflow_id (str): The Workflow ID to interact with.
|
|
32
|
-
workflow_version (dict): The Workflow Version to interact with.
|
|
33
|
-
output_config (dict): The output config to interact with.
|
|
34
|
-
min_value (float): The minimum value of the prediction confidence to filter.
|
|
35
|
-
max_concepts (int): The maximum number of concepts to return.
|
|
36
|
-
select_concepts (list[Concept]): The concepts to select.
|
|
37
|
-
sample_ms (int): The number of milliseconds to sample.
|
|
38
|
-
base_url (str): Base API url. Default "https://api.clarifai.com"
|
|
39
|
-
**kwargs: Additional keyword arguments to be passed to the Workflow.
|
|
40
|
-
"""
|
|
41
|
-
if url_init != "" and workflow_id != "":
|
|
42
|
-
raise UserError("You can only specify one of url_init or workflow_id.")
|
|
43
|
-
if url_init == "" and workflow_id == "":
|
|
44
|
-
raise UserError("You must specify one of url_init or workflow_id.")
|
|
45
|
-
if url_init != "":
|
|
46
|
-
user_id, app_id, _, workflow_id, workflow_version_id = ClarifaiUrlHelper.split_clarifai_url(
|
|
47
|
-
url_init)
|
|
48
|
-
workflow_version = {'id': workflow_version_id}
|
|
49
|
-
kwargs = {'user_id': user_id, 'app_id': app_id}
|
|
50
|
-
self.kwargs = {**kwargs, 'id': workflow_id, 'version': workflow_version}
|
|
51
|
-
self.output_config = output_config
|
|
52
|
-
self.workflow_info = resources_pb2.Workflow(**self.kwargs)
|
|
53
|
-
self.logger = get_logger(logger_level="INFO")
|
|
54
|
-
BaseClient.__init__(self, user_id=self.user_id, app_id=self.app_id, base=base_url)
|
|
55
|
-
Lister.__init__(self)
|
|
56
|
-
|
|
57
|
-
def predict(self, inputs: List[Input]):
|
|
58
|
-
"""Predicts the workflow based on the given inputs.
|
|
59
|
-
|
|
60
|
-
Args:
|
|
61
|
-
inputs (list[Input]): The inputs to predict.
|
|
62
|
-
"""
|
|
63
|
-
if len(inputs) > 128:
|
|
64
|
-
raise UserError("Too many inputs. Max is 128.") # TODO Use Chunker for inputs len > 128
|
|
65
|
-
request = service_pb2.PostWorkflowResultsRequest(
|
|
66
|
-
user_app_id=self.user_app_id,
|
|
67
|
-
workflow_id=self.id,
|
|
68
|
-
version_id=self.version.id,
|
|
69
|
-
inputs=inputs,
|
|
70
|
-
output_config=self.output_config)
|
|
71
|
-
|
|
72
|
-
response = self._grpc_request(self.STUB.PostWorkflowResults, request)
|
|
73
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
74
|
-
raise Exception(f"Workflow Predict failed with response {response.status!r}")
|
|
75
|
-
|
|
76
|
-
return response
|
|
77
|
-
|
|
78
|
-
def predict_by_filepath(self, filepath: str, input_type: str):
|
|
79
|
-
"""Predicts the workflow based on the given filepath.
|
|
80
|
-
|
|
81
|
-
Args:
|
|
82
|
-
filepath (str): The filepath to predict.
|
|
83
|
-
input_type (str): The type of input. Can be 'image', 'text', 'video' or 'audio.
|
|
84
|
-
|
|
85
|
-
Example:
|
|
86
|
-
>>> from clarifai.client.workflow import Workflow
|
|
87
|
-
>>> workflow = Workflow("workflow_url") # Example: https://clarifai.com/clarifai/main/workflows/Face-Sentiment
|
|
88
|
-
or
|
|
89
|
-
>>> workflow = Workflow(user_id='user_id', app_id='app_id', workflow_id='workflow_id')
|
|
90
|
-
>>> workflow_prediction = workflow.predict_by_filepath('filepath', 'image')
|
|
91
|
-
"""
|
|
92
|
-
if input_type not in {'image', 'text', 'video', 'audio'}:
|
|
93
|
-
raise UserError('Invalid input type it should be image, text, video or audio.')
|
|
94
|
-
if not os.path.isfile(filepath):
|
|
95
|
-
raise UserError('Invalid filepath.')
|
|
96
|
-
|
|
97
|
-
with open(filepath, "rb") as f:
|
|
98
|
-
file_bytes = f.read()
|
|
99
|
-
|
|
100
|
-
return self.predict_by_bytes(file_bytes, input_type)
|
|
101
|
-
|
|
102
|
-
def predict_by_bytes(self, input_bytes: bytes, input_type: str):
|
|
103
|
-
"""Predicts the workflow based on the given bytes.
|
|
104
|
-
|
|
105
|
-
Args:
|
|
106
|
-
input_bytes (bytes): Bytes to predict on.
|
|
107
|
-
input_type (str): The type of input. Can be 'image', 'text', 'video' or 'audio.
|
|
108
|
-
"""
|
|
109
|
-
if input_type not in {'image', 'text', 'video', 'audio'}:
|
|
110
|
-
raise UserError('Invalid input type it should be image, text, video or audio.')
|
|
111
|
-
if not isinstance(input_bytes, bytes):
|
|
112
|
-
raise UserError('Invalid bytes.')
|
|
113
|
-
|
|
114
|
-
if input_type == "image":
|
|
115
|
-
input_proto = Inputs().get_input_from_bytes("", image_bytes=input_bytes)
|
|
116
|
-
elif input_type == "text":
|
|
117
|
-
input_proto = Inputs().get_input_from_bytes("", text_bytes=input_bytes)
|
|
118
|
-
elif input_type == "video":
|
|
119
|
-
input_proto = Inputs().get_input_from_bytes("", video_bytes=input_bytes)
|
|
120
|
-
elif input_type == "audio":
|
|
121
|
-
input_proto = Inputs().get_input_from_bytes("", audio_bytes=input_bytes)
|
|
122
|
-
|
|
123
|
-
return self.predict(inputs=[input_proto])
|
|
124
|
-
|
|
125
|
-
def predict_by_url(self, url: str, input_type: str):
|
|
126
|
-
"""Predicts the workflow based on the given URL.
|
|
127
|
-
|
|
128
|
-
Args:
|
|
129
|
-
url (str): The URL to predict.
|
|
130
|
-
input_type (str): The type of input. Can be 'image', 'text', 'video' or 'audio.
|
|
131
|
-
|
|
132
|
-
Example:
|
|
133
|
-
>>> from clarifai.client.workflow import Workflow
|
|
134
|
-
>>> workflow = Workflow("workflow_url") # Example: https://clarifai.com/clarifai/main/workflows/Face-Sentiment
|
|
135
|
-
or
|
|
136
|
-
>>> workflow = Workflow(user_id='user_id', app_id='app_id', workflow_id='workflow_id')
|
|
137
|
-
>>> workflow_prediction = workflow.predict_by_url('url', 'image')
|
|
138
|
-
"""
|
|
139
|
-
if input_type not in {'image', 'text', 'video', 'audio'}:
|
|
140
|
-
raise UserError('Invalid input type it should be image, text, video or audio.')
|
|
141
|
-
|
|
142
|
-
if input_type == "image":
|
|
143
|
-
input_proto = Inputs().get_input_from_url("", image_url=url)
|
|
144
|
-
elif input_type == "text":
|
|
145
|
-
input_proto = Inputs().get_input_from_url("", text_url=url)
|
|
146
|
-
elif input_type == "video":
|
|
147
|
-
input_proto = Inputs().get_input_from_url("", video_url=url)
|
|
148
|
-
elif input_type == "audio":
|
|
149
|
-
input_proto = Inputs().get_input_from_url("", audio_url=url)
|
|
150
|
-
|
|
151
|
-
return self.predict(inputs=[input_proto])
|
|
152
|
-
|
|
153
|
-
def list_versions(self, page_no: int = None,
|
|
154
|
-
per_page: int = None) -> Generator['Workflow', None, None]:
|
|
155
|
-
"""Lists all the versions of the workflow.
|
|
156
|
-
|
|
157
|
-
Args:
|
|
158
|
-
page_no (int): The page number to list.
|
|
159
|
-
per_page (int): The number of items per page.
|
|
160
|
-
|
|
161
|
-
Yields:
|
|
162
|
-
Workflow: Workflow objects for versions of the workflow.
|
|
163
|
-
|
|
164
|
-
Example:
|
|
165
|
-
>>> from clarifai.client.workflow import Workflow
|
|
166
|
-
>>> workflow = Workflow(user_id='user_id', app_id='app_id', workflow_id='workflow_id')
|
|
167
|
-
>>> workflow_versions = list(workflow.list_versions())
|
|
168
|
-
|
|
169
|
-
Note:
|
|
170
|
-
Defaults to 16 per page if page_no is specified and per_page is not specified.
|
|
171
|
-
If both page_no and per_page are None, then lists all the resources.
|
|
172
|
-
"""
|
|
173
|
-
request_data = dict(
|
|
174
|
-
user_app_id=self.user_app_id,
|
|
175
|
-
workflow_id=self.id,
|
|
176
|
-
)
|
|
177
|
-
all_workflow_versions_info = self.list_pages_generator(
|
|
178
|
-
self.STUB.ListWorkflowVersions,
|
|
179
|
-
service_pb2.ListWorkflowVersionsRequest,
|
|
180
|
-
request_data,
|
|
181
|
-
per_page=per_page,
|
|
182
|
-
page_no=page_no)
|
|
183
|
-
|
|
184
|
-
for workflow_version_info in all_workflow_versions_info:
|
|
185
|
-
workflow_version_info['id'] = workflow_version_info['workflow_version_id']
|
|
186
|
-
del workflow_version_info['workflow_version_id']
|
|
187
|
-
yield Workflow(
|
|
188
|
-
workflow_id=self.id,
|
|
189
|
-
base_url=self.base,
|
|
190
|
-
**dict(self.kwargs, version=workflow_version_info))
|
|
191
|
-
|
|
192
|
-
def export(self, out_path: str):
|
|
193
|
-
"""Exports the workflow to a yaml file.
|
|
194
|
-
|
|
195
|
-
Args:
|
|
196
|
-
out_path (str): The path to save the yaml file to.
|
|
197
|
-
|
|
198
|
-
Example:
|
|
199
|
-
>>> from clarifai.client.workflow import Workflow
|
|
200
|
-
>>> workflow = Workflow("https://clarifai.com/clarifai/main/workflows/Demographics")
|
|
201
|
-
>>> workflow.export('out_path.yml')
|
|
202
|
-
"""
|
|
203
|
-
request = service_pb2.GetWorkflowRequest(user_app_id=self.user_app_id, workflow_id=self.id)
|
|
204
|
-
response = self._grpc_request(self.STUB.GetWorkflow, request)
|
|
205
|
-
if response.status.code != status_code_pb2.SUCCESS:
|
|
206
|
-
raise Exception(f"Workflow Export failed with response {response.status!r}")
|
|
207
|
-
|
|
208
|
-
with Exporter(response) as e:
|
|
209
|
-
e.parse()
|
|
210
|
-
e.export(out_path)
|
|
211
|
-
|
|
212
|
-
self.logger.info(f"Exported workflow to {out_path}")
|
|
213
|
-
|
|
214
|
-
def __getattr__(self, name):
|
|
215
|
-
return getattr(self.workflow_info, name)
|
|
216
|
-
|
|
217
|
-
def __str__(self):
|
|
218
|
-
init_params = [param for param in self.kwargs.keys()]
|
|
219
|
-
attribute_strings = [
|
|
220
|
-
f"{param}={getattr(self.workflow_info, param)}" for param in init_params
|
|
221
|
-
if hasattr(self.workflow_info, param)
|
|
222
|
-
]
|
|
223
|
-
return f"Workflow Details: \n{', '.join(attribute_strings)}\n"
|
|
File without changes
|
|
File without changes
|