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