clarifai 11.1.4rc1__py3-none-any.whl → 11.1.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- clarifai/__init__.py +1 -1
- clarifai/cli/model.py +26 -5
- clarifai/client/model.py +4 -4
- clarifai/client/workflow.py +2 -2
- clarifai/runners/dockerfile_template/Dockerfile.template +2 -33
- clarifai/runners/models/model_builder.py +32 -22
- clarifai/runners/models/model_run_locally.py +5 -2
- clarifai/runners/server.py +21 -8
- clarifai/runners/utils/const.py +3 -0
- clarifai/utils/misc.py +12 -0
- {clarifai-11.1.4rc1.dist-info → clarifai-11.1.5.dist-info}/METADATA +26 -15
- clarifai-11.1.5.dist-info/RECORD +101 -0
- {clarifai-11.1.4rc1.dist-info → clarifai-11.1.5.dist-info}/WHEEL +1 -1
- clarifai/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/__pycache__/errors.cpython-310.pyc +0 -0
- clarifai/__pycache__/versions.cpython-310.pyc +0 -0
- clarifai/cli/__main__.py~ +0 -4
- clarifai/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/cli/__pycache__/__main__.cpython-310.pyc +0 -0
- clarifai/cli/__pycache__/base.cpython-310.pyc +0 -0
- clarifai/cli/__pycache__/compute_cluster.cpython-310.pyc +0 -0
- clarifai/cli/__pycache__/deployment.cpython-310.pyc +0 -0
- clarifai/cli/__pycache__/model.cpython-310.pyc +0 -0
- clarifai/cli/__pycache__/nodepool.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/app.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/base.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/dataset.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/input.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/lister.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/model.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/module.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/runner.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/search.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/user.cpython-310.pyc +0 -0
- clarifai/client/__pycache__/workflow.cpython-310.pyc +0 -0
- clarifai/client/auth/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/client/auth/__pycache__/helper.cpython-310.pyc +0 -0
- clarifai/client/auth/__pycache__/register.cpython-310.pyc +0 -0
- clarifai/client/auth/__pycache__/stub.cpython-310.pyc +0 -0
- clarifai/constants/__pycache__/dataset.cpython-310.pyc +0 -0
- clarifai/constants/__pycache__/model.cpython-310.pyc +0 -0
- clarifai/constants/__pycache__/search.cpython-310.pyc +0 -0
- clarifai/datasets/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/datasets/export/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/datasets/export/__pycache__/inputs_annotations.cpython-310.pyc +0 -0
- clarifai/datasets/upload/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/datasets/upload/__pycache__/base.cpython-310.pyc +0 -0
- clarifai/datasets/upload/__pycache__/features.cpython-310.pyc +0 -0
- clarifai/datasets/upload/__pycache__/image.cpython-310.pyc +0 -0
- clarifai/datasets/upload/__pycache__/text.cpython-310.pyc +0 -0
- clarifai/datasets/upload/__pycache__/utils.cpython-310.pyc +0 -0
- clarifai/models/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/models/model_serving/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/models/model_serving/__pycache__/constants.cpython-310.pyc +0 -0
- clarifai/models/model_serving/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/models/model_serving/cli/__pycache__/_utils.cpython-310.pyc +0 -0
- clarifai/models/model_serving/cli/__pycache__/base.cpython-310.pyc +0 -0
- clarifai/models/model_serving/cli/__pycache__/build.cpython-310.pyc +0 -0
- clarifai/models/model_serving/cli/__pycache__/create.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/__pycache__/base.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/__pycache__/config.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/__pycache__/inference_parameter.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/__pycache__/output.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/triton/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/triton/__pycache__/serializer.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/triton/__pycache__/triton_config.cpython-310.pyc +0 -0
- clarifai/models/model_serving/model_config/triton/__pycache__/wrappers.cpython-310.pyc +0 -0
- clarifai/models/model_serving/repo_build/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/models/model_serving/repo_build/__pycache__/build.cpython-310.pyc +0 -0
- clarifai/models/model_serving/repo_build/static_files/__pycache__/base_test.cpython-310-pytest-7.2.0.pyc +0 -0
- clarifai/rag/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/rag/__pycache__/rag.cpython-310.pyc +0 -0
- clarifai/rag/__pycache__/utils.cpython-310.pyc +0 -0
- clarifai/runners/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/runners/__pycache__/server.cpython-310.pyc +0 -0
- clarifai/runners/dockerfile_template/Dockerfile.debug +0 -11
- clarifai/runners/dockerfile_template/Dockerfile.debug~ +0 -9
- clarifai/runners/models/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/base_typed_model.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_builder.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_class.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_servicer.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_upload.cpython-310.pyc +0 -0
- clarifai/runners/models/model_upload.py +0 -607
- clarifai/runners/utils/#const.py# +0 -30
- clarifai/runners/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/const.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/data_handler.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/data_utils.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/loader.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/logging.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/url_fetcher.cpython-310.pyc +0 -0
- clarifai/schema/__pycache__/search.cpython-310.pyc +0 -0
- clarifai/urls/__pycache__/helper.cpython-310.pyc +0 -0
- clarifai/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/utils/__pycache__/logging.cpython-310.pyc +0 -0
- clarifai/utils/__pycache__/misc.cpython-310.pyc +0 -0
- clarifai/utils/__pycache__/model_train.cpython-310.pyc +0 -0
- clarifai/workflows/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/workflows/__pycache__/export.cpython-310.pyc +0 -0
- clarifai/workflows/__pycache__/utils.cpython-310.pyc +0 -0
- clarifai/workflows/__pycache__/validate.cpython-310.pyc +0 -0
- clarifai-11.1.4rc1.dist-info/RECORD +0 -194
- {clarifai-11.1.4rc1.dist-info → clarifai-11.1.5.dist-info}/LICENSE +0 -0
- {clarifai-11.1.4rc1.dist-info → clarifai-11.1.5.dist-info}/entry_points.txt +0 -0
- {clarifai-11.1.4rc1.dist-info → clarifai-11.1.5.dist-info}/top_level.txt +0 -0
clarifai/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "11.1.
|
1
|
+
__version__ = "11.1.5"
|
clarifai/cli/model.py
CHANGED
@@ -14,16 +14,25 @@ def model():
|
|
14
14
|
type=click.Path(exists=True),
|
15
15
|
required=True,
|
16
16
|
help='Path to the model directory.')
|
17
|
+
@click.option(
|
18
|
+
'--stage',
|
19
|
+
required=False,
|
20
|
+
type=click.Choice(['runtime', 'build', 'upload'], case_sensitive=True),
|
21
|
+
default="upload",
|
22
|
+
show_default=True,
|
23
|
+
help=
|
24
|
+
'The stage we are calling download checkpoints from. Typically this would "upload" and will download checkpoints if config.yaml checkpoints section has when set to "upload". Other options include "runtime" to be used in load_model or "upload" to be used during model upload. Set this stage to whatever you have in config.yaml to force downloading now.'
|
25
|
+
)
|
17
26
|
@click.option(
|
18
27
|
'--skip_dockerfile',
|
19
28
|
is_flag=True,
|
20
29
|
help=
|
21
30
|
'Flag to skip generating a dockerfile so that you can manually edit an already created dockerfile.',
|
22
31
|
)
|
23
|
-
def upload(model_path, skip_dockerfile):
|
32
|
+
def upload(model_path, stage, skip_dockerfile):
|
24
33
|
"""Upload a model to Clarifai."""
|
25
34
|
from clarifai.runners.models.model_builder import upload_model
|
26
|
-
upload_model(model_path,
|
35
|
+
upload_model(model_path, stage, skip_dockerfile)
|
27
36
|
|
28
37
|
|
29
38
|
@model.command()
|
@@ -38,16 +47,16 @@ def upload(model_path, skip_dockerfile):
|
|
38
47
|
required=False,
|
39
48
|
default=None,
|
40
49
|
help=
|
41
|
-
'Option path to write the checkpoints to. This will place them in {out_path}/ If not provided it will default to {model_path}/1/checkpoints where the config.yaml is read
|
50
|
+
'Option path to write the checkpoints to. This will place them in {out_path}/1/checkpoints If not provided it will default to {model_path}/1/checkpoints where the config.yaml is read.'
|
42
51
|
)
|
43
52
|
@click.option(
|
44
53
|
'--stage',
|
45
|
-
type=str,
|
46
54
|
required=False,
|
55
|
+
type=click.Choice(['runtime', 'build', 'upload'], case_sensitive=True),
|
47
56
|
default="build",
|
48
57
|
show_default=True,
|
49
58
|
help=
|
50
|
-
'The stage we are calling download checkpoints from. Typically this would be in the build stage which is the default. Other options include "runtime" to be used in load_model
|
59
|
+
'The stage we are calling download checkpoints from. Typically this would be in the build stage which is the default. Other options include "runtime" to be used in load_model or "upload" to be used during model upload. Set this stage to whatever you have in config.yaml to force downloading now.'
|
51
60
|
)
|
52
61
|
def download_checkpoints(model_path, out_path, stage):
|
53
62
|
"""Download checkpoints from external source to local model_path"""
|
@@ -162,6 +171,18 @@ def run_locally(model_path, port, mode, keep_env, keep_image):
|
|
162
171
|
click.echo(f"Failed to starts model server locally: {e}", err=True)
|
163
172
|
|
164
173
|
|
174
|
+
@model.command()
|
175
|
+
@click.option(
|
176
|
+
'--model_path',
|
177
|
+
type=click.Path(exists=True),
|
178
|
+
required=True,
|
179
|
+
help='Path to the model directory.')
|
180
|
+
def local_dev(model_path):
|
181
|
+
"""Run the model as a local dev runner to help debug your model connected to the API. You must set several envvars such as CLARIFAI_PAT, CLARIFAI_RUNNER_ID, CLARIFAI_NODEPOOL_ID, CLARIFAI_COMPUTE_CLUSTER_ID. """
|
182
|
+
from clarifai.runners.server import serve
|
183
|
+
serve(model_path)
|
184
|
+
|
185
|
+
|
165
186
|
@model.command()
|
166
187
|
@click.option(
|
167
188
|
'--config',
|
clarifai/client/model.py
CHANGED
@@ -26,7 +26,7 @@ from clarifai.constants.model import (CHUNK_SIZE, MAX_CHUNK_SIZE, MAX_MODEL_PRED
|
|
26
26
|
from clarifai.errors import UserError
|
27
27
|
from clarifai.urls.helper import ClarifaiUrlHelper
|
28
28
|
from clarifai.utils.logging import logger
|
29
|
-
from clarifai.utils.misc import BackoffIterator
|
29
|
+
from clarifai.utils.misc import BackoffIterator, status_is_retryable
|
30
30
|
from clarifai.utils.model_train import (find_and_replace_key, params_parser,
|
31
31
|
response_to_model_params, response_to_param_info,
|
32
32
|
response_to_templates)
|
@@ -438,7 +438,7 @@ class Model(Lister, BaseClient):
|
|
438
438
|
while True:
|
439
439
|
response = self._grpc_request(self.STUB.PostModelOutputs, request)
|
440
440
|
|
441
|
-
if response.status.code
|
441
|
+
if status_is_retryable(response.status.code) and \
|
442
442
|
time.time() - start_time < 60 * 10: # 10 minutes
|
443
443
|
self.logger.info(f"{self.id} model is still deploying, please wait...")
|
444
444
|
time.sleep(next(backoff_iterator))
|
@@ -721,7 +721,7 @@ class Model(Lister, BaseClient):
|
|
721
721
|
break
|
722
722
|
stream_response = self._grpc_request(self.STUB.GenerateModelOutputs, request)
|
723
723
|
for response in stream_response:
|
724
|
-
if response.status.code
|
724
|
+
if status_is_retryable(response.status.code) and \
|
725
725
|
time.time() - start_time < 60 * 10:
|
726
726
|
self.logger.info(f"{self.id} model is still deploying, please wait...")
|
727
727
|
time.sleep(next(backoff_iterator))
|
@@ -965,7 +965,7 @@ class Model(Lister, BaseClient):
|
|
965
965
|
break
|
966
966
|
stream_response = self._grpc_request(self.STUB.StreamModelOutputs, request)
|
967
967
|
for response in stream_response:
|
968
|
-
if response.status.code
|
968
|
+
if status_is_retryable(response.status.code) and \
|
969
969
|
time.time() - start_time < 60 * 10:
|
970
970
|
self.logger.info(f"{self.id} model is still deploying, please wait...")
|
971
971
|
time.sleep(next(backoff_iterator))
|
clarifai/client/workflow.py
CHANGED
@@ -15,7 +15,7 @@ from clarifai.constants.workflow import MAX_WORKFLOW_PREDICT_INPUTS
|
|
15
15
|
from clarifai.errors import UserError
|
16
16
|
from clarifai.urls.helper import ClarifaiUrlHelper
|
17
17
|
from clarifai.utils.logging import logger
|
18
|
-
from clarifai.utils.misc import BackoffIterator
|
18
|
+
from clarifai.utils.misc import BackoffIterator, status_is_retryable
|
19
19
|
from clarifai.workflows.export import Exporter
|
20
20
|
|
21
21
|
|
@@ -99,7 +99,7 @@ class Workflow(Lister, BaseClient):
|
|
99
99
|
while True:
|
100
100
|
response = self._grpc_request(self.STUB.PostWorkflowResults, request)
|
101
101
|
|
102
|
-
if response.status.code
|
102
|
+
if status_is_retryable(response.status.code) and \
|
103
103
|
time.time() - start_time < 60*10: # 10 minutes
|
104
104
|
self.logger.info(f"{self.id} Workflow is still deploying, please wait...")
|
105
105
|
time.sleep(next(backoff_iterator))
|
@@ -1,30 +1,11 @@
|
|
1
1
|
# syntax=docker/dockerfile:1.13-labs
|
2
|
-
|
3
|
-
# User specific requirements installed in the pip_packages
|
4
|
-
#############################
|
5
|
-
FROM --platform=$TARGETPLATFORM ${FINAL_IMAGE} as pip_packages
|
2
|
+
FROM --platform=$TARGETPLATFORM ${FINAL_IMAGE} as final
|
6
3
|
|
7
4
|
COPY --link requirements.txt /home/nonroot/requirements.txt
|
8
5
|
|
9
6
|
# Update clarifai package so we always have latest protocol to the API. Everything should land in /venv
|
10
7
|
RUN ["pip", "install", "--no-cache-dir", "-r", "/home/nonroot/requirements.txt"]
|
11
8
|
RUN ["pip", "show", "clarifai"]
|
12
|
-
#############################
|
13
|
-
|
14
|
-
#############################
|
15
|
-
# Downloader dependencies image
|
16
|
-
#############################
|
17
|
-
FROM --platform=$TARGETPLATFORM ${DOWNLOADER_IMAGE} as downloader
|
18
|
-
|
19
|
-
# make sure we have the latest clarifai package. This version is filled in by SDK.
|
20
|
-
RUN ["pip", "install", "clarifai==${CLARIFAI_VERSION}"]
|
21
|
-
#####
|
22
|
-
|
23
|
-
|
24
|
-
#############################
|
25
|
-
# Final runtime image
|
26
|
-
#############################
|
27
|
-
FROM --platform=$TARGETPLATFORM ${FINAL_IMAGE} as final
|
28
9
|
|
29
10
|
# Set the NUMBA cache dir to /tmp
|
30
11
|
# Set the TORCHINDUCTOR cache dir to /tmp
|
@@ -34,12 +15,6 @@ ENV NUMBA_CACHE_DIR=/tmp/numba_cache \
|
|
34
15
|
HOME=/tmp \
|
35
16
|
DEBIAN_FRONTEND=noninteractive
|
36
17
|
|
37
|
-
#####
|
38
|
-
# Copy the python requirements needed to download checkpoints
|
39
|
-
#####
|
40
|
-
COPY --link=true --from=downloader /venv /venv
|
41
|
-
#####
|
42
|
-
|
43
18
|
#####
|
44
19
|
# Copy the files needed to download
|
45
20
|
#####
|
@@ -49,13 +24,7 @@ COPY --chown=nonroot:nonroot downloader/unused.yaml /home/nonroot/main/1/checkpo
|
|
49
24
|
#####
|
50
25
|
# Download checkpoints if config.yaml has checkpoints.when = "build"
|
51
26
|
COPY --link=true config.yaml /home/nonroot/main/
|
52
|
-
RUN ["python", "-m", "clarifai.cli", "model", "download-checkpoints", "--model_path", "/home/nonroot/main", "--out_path", "/home/nonroot/main", "--stage", "build"]
|
53
|
-
#####
|
54
|
-
|
55
|
-
|
56
|
-
#####
|
57
|
-
# Copy the python packages from the builder stage.
|
58
|
-
COPY --link=true --from=pip_packages /venv /venv
|
27
|
+
RUN ["python", "-m", "clarifai.cli", "model", "download-checkpoints", "--model_path", "/home/nonroot/main", "--out_path", "/home/nonroot/main/1/checkpoints", "--stage", "build"]
|
59
28
|
#####
|
60
29
|
|
61
30
|
# Copy in the actual files like config.yaml, requirements.txt, and most importantly 1/model.py
|
@@ -18,7 +18,8 @@ from clarifai.client import BaseClient
|
|
18
18
|
from clarifai.runners.models.model_class import ModelClass
|
19
19
|
from clarifai.runners.utils.const import (
|
20
20
|
AVAILABLE_PYTHON_IMAGES, AVAILABLE_TORCH_IMAGES, CONCEPTS_REQUIRED_MODEL_TYPE,
|
21
|
-
DEFAULT_DOWNLOAD_CHECKPOINT_WHEN, DEFAULT_PYTHON_VERSION,
|
21
|
+
DEFAULT_DOWNLOAD_CHECKPOINT_WHEN, DEFAULT_PYTHON_VERSION, DEFAULT_RUNTIME_DOWNLOAD_PATH,
|
22
|
+
PYTHON_BASE_IMAGE, TORCH_BASE_IMAGE)
|
22
23
|
from clarifai.runners.utils.loader import HuggingFaceLoader
|
23
24
|
from clarifai.urls.helper import ClarifaiUrlHelper
|
24
25
|
from clarifai.utils.logging import logger
|
@@ -158,7 +159,6 @@ class ModelBuilder:
|
|
158
159
|
f"No 'when' specified in the config file for checkpoints, defaulting to download at {DEFAULT_DOWNLOAD_CHECKPOINT_WHEN}"
|
159
160
|
)
|
160
161
|
when = checkpoints.get("when", DEFAULT_DOWNLOAD_CHECKPOINT_WHEN)
|
161
|
-
# In the config.yaml we don't allow "any", that's only used in download_checkpoints to force download.
|
162
162
|
assert when in [
|
163
163
|
"upload",
|
164
164
|
"build",
|
@@ -365,10 +365,10 @@ class ModelBuilder:
|
|
365
365
|
if 'python_version' in build_info:
|
366
366
|
python_version = build_info['python_version']
|
367
367
|
if python_version not in AVAILABLE_PYTHON_IMAGES:
|
368
|
-
|
369
|
-
f"Python version {python_version} not supported, please use one of the following versions: {AVAILABLE_PYTHON_IMAGES}"
|
368
|
+
raise Exception(
|
369
|
+
f"Python version {python_version} not supported, please use one of the following versions: {AVAILABLE_PYTHON_IMAGES} in your config.yaml"
|
370
370
|
)
|
371
|
-
|
371
|
+
|
372
372
|
logger.info(
|
373
373
|
f"Using Python version {python_version} from the config file to build the Dockerfile")
|
374
374
|
else:
|
@@ -442,41 +442,51 @@ class ModelBuilder:
|
|
442
442
|
|
443
443
|
@property
|
444
444
|
def checkpoint_suffix(self):
|
445
|
-
return '1
|
445
|
+
return os.path.join('1', 'checkpoints')
|
446
446
|
|
447
447
|
@property
|
448
448
|
def tar_file(self):
|
449
449
|
return f"{self.folder}.tar.gz"
|
450
450
|
|
451
|
-
def
|
451
|
+
def default_runtime_checkpoint_path(self):
|
452
|
+
return DEFAULT_RUNTIME_DOWNLOAD_PATH
|
453
|
+
|
454
|
+
def download_checkpoints(self,
|
455
|
+
stage: str = DEFAULT_DOWNLOAD_CHECKPOINT_WHEN,
|
456
|
+
checkpoint_path_override: str = None):
|
452
457
|
"""
|
453
458
|
Downloads the checkpoints specified in the config file.
|
454
459
|
|
455
460
|
:param stage: The stage of the build process. This is used to determine when to download the
|
456
|
-
checkpoints. The stage can be one of ['build', 'upload', 'runtime'
|
457
|
-
|
458
|
-
:param checkpoint_path_override: The path to download the checkpoints to. If not provided, the
|
459
|
-
default path is used based on the folder ModelUploader was initialized with. The
|
460
|
-
|
461
|
+
checkpoints. The stage can be one of ['build', 'upload', 'runtime']. If you want to force
|
462
|
+
downloading now then set stage to match e when field of the checkpoints section of you config.yaml.
|
463
|
+
:param checkpoint_path_override: The path to download the checkpoints to (with 1/checkpoints added as suffix). If not provided, the
|
464
|
+
default path is used based on the folder ModelUploader was initialized with. The checkpoint_suffix will be appended to the path.
|
465
|
+
If stage is 'runtime' and checkpoint_path_override is None, the default runtime path will be used.
|
466
|
+
|
467
|
+
:return: The path to the downloaded checkpoints. Even if it doesn't download anything, it will return the default path.
|
461
468
|
"""
|
469
|
+
path = self.checkpoint_path # default checkpoint path.
|
462
470
|
if not self.config.get("checkpoints"):
|
463
471
|
logger.info("No checkpoints specified in the config file")
|
464
|
-
return
|
472
|
+
return path
|
465
473
|
|
466
474
|
loader_type, repo_id, hf_token, when = self._validate_config_checkpoints()
|
467
|
-
if stage not in ["build", "upload", "runtime"
|
475
|
+
if stage not in ["build", "upload", "runtime"]:
|
468
476
|
raise Exception("Invalid stage provided, must be one of ['build', 'upload', 'runtime']")
|
469
|
-
if when != stage
|
477
|
+
if when != stage:
|
470
478
|
logger.info(
|
471
479
|
f"Skipping downloading checkpoints for stage {stage} since config.yaml says to download them at stage {when}"
|
472
480
|
)
|
473
|
-
return
|
481
|
+
return path
|
474
482
|
|
475
483
|
success = True
|
476
484
|
if loader_type == "huggingface":
|
477
485
|
loader = HuggingFaceLoader(repo_id=repo_id, token=hf_token)
|
478
|
-
|
479
|
-
|
486
|
+
# for runtime default to /tmp path
|
487
|
+
if stage == "runtime" and checkpoint_path_override is None:
|
488
|
+
checkpoint_path_override = self.default_runtime_checkpoint_path()
|
489
|
+
path = checkpoint_path_override if checkpoint_path_override else self.checkpoint_path
|
480
490
|
success = loader.download_checkpoints(path)
|
481
491
|
|
482
492
|
if loader_type:
|
@@ -485,7 +495,7 @@ class ModelBuilder:
|
|
485
495
|
sys.exit(1)
|
486
496
|
else:
|
487
497
|
logger.info(f"Downloaded checkpoints for model {repo_id}")
|
488
|
-
return
|
498
|
+
return path
|
489
499
|
|
490
500
|
def _concepts_protos_from_concepts(self, concepts):
|
491
501
|
concept_protos = []
|
@@ -579,7 +589,7 @@ class ModelBuilder:
|
|
579
589
|
|
580
590
|
def filter_func(tarinfo):
|
581
591
|
name = tarinfo.name
|
582
|
-
exclude = [self.tar_file, "*~"]
|
592
|
+
exclude = [self.tar_file, "*~", "*.pyc", "*.pyo", "__pycache__"]
|
583
593
|
if when != "upload":
|
584
594
|
exclude.append(self.checkpoint_suffix)
|
585
595
|
return None if any(name.endswith(ex) for ex in exclude) else tarinfo
|
@@ -730,8 +740,8 @@ def upload_model(folder, stage, skip_dockerfile):
|
|
730
740
|
Uploads a model to Clarifai.
|
731
741
|
|
732
742
|
:param folder: The folder containing the model files.
|
733
|
-
:param stage: The stage
|
734
|
-
:param skip_dockerfile: If True,
|
743
|
+
:param stage: The stage we are calling download checkpoints from. Typically this would "upload" and will download checkpoints if config.yaml checkpoints section has when set to "upload". Other options include "runtime" to be used in load_model or "upload" to be used during model upload. Set this stage to whatever you have in config.yaml to force downloading now.
|
744
|
+
:param skip_dockerfile: If True, will not create a Dockerfile.
|
735
745
|
"""
|
736
746
|
builder = ModelBuilder(folder)
|
737
747
|
builder.download_checkpoints(stage=stage)
|
@@ -481,8 +481,11 @@ def main(model_path,
|
|
481
481
|
)
|
482
482
|
sys.exit(1)
|
483
483
|
manager = ModelRunLocally(model_path)
|
484
|
-
#
|
485
|
-
|
484
|
+
# get whatever stage is in config.yaml to force download now
|
485
|
+
# also always write to where upload/build wants to, not the /tmp folder that runtime stage uses
|
486
|
+
_, _, _, when = manager.builder._validate_config_checkpoints()
|
487
|
+
manager.builder.download_checkpoints(
|
488
|
+
stage=when, checkpoint_path_override=manager.builder.checkpoint_path)
|
486
489
|
if inside_container:
|
487
490
|
if not manager.is_docker_installed():
|
488
491
|
sys.exit(1)
|
clarifai/runners/server.py
CHANGED
@@ -68,30 +68,43 @@ def main():
|
|
68
68
|
|
69
69
|
parsed_args = parser.parse_args()
|
70
70
|
|
71
|
-
|
71
|
+
serve(parsed_args.model_path, parsed_args.port, parsed_args.pool_size,
|
72
|
+
parsed_args.max_queue_size, parsed_args.max_msg_length, parsed_args.enable_tls,
|
73
|
+
parsed_args.grpc)
|
74
|
+
|
75
|
+
|
76
|
+
def serve(model_path,
|
77
|
+
port=8000,
|
78
|
+
pool_size=32,
|
79
|
+
max_queue_size=10,
|
80
|
+
max_msg_length=1024 * 1024 * 1024,
|
81
|
+
enable_tls=False,
|
82
|
+
grpc=False):
|
83
|
+
|
84
|
+
builder = ModelBuilder(model_path, download_validation_only=True)
|
72
85
|
|
73
86
|
model = builder.create_model_instance()
|
74
87
|
|
75
88
|
# Setup the grpc server for local development.
|
76
|
-
if
|
89
|
+
if grpc:
|
77
90
|
|
78
91
|
# initialize the servicer with the runner so that it gets the predict(), generate(), stream() classes.
|
79
92
|
servicer = ModelServicer(model)
|
80
93
|
|
81
94
|
server = GRPCServer(
|
82
95
|
futures.ThreadPoolExecutor(
|
83
|
-
max_workers=
|
96
|
+
max_workers=pool_size,
|
84
97
|
thread_name_prefix="ServeCalls",
|
85
98
|
),
|
86
|
-
|
87
|
-
|
99
|
+
max_msg_length,
|
100
|
+
max_queue_size,
|
88
101
|
)
|
89
|
-
server.add_port_to_server('[::]:%s' %
|
102
|
+
server.add_port_to_server('[::]:%s' % port, enable_tls)
|
90
103
|
|
91
104
|
service_pb2_grpc.add_V2Servicer_to_server(servicer, server)
|
92
105
|
server.start()
|
93
|
-
logger.info("Started server on port %s",
|
94
|
-
logger.info(f"Access the model at http://localhost:{
|
106
|
+
logger.info("Started server on port %s", port)
|
107
|
+
logger.info(f"Access the model at http://localhost:{port}")
|
95
108
|
server.wait_for_termination()
|
96
109
|
else: # start the runner with the proper env variables and as a runner protocol.
|
97
110
|
|
clarifai/runners/utils/const.py
CHANGED
@@ -15,6 +15,9 @@ DEFAULT_PYTHON_VERSION = 3.12
|
|
15
15
|
# By default we download at runtime.
|
16
16
|
DEFAULT_DOWNLOAD_CHECKPOINT_WHEN = "runtime"
|
17
17
|
|
18
|
+
# Folder for downloading checkpoints at runtime.
|
19
|
+
DEFAULT_RUNTIME_DOWNLOAD_PATH = os.path.join(os.sep, "tmp", ".cache")
|
20
|
+
|
18
21
|
# List of available torch images
|
19
22
|
# Keep sorted by most recent cuda version.
|
20
23
|
AVAILABLE_TORCH_IMAGES = [
|
clarifai/utils/misc.py
CHANGED
@@ -3,8 +3,20 @@ import re
|
|
3
3
|
import uuid
|
4
4
|
from typing import Any, Dict, List
|
5
5
|
|
6
|
+
from clarifai_grpc.grpc.api.status import status_code_pb2
|
7
|
+
|
6
8
|
from clarifai.errors import UserError
|
7
9
|
|
10
|
+
RETRYABLE_CODES = [
|
11
|
+
status_code_pb2.MODEL_DEPLOYING, status_code_pb2.MODEL_LOADING,
|
12
|
+
status_code_pb2.MODEL_BUSY_PLEASE_RETRY
|
13
|
+
]
|
14
|
+
|
15
|
+
|
16
|
+
def status_is_retryable(status_code: int) -> bool:
|
17
|
+
"""Check if a status code is retryable."""
|
18
|
+
return status_code in RETRYABLE_CODES
|
19
|
+
|
8
20
|
|
9
21
|
class Chunker:
|
10
22
|
"""Split an input sequence into small chunks."""
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: clarifai
|
3
|
-
Version: 11.1.
|
3
|
+
Version: 11.1.5
|
4
4
|
Summary: Clarifai Python SDK
|
5
5
|
Home-page: https://github.com/Clarifai/clarifai-python
|
6
6
|
Author: Clarifai
|
@@ -20,20 +20,31 @@ Classifier: Operating System :: OS Independent
|
|
20
20
|
Requires-Python: >=3.8
|
21
21
|
Description-Content-Type: text/markdown
|
22
22
|
License-File: LICENSE
|
23
|
-
Requires-Dist: clarifai-grpc
|
24
|
-
Requires-Dist: clarifai-protocol
|
25
|
-
Requires-Dist: numpy
|
26
|
-
Requires-Dist: tqdm
|
27
|
-
Requires-Dist: rich
|
28
|
-
Requires-Dist: PyYAML
|
29
|
-
Requires-Dist: schema
|
30
|
-
Requires-Dist: Pillow
|
31
|
-
Requires-Dist: tabulate
|
32
|
-
Requires-Dist: fsspec
|
33
|
-
Requires-Dist: click
|
34
|
-
Requires-Dist: requests
|
23
|
+
Requires-Dist: clarifai-grpc>=11.1.3
|
24
|
+
Requires-Dist: clarifai-protocol>=0.0.16
|
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
35
|
Provides-Extra: all
|
36
|
-
Requires-Dist: pycocotools
|
36
|
+
Requires-Dist: pycocotools==2.0.6; extra == "all"
|
37
|
+
Dynamic: author
|
38
|
+
Dynamic: author-email
|
39
|
+
Dynamic: classifier
|
40
|
+
Dynamic: description
|
41
|
+
Dynamic: description-content-type
|
42
|
+
Dynamic: home-page
|
43
|
+
Dynamic: license
|
44
|
+
Dynamic: provides-extra
|
45
|
+
Dynamic: requires-dist
|
46
|
+
Dynamic: requires-python
|
47
|
+
Dynamic: summary
|
37
48
|
|
38
49
|
<h1 align="center">
|
39
50
|
<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,101 @@
|
|
1
|
+
clarifai/__init__.py,sha256=HNrgaOFUAWYh8yQEI1yC5ehweLTfZlW4BUMnm8AXQxw,23
|
2
|
+
clarifai/cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
clarifai/errors.py,sha256=RwzTajwds51wLD0MVlMC5kcpBnzRpreDLlazPSBZxrg,2605
|
4
|
+
clarifai/versions.py,sha256=jctnczzfGk_S3EnVqb2FjRKfSREkNmvNEwAAa_VoKiQ,222
|
5
|
+
clarifai/cli/README.md,sha256=YGApHfeUyu5P0Pdth-mqQCQftWHDxz6bugDlvDXDhOE,1942
|
6
|
+
clarifai/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
clarifai/cli/__main__.py,sha256=utJ2F40cl0jPHcYdTlGZRqpPfZ0CtVYB-8Ft0b2fWD4,72
|
8
|
+
clarifai/cli/base.py,sha256=eaUsp7S1e2dslC437Hjk7gUBQsng13ID3N3lkYotB2U,3403
|
9
|
+
clarifai/cli/compute_cluster.py,sha256=N2dNQNJEPg9nxsb8x2igEzYuGRzjn7l4kNttjFIxmhI,1827
|
10
|
+
clarifai/cli/deployment.py,sha256=sUEuz5-rtozMx8deVcJXLi6lHsP2jc8x3y2MpUAVfqY,2506
|
11
|
+
clarifai/cli/model.py,sha256=ShFUgYep4_CbOn6cK4FdOBiw2vpcqlPUf-LX_TZ0fYo,11265
|
12
|
+
clarifai/cli/nodepool.py,sha256=yihxS_rIFoBBKzRlqBX8Ab42iPpBMJrJFsk8saph6ms,3049
|
13
|
+
clarifai/client/__init__.py,sha256=xI1U0l5AZdRThvQAXCLsd9axxyFzXXJ22m8LHqVjQRU,662
|
14
|
+
clarifai/client/app.py,sha256=6pckYme1urV2YJjLIYfeZ-vH0Z5YSQa51jzIMcEfwug,38342
|
15
|
+
clarifai/client/base.py,sha256=hSHOqkXbSKyaRDeylMMnkhUHCAHhEqno4KI0CXGziBA,7536
|
16
|
+
clarifai/client/compute_cluster.py,sha256=EvW9TJjPvInUlggfg1A98sxoWH8_PY5rCVXZhsj6ac0,8705
|
17
|
+
clarifai/client/dataset.py,sha256=y3zKT_VhP1gyN3OO-b3cPeW21ZXyKbQ7ZJkEG06bsTU,32096
|
18
|
+
clarifai/client/deployment.py,sha256=w7Y6pA1rYG4KRK1SwusRZc2sQRXlG8wezuVdzSWpCo0,2586
|
19
|
+
clarifai/client/input.py,sha256=obMAHMDU1OwfXZ8KraOnGFlWzlW-3F7Ob_2lcOQMlhY,46339
|
20
|
+
clarifai/client/lister.py,sha256=03KGMvs5RVyYqxLsSrWhNc34I8kiF1Ph0NeyEwu7nMU,2082
|
21
|
+
clarifai/client/model.py,sha256=vkp8hrCMcKWzEVBN68RzSVTkN3qZn342wcaj_a6qu0M,88599
|
22
|
+
clarifai/client/module.py,sha256=FTkm8s9m-EaTKN7g9MnLhGJ9eETUfKG7aWZ3o1RshYs,4204
|
23
|
+
clarifai/client/nodepool.py,sha256=la3vTFrO4LX8zm2eQ5jqf2L0-kQ63Dano8FibadoZbk,10152
|
24
|
+
clarifai/client/search.py,sha256=GaPWN6JmTQGZaCHr6U1yv0zqR6wKFl7i9IVLg2ul1CI,14254
|
25
|
+
clarifai/client/user.py,sha256=WOv66ww2wx9isIge3V-xTHCkqC6akl2jEGAxzT_Ugfs,17642
|
26
|
+
clarifai/client/workflow.py,sha256=5VjZ2D8cudLznR8yhrwNawOmjxUhkJllZMKM6pn-4gs,12170
|
27
|
+
clarifai/client/auth/__init__.py,sha256=7EwR0NrozkAUwpUnCsqXvE_p0wqx_SelXlSpKShKJK0,136
|
28
|
+
clarifai/client/auth/helper.py,sha256=Ngw5IDkOWvnOz5YwViVk55z3mC52MyezLc0G3WxLqok,14643
|
29
|
+
clarifai/client/auth/register.py,sha256=2CMdBsoVLoTfjyksE6j7BM2tiEc73WKYvxnwDDgNn1k,536
|
30
|
+
clarifai/client/auth/stub.py,sha256=xy4-fV0W8keCgXld4eOVzFQEIKxOktNwtL5bLztReug,4940
|
31
|
+
clarifai/constants/base.py,sha256=ogmFSZYoF0YhGjHg5aiOc3MLqPr_poKAls6xaD0_C3U,89
|
32
|
+
clarifai/constants/dataset.py,sha256=vjK3IlgXu31HycuvjRSzEQSqhU6xfj5TIgo6IpyUWoc,609
|
33
|
+
clarifai/constants/input.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
|
34
|
+
clarifai/constants/model.py,sha256=Um1hLfMFlh5R_vtP3Z6P-o6zon-tdbLcKVIl4PucrV4,438
|
35
|
+
clarifai/constants/rag.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
|
36
|
+
clarifai/constants/search.py,sha256=yYEqTaFg-KdnpJE_Ytp-EPVHIIC395iNtZrpVlLIf4o,101
|
37
|
+
clarifai/constants/workflow.py,sha256=cECq1xdvf44MCdtK2AbkiuuwhyL-6OWZdQfYbsLKy_o,33
|
38
|
+
clarifai/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
|
+
clarifai/datasets/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
+
clarifai/datasets/export/inputs_annotations.py,sha256=3AtUBrMIjw8H3ehDsJFYcBFoAZ1QKQo1hXTMsHh8f20,10159
|
41
|
+
clarifai/datasets/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
|
+
clarifai/datasets/upload/base.py,sha256=UIc0ufyIBCrb83_sFpv21L8FshsX4nwsLYQkdlJfzD4,2357
|
43
|
+
clarifai/datasets/upload/features.py,sha256=GK69WvUYnks5G26Z5L5XSisBIZILLv7lYhS2y8BJCt0,2031
|
44
|
+
clarifai/datasets/upload/image.py,sha256=HlCsfEMu_C4GVecGSv52RUJ6laLW8H64Pfj_FQyX6qg,8580
|
45
|
+
clarifai/datasets/upload/multimodal.py,sha256=_NpNQak9KMn0NOiOr48MYnXL0GQZ1LXKhwdYF1HhrHs,2377
|
46
|
+
clarifai/datasets/upload/text.py,sha256=dpRMNz49EyKau0kwksEaNV6TLBUf5lSr7t5g3pG2byM,2298
|
47
|
+
clarifai/datasets/upload/utils.py,sha256=BerWhq40ZUN30z6VImlc93eZtT-1vI18AMgSOuNzJEM,9647
|
48
|
+
clarifai/datasets/upload/loaders/README.md,sha256=aNRutSCTzLp2ruIZx74ZkN5AxpzwKOxMa7OzabnKpwg,2980
|
49
|
+
clarifai/datasets/upload/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
+
clarifai/datasets/upload/loaders/coco_captions.py,sha256=YfuNXplbdoH8N9ph7RyN9MfJTtOcJBG4ie1ow6-mELA,1516
|
51
|
+
clarifai/datasets/upload/loaders/coco_detection.py,sha256=_I_yThw435KS9SH7zheBbJDK3zFgjTImBsES__ijjMk,2831
|
52
|
+
clarifai/datasets/upload/loaders/imagenet_classification.py,sha256=i7W5F6FTB3LwLmhPgjZHmbCbS3l4LmjsuBFKtjxl1pU,1962
|
53
|
+
clarifai/datasets/upload/loaders/xview_detection.py,sha256=hk8cZdYZimm4KOaZvBjYcC6ikURZMn51xmn7pXZT3HE,6052
|
54
|
+
clarifai/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
|
+
clarifai/models/api.py,sha256=d3FQQlG0mNDLrfEvchqaVcq4Tgb_TqryNnJtwp3c7sE,10961
|
56
|
+
clarifai/modules/README.md,sha256=mx8pVx6cPp-pP4LcFPT_nX3ngGmhygVK0WiXeD3cbIo,367
|
57
|
+
clarifai/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
|
+
clarifai/modules/css.py,sha256=kadCEunmyh5h2yf0-4aysE3ZcZ6qaQcxuAgDXS96yF8,2020
|
59
|
+
clarifai/modules/pages.py,sha256=iOoM3RNRMgXlV0qBqcdQofxoXo2RuRQh0h9c9BIS0-I,1383
|
60
|
+
clarifai/modules/style.css,sha256=j7FNPZVhLPj35vvBksAJ90RuX5sLuqzDR5iM2WIEhiA,6073
|
61
|
+
clarifai/rag/__init__.py,sha256=wu3PzAzo7uqgrEzuaC9lY_3gj1HFiR3GU3elZIKTT5g,40
|
62
|
+
clarifai/rag/rag.py,sha256=bqUWnfdf91OYMucEK0_rJXDwg0oKjz5c7eda-9CPXu8,12680
|
63
|
+
clarifai/rag/utils.py,sha256=yr1jAcbpws4vFGBqlAwPPE7v1DRba48g8gixLFw8OhQ,4070
|
64
|
+
clarifai/runners/__init__.py,sha256=FcTqyCvPn9lJFDsi2eGZ-YL8LgPhJmRAS8K5Wobk03s,411
|
65
|
+
clarifai/runners/server.py,sha256=ekrC9nl_hyMmYoK-PnHlSoll0A0xClJLSzj_5YKBwww,3923
|
66
|
+
clarifai/runners/dockerfile_template/Dockerfile.template,sha256=NW73cPGtk0QmZsv2ikAgP_G7VQQbrUQilHtD6PtiLFs,2328
|
67
|
+
clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
|
+
clarifai/runners/models/base_typed_model.py,sha256=0QCWxch8CcyJSKvE1D4PILd2RSnQZHTmx4DXlQQ6dpo,7856
|
69
|
+
clarifai/runners/models/model_builder.py,sha256=4aEAi0IkMVodhd7bhu35CwGyX7bjtI5sfV_j02ooW7M,32062
|
70
|
+
clarifai/runners/models/model_class.py,sha256=9JSPAr4U4K7xI0kSl-q0mHB06zknm2OR-8XIgBCto94,1611
|
71
|
+
clarifai/runners/models/model_run_locally.py,sha256=V770O-7yQQQlh80u48NZTEHkX3gj1HyclHbu1tjvaQ8,20864
|
72
|
+
clarifai/runners/models/model_runner.py,sha256=PyxwK-33hLlhkD07tTXkjWZ_iNlZHl9_8AZ2W7WfExI,6097
|
73
|
+
clarifai/runners/models/model_servicer.py,sha256=jtQmtGeQlvQ5ttMvVw7CMnNzq-rLkTaxR2IWF9SnHwk,2808
|
74
|
+
clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
75
|
+
clarifai/runners/utils/const.py,sha256=bwj-Pcw558-pasdIFbNhnkn-9oiCdojYH1fNTTUG2gU,1048
|
76
|
+
clarifai/runners/utils/data_handler.py,sha256=sxy9zlAgI6ETuxCQhUgEXAn2GCsaW1GxpK6GTaMne0g,6966
|
77
|
+
clarifai/runners/utils/data_utils.py,sha256=R1iQ82TuQ9JwxCJk8yEB1Lyb0BYVhVbWJI9YDi1zGOs,318
|
78
|
+
clarifai/runners/utils/loader.py,sha256=SgNHMwRmCCymFQm8aDp73NmIUHhM-N60CBlTKbPzmVc,7470
|
79
|
+
clarifai/runners/utils/url_fetcher.py,sha256=v_8JOWmkyFAzsBulsieKX7Nfjy1Yg7wGSZeqfEvw2cg,1640
|
80
|
+
clarifai/schema/search.py,sha256=JjTi8ammJgZZ2OGl4K6tIA4zEJ1Fr2ASZARXavI1j5c,2448
|
81
|
+
clarifai/urls/helper.py,sha256=tjoMGGHuWX68DUB0pk4MEjrmFsClUAQj2jmVEM_Sy78,4751
|
82
|
+
clarifai/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
|
+
clarifai/utils/cli.py,sha256=CdcLsF00KdfA-BgMIbO-u88gUF9Ts1n0TDDZS-oImp8,1949
|
84
|
+
clarifai/utils/constants.py,sha256=MG_iHnSwNEyUZOpvsrTicNwaT4CIjmlK_Ixk_qqEX8g,142
|
85
|
+
clarifai/utils/logging.py,sha256=CVy8OsLrlbg-b8qe88kb1yO_9wi9wRYfF-QkIaN9xE8,11936
|
86
|
+
clarifai/utils/misc.py,sha256=4aNOHPTNdX-WGxuNab8qKePoCMUnscd-aN_dQEIVSWk,2933
|
87
|
+
clarifai/utils/model_train.py,sha256=Mndqy5GNu7kjQHjDyNVyamL0hQFLGSHcWhOuPyOvr1w,8005
|
88
|
+
clarifai/utils/evaluation/__init__.py,sha256=PYkurUrXrGevByj7RFb6CoU1iC7fllyQSfnnlo9WnY8,69
|
89
|
+
clarifai/utils/evaluation/helpers.py,sha256=aZeHLI7oSmU5YDWQp5GdkYW5qbHx37nV9xwunKTAwWM,18549
|
90
|
+
clarifai/utils/evaluation/main.py,sha256=sQAuMk0lPclXCYvy_rS7rYteo2xh9Ju13VNvbyGt_VM,15779
|
91
|
+
clarifai/utils/evaluation/testset_annotation_parser.py,sha256=iZfLw6oR1qgJ3MHMbOZXcGBLu7btSDn0VqdiAzpIm4g,5002
|
92
|
+
clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
|
+
clarifai/workflows/export.py,sha256=vICRhIreqDSShxLKjHNM2JwzKsf1B4fdXB0ciMcA70k,1945
|
94
|
+
clarifai/workflows/utils.py,sha256=nGeB_yjVgUO9kOeKTg4OBBaBz-AwXI3m-huSVj-9W18,1924
|
95
|
+
clarifai/workflows/validate.py,sha256=yJq03MaJqi5AK3alKGJJBR89xmmjAQ31sVufJUiOqY8,2556
|
96
|
+
clarifai-11.1.5.dist-info/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
|
97
|
+
clarifai-11.1.5.dist-info/METADATA,sha256=g9oUOCn9hrX_ohdYCXiDGFZdJxJW-kmPm4PV4crMW7s,22419
|
98
|
+
clarifai-11.1.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
99
|
+
clarifai-11.1.5.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
|
100
|
+
clarifai-11.1.5.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
|
101
|
+
clarifai-11.1.5.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
clarifai/cli/__main__.py~
DELETED
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
|