clarifai 11.1.7rc1__tar.gz → 11.1.7rc3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {clarifai-11.1.7rc1/clarifai.egg-info → clarifai-11.1.7rc3}/PKG-INFO +16 -2
- clarifai-11.1.7rc3/clarifai/__init__.py +1 -0
- clarifai-11.1.7rc3/clarifai/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/__pycache__/errors.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/__pycache__/versions.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/cli/__pycache__/base_cli.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/cli/__pycache__/compute_cluster.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/__pycache__/deployment.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/cli/__pycache__/model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/cli/__pycache__/model_cli.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/__pycache__/nodepool.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/app.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/compute_cluster.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/dataset.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/deployment.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/input.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/__pycache__/lister.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/module.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/nodepool.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/search.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/user.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/__pycache__/workflow.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/auth/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/auth/__pycache__/helper.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/auth/__pycache__/register.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/client/auth/__pycache__/stub.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/model.py +0 -1
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/model_client.py +23 -24
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/dataset.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/input.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/rag.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/search.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/constants/__pycache__/workflow.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/export/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/features.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/image.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/multimodal.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/text.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/__pycache__/utils.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/models/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/modules/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/rag/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/rag/__pycache__/__init__.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/rag/__pycache__/rag.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/rag/__pycache__/rag.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/rag/__pycache__/utils.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/dockerfile_template/Dockerfile.template +0 -3
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/__pycache__/base_typed_model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/base_typed_model.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/model_class.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/model_run_locally.cpython-310-pytest-7.1.2.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/models/__pycache__/model_upload.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/model_builder.py +56 -4
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/model_class.py +40 -17
- clarifai-11.1.7rc3/clarifai/runners/models/temp.py +25 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/buffered_stream.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/buffered_stream.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/buffered_stream.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/const.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/constants.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/constants.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/constants.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/__pycache__/data_handler.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/data_handler.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/data_handler.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/data_utils.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/data_utils.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/grpc_server.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/grpc_server.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/grpc_server.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/health.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/health.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/health.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/loader.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/logging.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/logging.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/logging.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/stream_source.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/stream_source.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/__pycache__/url_fetcher.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/url_fetcher.cpython-38.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/runners/utils/__pycache__/url_fetcher.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/method_signatures.py +108 -131
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/schema/__pycache__/search.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/urls/__pycache__/helper.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/cli.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/constants.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/logging.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/misc.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/__pycache__/model_train.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/evaluation/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/utils/evaluation/__pycache__/main.cpython-39.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/workflows/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc3/clarifai/workflows/__pycache__/__init__.cpython-39.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/__pycache__/export.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/__pycache__/utils.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/__pycache__/validate.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3/clarifai.egg-info}/PKG-INFO +16 -2
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai.egg-info/SOURCES.txt +56 -37
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai.egg-info/requires.txt +2 -2
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/requirements.txt +2 -2
- clarifai-11.1.7rc1/clarifai/__init__.py +0 -1
- clarifai-11.1.7rc1/clarifai/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/__pycache__/versions.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/cli/__main__.py~ +0 -4
- clarifai-11.1.7rc1/clarifai/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/cli/__pycache__/__main__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/cli/__pycache__/compute_cluster.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/cli/__pycache__/model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/#model_client.py# +0 -430
- clarifai-11.1.7rc1/clarifai/client/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/app.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/dataset.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/input.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/module.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/runner.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/search.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/user.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/__pycache__/workflow.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/auth/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/auth/__pycache__/helper.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/client/auth/__pycache__/stub.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/constants/__pycache__/dataset.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/constants/__pycache__/model.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/constants/__pycache__/search.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/export/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/__pycache__/features.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/__pycache__/image.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/__pycache__/text.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/__pycache__/utils.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/datasets/upload/loaders/__pycache__/coco_detection.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/__pycache__/constants.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/cli/__pycache__/_utils.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/cli/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/cli/__pycache__/build.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/cli/__pycache__/create.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/__pycache__/base.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/__pycache__/config.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/__pycache__/inference_parameter.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/__pycache__/output.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/triton/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/triton/__pycache__/serializer.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/triton/__pycache__/triton_config.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/model_config/triton/__pycache__/wrappers.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/repo_build/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/repo_build/__pycache__/build.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/models/model_serving/repo_build/static_files/__pycache__/base_test.cpython-310-pytest-7.2.0.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/rag/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/__pycache__/server.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/dockerfile_template/Dockerfile.debug +0 -11
- clarifai-11.1.7rc1/clarifai/runners/dockerfile_template/Dockerfile.debug~ +0 -9
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/model_builder.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/model_class.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/model_servicer.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/models/__pycache__/model_upload.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/const.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/data_types.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/data_utils.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/loader.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/logging.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/method_signatures.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/runners/utils/__pycache__/serializers.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/urls/__pycache__/helper.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/__pycache__/logging.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/__pycache__/misc.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/__pycache__/model_train.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/evaluation/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/evaluation/__pycache__/helpers.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/utils/evaluation/__pycache__/main.cpython-310.pyc +0 -0
- clarifai-11.1.7rc1/clarifai/workflows/__pycache__/__init__.cpython-310.pyc +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/LICENSE +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/MANIFEST.in +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/README.md +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/README.md +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/__main__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/base.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/compute_cluster.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/deployment.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/model.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/nodepool.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/app.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/auth/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/auth/helper.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/auth/register.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/auth/stub.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/base.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/compute_cluster.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/dataset.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/deployment.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/input.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/lister.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/module.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/nodepool.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/search.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/user.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/workflow.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/base.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/dataset.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/input.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/model.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/rag.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/search.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/constants/workflow.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/export/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/export/inputs_annotations.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/base.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/features.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/image.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/loaders/README.md +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/loaders/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/loaders/coco_captions.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/loaders/coco_detection.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/loaders/xview_detection.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/multimodal.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/text.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/datasets/upload/utils.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/errors.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/models/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/models/api.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/modules/README.md +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/modules/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/modules/css.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/modules/pages.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/modules/style.css +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/rag/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/rag/rag.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/rag/utils.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/model_run_locally.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/model_runner.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/models/model_servicer.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/server.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/const.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/data_types.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/data_utils.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/loader.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/serializers.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/utils/url_fetcher.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/schema/search.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/urls/helper.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/cli.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/constants.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/evaluation/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/evaluation/helpers.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/evaluation/main.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/evaluation/testset_annotation_parser.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/logging.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/misc.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/utils/model_train.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/versions.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/__init__.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/export.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/utils.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/workflows/validate.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai.egg-info/dependency_links.txt +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai.egg-info/entry_points.txt +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai.egg-info/top_level.txt +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/pyproject.toml +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/setup.cfg +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/setup.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_app.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_auth.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_data_upload.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_eval.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_misc.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_model_predict.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_model_train.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_modules.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_rag.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_search.py +0 -0
- {clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/tests/test_stub.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: clarifai
|
3
|
-
Version: 11.1.
|
3
|
+
Version: 11.1.7rc3
|
4
4
|
Summary: Clarifai Python SDK
|
5
5
|
Home-page: https://github.com/Clarifai/clarifai-python
|
6
6
|
Author: Clarifai
|
@@ -19,8 +19,22 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
19
19
|
Classifier: Operating System :: OS Independent
|
20
20
|
Requires-Python: >=3.8
|
21
21
|
Description-Content-Type: text/markdown
|
22
|
-
Provides-Extra: all
|
23
22
|
License-File: LICENSE
|
23
|
+
Requires-Dist: clarifai-grpc>=11.2.4
|
24
|
+
Requires-Dist: clarifai-protocol>=0.0.20
|
25
|
+
Requires-Dist: numpy>=1.22.0
|
26
|
+
Requires-Dist: tqdm>=4.65.0
|
27
|
+
Requires-Dist: rich>=13.4.2
|
28
|
+
Requires-Dist: PyYAML>=6.0.1
|
29
|
+
Requires-Dist: schema==0.7.5
|
30
|
+
Requires-Dist: Pillow>=9.5.0
|
31
|
+
Requires-Dist: tabulate>=0.9.0
|
32
|
+
Requires-Dist: fsspec>=2024.6.1
|
33
|
+
Requires-Dist: click>=8.1.7
|
34
|
+
Requires-Dist: requests>=2.32.3
|
35
|
+
Requires-Dist: aiohttp>=3.8.1
|
36
|
+
Provides-Extra: all
|
37
|
+
Requires-Dist: pycocotools==2.0.6; extra == "all"
|
24
38
|
|
25
39
|
<h1 align="center">
|
26
40
|
<a href="https://www.clarifai.com/"><img alt="Clarifai" title="Clarifai" src="https://github.com/user-attachments/assets/623b883b-7fe5-4b95-bbfa-8691f5779af4"></a>
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "11.1.7rc3"
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
{clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/cli/__pycache__/deployment.cpython-310.pyc
RENAMED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
{clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/__pycache__/lister.cpython-310.pyc
RENAMED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
{clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/client/auth/__pycache__/register.cpython-310.pyc
RENAMED
Binary file
|
Binary file
|
@@ -84,7 +84,6 @@ class Model(Lister, BaseClient):
|
|
84
84
|
compute_cluster_id=compute_cluster_id,
|
85
85
|
nodepool_id=nodepool_id,
|
86
86
|
deployment_id=deployment_id,
|
87
|
-
user_id=self.user_id, # FIXME the deployment's user_id can be different than the model's.
|
88
87
|
)
|
89
88
|
BaseClient.__init__(
|
90
89
|
self,
|
@@ -1,5 +1,3 @@
|
|
1
|
-
import inspect
|
2
|
-
import json
|
3
1
|
import time
|
4
2
|
from typing import Any, Dict, Iterator, List
|
5
3
|
|
@@ -98,18 +96,19 @@ class ModelClient:
|
|
98
96
|
'''
|
99
97
|
for method_name, method_signature in self._method_signatures.items():
|
100
98
|
# define the function in this client instance
|
101
|
-
if method_signature.method_type == '
|
99
|
+
if resources_pb2.RunnerMethodType.Name(method_signature.method_type) == 'UNARY_UNARY':
|
102
100
|
call_func = self._predict
|
103
|
-
elif method_signature.method_type == '
|
101
|
+
elif resources_pb2.RunnerMethodType.Name(method_signature.method_type) == 'UNARY_STREAMING':
|
104
102
|
call_func = self._generate
|
105
|
-
elif
|
103
|
+
elif resources_pb2.RunnerMethodType.Name(
|
104
|
+
method_signature.method_type) == 'STREAMING_STREAMING':
|
106
105
|
call_func = self._stream
|
107
106
|
else:
|
108
107
|
raise ValueError(f"Unknown method type {method_signature.method_type}")
|
109
108
|
|
110
109
|
# method argnames, in order, collapsing nested keys to corresponding user function args
|
111
110
|
method_argnames = []
|
112
|
-
for var in method_signature.
|
111
|
+
for var in method_signature.input_fields:
|
113
112
|
outer = var.name.split('.', 1)[0]
|
114
113
|
if outer in method_argnames:
|
115
114
|
continue
|
@@ -136,18 +135,18 @@ class ModelClient:
|
|
136
135
|
# set names, annotations and docstrings
|
137
136
|
f.__name__ = method_name
|
138
137
|
f.__qualname__ = f'{self.__class__.__name__}.{method_name}'
|
139
|
-
|
140
|
-
input_annotations = json.loads(method_signature.annotations_json)
|
141
|
-
return_annotation = input_annotations.pop('return', None)
|
142
|
-
sig = inspect.signature(f).replace(
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
)
|
149
|
-
f.__signature__ = sig
|
150
|
-
f.__doc__ = method_signature.
|
138
|
+
# TODO: set signature from annotations to the function, currently MethodSignature don't have `annotations_json` field
|
139
|
+
# input_annotations = json.loads(method_signature.annotations_json)
|
140
|
+
# return_annotation = input_annotations.pop('return', None)
|
141
|
+
# sig = inspect.signature(f).replace(
|
142
|
+
# parameters=[
|
143
|
+
# inspect.Parameter(k, inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=v)
|
144
|
+
# for k, v in input_annotations.items()
|
145
|
+
# ],
|
146
|
+
# return_annotation=return_annotation,
|
147
|
+
# )
|
148
|
+
# f.__signature__ = sig
|
149
|
+
f.__doc__ = method_signature.description
|
151
150
|
setattr(self, method_name, f)
|
152
151
|
|
153
152
|
def _define_compatability_functions(self):
|
@@ -177,8 +176,8 @@ class ModelClient:
|
|
177
176
|
inputs, # TODO set up functions according to fetched signatures?
|
178
177
|
method_name: str = 'predict',
|
179
178
|
) -> Any:
|
180
|
-
input_signature = self._method_signatures[method_name].
|
181
|
-
output_signature = self._method_signatures[method_name].
|
179
|
+
input_signature = self._method_signatures[method_name].input_fields
|
180
|
+
output_signature = self._method_signatures[method_name].output_fields
|
182
181
|
|
183
182
|
batch_input = True
|
184
183
|
if isinstance(inputs, dict):
|
@@ -260,8 +259,8 @@ class ModelClient:
|
|
260
259
|
inputs, # TODO set up functions according to fetched signatures?
|
261
260
|
method_name: str = 'generate',
|
262
261
|
) -> Any:
|
263
|
-
input_signature = self._method_signatures[method_name].
|
264
|
-
output_signature = self._method_signatures[method_name].
|
262
|
+
input_signature = self._method_signatures[method_name].input_fields
|
263
|
+
output_signature = self._method_signatures[method_name].output_fields
|
265
264
|
|
266
265
|
batch_input = True
|
267
266
|
if isinstance(inputs, dict):
|
@@ -350,8 +349,8 @@ class ModelClient:
|
|
350
349
|
inputs,
|
351
350
|
method_name: str = 'stream',
|
352
351
|
) -> Any:
|
353
|
-
input_signature = self._method_signatures[method_name].
|
354
|
-
output_signature = self._method_signatures[method_name].
|
352
|
+
input_signature = self._method_signatures[method_name].input_fields
|
353
|
+
output_signature = self._method_signatures[method_name].output_fields
|
355
354
|
|
356
355
|
if isinstance(inputs, list):
|
357
356
|
assert len(inputs) == 1, 'streaming methods do not support batched calls'
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
{clarifai-11.1.7rc1 → clarifai-11.1.7rc3}/clarifai/runners/dockerfile_template/Dockerfile.template
RENAMED
@@ -44,9 +44,6 @@ ENV PYTHONPATH=${PYTHONPATH}:/home/nonroot/main \
|
|
44
44
|
CLARIFAI_COMPUTE_CLUSTER_ID=${CLARIFAI_COMPUTE_CLUSTER_ID} \
|
45
45
|
CLARIFAI_API_BASE=${CLARIFAI_API_BASE:-https://api.clarifai.com}
|
46
46
|
|
47
|
-
# # Write out the model function signatures
|
48
|
-
# RUN ["python", "-m", "clarifai.cli", "model", "signatures", "--model_path", "/home/nonroot/main", "--out_path", "/home/nonroot/main/signatures.yaml"]
|
49
|
-
|
50
47
|
# Finally run the clarifai entrypoint to start the runner loop and local dev server.
|
51
48
|
# Note(zeiler): we may want to make this a clarifai CLI call.
|
52
49
|
ENTRYPOINT ["python", "-m", "clarifai.runners.server"]
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import builtins
|
1
2
|
import importlib
|
2
3
|
import inspect
|
3
4
|
import os
|
@@ -6,6 +7,7 @@ import sys
|
|
6
7
|
import tarfile
|
7
8
|
import time
|
8
9
|
from string import Template
|
10
|
+
from unittest.mock import MagicMock
|
9
11
|
|
10
12
|
import yaml
|
11
13
|
from clarifai_grpc.grpc.api import resources_pb2, service_pb2
|
@@ -80,7 +82,7 @@ class ModelBuilder:
|
|
80
82
|
|
81
83
|
def load_model_class(self):
|
82
84
|
"""
|
83
|
-
Import the model class from the model.py file
|
85
|
+
Import the model class from the model.py file, dynamically handling missing dependencies
|
84
86
|
"""
|
85
87
|
# look for default model.py file location
|
86
88
|
for loc in ["model.py", "1/model.py"]:
|
@@ -95,7 +97,29 @@ class ModelBuilder:
|
|
95
97
|
spec = importlib.util.spec_from_file_location(module_name, model_file)
|
96
98
|
module = importlib.util.module_from_spec(spec)
|
97
99
|
sys.modules[module_name] = module
|
98
|
-
|
100
|
+
|
101
|
+
original_import = builtins.__import__
|
102
|
+
|
103
|
+
def custom_import(name, globals=None, locals=None, fromlist=(), level=0):
|
104
|
+
|
105
|
+
# Allow standard libraries and clarifai
|
106
|
+
if self._is_standard_or_clarifai(name):
|
107
|
+
return original_import(name, globals, locals, fromlist, level)
|
108
|
+
|
109
|
+
# Mock all third-party imports to avoid ImportErrors or other issues
|
110
|
+
return MagicMock()
|
111
|
+
|
112
|
+
# Replace the built-in __import__ function with our custom one
|
113
|
+
builtins.__import__ = custom_import
|
114
|
+
|
115
|
+
try:
|
116
|
+
spec.loader.exec_module(module)
|
117
|
+
except Exception as e:
|
118
|
+
logger.error(f"Error loading model.py: {e}")
|
119
|
+
raise
|
120
|
+
finally:
|
121
|
+
# Restore the original __import__ function
|
122
|
+
builtins.__import__ = original_import
|
99
123
|
|
100
124
|
# Find all classes in the model.py file that are subclasses of ModelClass
|
101
125
|
classes = [
|
@@ -122,6 +146,23 @@ class ModelBuilder:
|
|
122
146
|
model_class = classes[0]
|
123
147
|
return model_class
|
124
148
|
|
149
|
+
def _is_standard_or_clarifai(self, name):
|
150
|
+
"""Check if import is from standard library or clarifai"""
|
151
|
+
if name.startswith("clarifai"):
|
152
|
+
return True
|
153
|
+
|
154
|
+
# Handle Python <3.10 compatibility
|
155
|
+
stdlib_names = getattr(sys, "stdlib_module_names", sys.builtin_module_names)
|
156
|
+
if name in stdlib_names:
|
157
|
+
return True
|
158
|
+
|
159
|
+
# Handle submodules (e.g., os.path)
|
160
|
+
parts = name.split(".")
|
161
|
+
for i in range(1, len(parts)):
|
162
|
+
if ".".join(parts[:i]) in stdlib_names:
|
163
|
+
return True
|
164
|
+
return False
|
165
|
+
|
125
166
|
def _validate_folder(self, folder):
|
126
167
|
if folder == ".":
|
127
168
|
folder = "" # will getcwd() next which ends with /
|
@@ -267,9 +308,18 @@ class ModelBuilder:
|
|
267
308
|
"""
|
268
309
|
model_class = self.load_model_class()
|
269
310
|
method_info = model_class._get_method_info()
|
270
|
-
signatures = {name: m.signature for name, m in method_info.
|
311
|
+
signatures = {name: m.signature for name, m in method_info.values()}
|
271
312
|
return signatures_to_yaml(signatures)
|
272
313
|
|
314
|
+
def get_method_signatures(self):
|
315
|
+
"""
|
316
|
+
Returns the method signatures for the model class.
|
317
|
+
"""
|
318
|
+
model_class = self.load_model_class()
|
319
|
+
method_info = model_class._get_method_info()
|
320
|
+
signatures = [method.signature for method in method_info.values()]
|
321
|
+
return signatures
|
322
|
+
|
273
323
|
@property
|
274
324
|
def client(self):
|
275
325
|
if self._client is None:
|
@@ -548,10 +598,11 @@ class ModelBuilder:
|
|
548
598
|
logger.info(f"Updated config.yaml with {len(concepts)} concepts.")
|
549
599
|
|
550
600
|
def get_model_version_proto(self):
|
551
|
-
|
601
|
+
signatures = self.get_method_signatures()
|
552
602
|
model_version_proto = resources_pb2.ModelVersion(
|
553
603
|
pretrained_model_config=resources_pb2.PretrainedModelConfig(),
|
554
604
|
inference_compute_info=self.inference_compute_info,
|
605
|
+
method_signatures=signatures,
|
555
606
|
)
|
556
607
|
|
557
608
|
model_type_id = self.config.get('model').get('model_type_id')
|
@@ -739,6 +790,7 @@ class ModelBuilder:
|
|
739
790
|
model_id=self.model_proto.id,
|
740
791
|
version_id=self.model_version_id,
|
741
792
|
))
|
793
|
+
|
742
794
|
status_code = resp.model_version.status.code
|
743
795
|
logs = self.get_model_build_logs()
|
744
796
|
for log_entry in logs.log_entries:
|
@@ -8,6 +8,7 @@ from typing import Any, Dict, Iterator, List
|
|
8
8
|
|
9
9
|
from clarifai_grpc.grpc.api import resources_pb2, service_pb2
|
10
10
|
from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
|
11
|
+
from google.protobuf import json_format
|
11
12
|
|
12
13
|
from clarifai.runners.utils import data_types
|
13
14
|
from clarifai.runners.utils.method_signatures import (build_function_signature, deserialize,
|
@@ -84,6 +85,7 @@ class ModelClass(ABC):
|
|
84
85
|
try:
|
85
86
|
# TODO add method name field to proto
|
86
87
|
method_name = 'predict'
|
88
|
+
inference_params = get_inference_params(request)
|
87
89
|
if len(request.inputs) > 0 and '_method_name' in request.inputs[0].data.metadata:
|
88
90
|
method_name = request.inputs[0].data.metadata['_method_name']
|
89
91
|
if method_name == '_GET_SIGNATURES': # special case to fetch signatures, TODO add endpoint for this
|
@@ -94,15 +96,17 @@ class ModelClass(ABC):
|
|
94
96
|
method_info = method._cf_method_info
|
95
97
|
signature = method_info.signature
|
96
98
|
python_param_types = method_info.python_param_types
|
97
|
-
inputs = self._convert_input_protos_to_python(request.inputs,
|
98
|
-
python_param_types)
|
99
|
+
inputs = self._convert_input_protos_to_python(request.inputs, inference_params,
|
100
|
+
signature.input_fields, python_param_types)
|
99
101
|
if len(inputs) == 1:
|
100
102
|
inputs = inputs[0]
|
101
103
|
output = method(**inputs)
|
102
|
-
outputs.append(self._convert_output_to_proto(output, signature.
|
104
|
+
outputs.append(self._convert_output_to_proto(output, signature.output_fields))
|
103
105
|
else:
|
104
106
|
outputs = self._batch_predict(method, inputs)
|
105
|
-
outputs = [
|
107
|
+
outputs = [
|
108
|
+
self._convert_output_to_proto(output, signature.output_fields) for output in outputs
|
109
|
+
]
|
106
110
|
|
107
111
|
return service_pb2.MultiOutputResponse(
|
108
112
|
outputs=outputs, status=status_pb2.Status(code=status_code_pb2.SUCCESS))
|
@@ -119,6 +123,7 @@ class ModelClass(ABC):
|
|
119
123
|
) -> Iterator[service_pb2.MultiOutputResponse]:
|
120
124
|
try:
|
121
125
|
method_name = 'generate'
|
126
|
+
inference_params = get_inference_params(request)
|
122
127
|
if len(request.inputs) > 0 and '_method_name' in request.inputs[0].data.metadata:
|
123
128
|
method_name = request.inputs[0].data.metadata['_method_name']
|
124
129
|
method = getattr(self, method_name)
|
@@ -126,20 +131,21 @@ class ModelClass(ABC):
|
|
126
131
|
signature = method_info.signature
|
127
132
|
python_param_types = method_info.python_param_types
|
128
133
|
|
129
|
-
inputs = self._convert_input_protos_to_python(request.inputs,
|
130
|
-
python_param_types)
|
134
|
+
inputs = self._convert_input_protos_to_python(request.inputs, inference_params,
|
135
|
+
signature.input_fields, python_param_types)
|
131
136
|
if len(inputs) == 1:
|
132
137
|
inputs = inputs[0]
|
133
138
|
for output in method(**inputs):
|
134
139
|
resp = service_pb2.MultiOutputResponse()
|
135
|
-
self._convert_output_to_proto(output, signature.
|
140
|
+
self._convert_output_to_proto(output, signature.output_fields, proto=resp.outputs.add())
|
136
141
|
resp.status.code = status_code_pb2.SUCCESS
|
137
142
|
yield resp
|
138
143
|
else:
|
139
144
|
for outputs in self._batch_generate(method, inputs):
|
140
145
|
resp = service_pb2.MultiOutputResponse()
|
141
146
|
for output in outputs:
|
142
|
-
self._convert_output_to_proto(
|
147
|
+
self._convert_output_to_proto(
|
148
|
+
output, signature.output_fields, proto=resp.outputs.add())
|
143
149
|
resp.status.code = status_code_pb2.SUCCESS
|
144
150
|
yield resp
|
145
151
|
except Exception as e:
|
@@ -158,6 +164,7 @@ class ModelClass(ABC):
|
|
158
164
|
assert len(request.inputs) == 1, "Streaming requires exactly one input"
|
159
165
|
|
160
166
|
method_name = 'generate'
|
167
|
+
inference_params = get_inference_params(request)
|
161
168
|
if len(request.inputs) > 0 and '_method_name' in request.inputs[0].data.metadata:
|
162
169
|
method_name = request.inputs[0].data.metadata['_method_name']
|
163
170
|
method = getattr(self, method_name)
|
@@ -166,14 +173,14 @@ class ModelClass(ABC):
|
|
166
173
|
python_param_types = method_info.python_param_types
|
167
174
|
|
168
175
|
# find the streaming vars in the signature
|
169
|
-
stream_sig = get_stream_from_signature(signature.
|
176
|
+
stream_sig = get_stream_from_signature(signature.input_fields)
|
170
177
|
if stream_sig is None:
|
171
178
|
raise ValueError("Streaming method must have a Stream input")
|
172
179
|
stream_argname = stream_sig.name
|
173
180
|
|
174
181
|
# convert all inputs for the first request, including the first stream value
|
175
|
-
inputs = self._convert_input_protos_to_python(request.inputs,
|
176
|
-
python_param_types)
|
182
|
+
inputs = self._convert_input_protos_to_python(request.inputs, inference_params,
|
183
|
+
signature.input_fields, python_param_types)
|
177
184
|
kwargs = inputs[0]
|
178
185
|
|
179
186
|
# first streaming item
|
@@ -184,8 +191,8 @@ class ModelClass(ABC):
|
|
184
191
|
yield first_item
|
185
192
|
# subsequent streaming items contain only the streaming input
|
186
193
|
for request in request_iterator:
|
187
|
-
item = self._convert_input_protos_to_python(request.inputs,
|
188
|
-
python_param_types)
|
194
|
+
item = self._convert_input_protos_to_python(request.inputs, inference_params,
|
195
|
+
[stream_sig], python_param_types)
|
189
196
|
item = item[0][stream_argname]
|
190
197
|
yield item
|
191
198
|
|
@@ -194,7 +201,7 @@ class ModelClass(ABC):
|
|
194
201
|
|
195
202
|
for output in method(**kwargs):
|
196
203
|
resp = service_pb2.MultiOutputResponse()
|
197
|
-
self._convert_output_to_proto(output, signature.
|
204
|
+
self._convert_output_to_proto(output, signature.output_fields, proto=resp.outputs.add())
|
198
205
|
resp.status.code = status_code_pb2.SUCCESS
|
199
206
|
yield resp
|
200
207
|
except Exception as e:
|
@@ -206,11 +213,13 @@ class ModelClass(ABC):
|
|
206
213
|
details=str(e),
|
207
214
|
stack_trace=traceback.format_exc().split('\n')))
|
208
215
|
|
209
|
-
def _convert_input_protos_to_python(self, inputs: List[resources_pb2.Input],
|
216
|
+
def _convert_input_protos_to_python(self, inputs: List[resources_pb2.Input],
|
217
|
+
inference_params: dict,
|
218
|
+
variables_signature: List[resources_pb2.ModelTypeField],
|
210
219
|
python_param_types) -> List[Dict[str, Any]]:
|
211
220
|
result = []
|
212
221
|
for input in inputs:
|
213
|
-
kwargs = deserialize(input.data, variables_signature)
|
222
|
+
kwargs = deserialize(input.data, variables_signature, inference_params)
|
214
223
|
# dynamic cast to annotated types
|
215
224
|
for k, v in kwargs.items():
|
216
225
|
if k not in python_param_types:
|
@@ -219,7 +228,9 @@ class ModelClass(ABC):
|
|
219
228
|
result.append(kwargs)
|
220
229
|
return result
|
221
230
|
|
222
|
-
def _convert_output_to_proto(self,
|
231
|
+
def _convert_output_to_proto(self,
|
232
|
+
output: Any,
|
233
|
+
variables_signature: List[resources_pb2.ModelTypeField],
|
223
234
|
proto=None) -> resources_pb2.Output:
|
224
235
|
if proto is None:
|
225
236
|
proto = resources_pb2.Output()
|
@@ -256,6 +267,18 @@ class ModelClass(ABC):
|
|
256
267
|
return method_info
|
257
268
|
|
258
269
|
|
270
|
+
# Helper function to get the inference params
|
271
|
+
def get_inference_params(request) -> dict:
|
272
|
+
"""Get the inference params from the request."""
|
273
|
+
inference_params = {}
|
274
|
+
if request.model.model_version.id != "":
|
275
|
+
output_info = request.model.model_version.output_info
|
276
|
+
output_info = json_format.MessageToDict(output_info, preserving_proto_field_name=True)
|
277
|
+
if "params" in output_info:
|
278
|
+
inference_params = output_info["params"]
|
279
|
+
return inference_params
|
280
|
+
|
281
|
+
|
259
282
|
class _MethodInfo:
|
260
283
|
|
261
284
|
def __init__(self, method):
|
@@ -0,0 +1,25 @@
|
|
1
|
+
prediction = model.predict(text1 = "what is api?")
|
2
|
+
|
3
|
+
|
4
|
+
print(f"The answer is {prediction.answer_text}")
|
5
|
+
|
6
|
+
|
7
|
+
print(f"The answer is {prediction}")
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
# case 1
|
13
|
+
class MyModel(ModelClass):
|
14
|
+
|
15
|
+
def predict(self, text: str) -> Output:
|
16
|
+
|
17
|
+
return Output(answer_text= f" {text} hello world")
|
18
|
+
|
19
|
+
|
20
|
+
# case 2
|
21
|
+
class MyModel(ModelClass):
|
22
|
+
|
23
|
+
def predict(self, text: str) -> str:
|
24
|
+
|
25
|
+
return f" {text} hello world"
|