Models¶
Classes and methods for working with Gretel Models
-
class
gretel_client.projects.models.
Model
(project: None, model_config: Union[str, pathlib.Path, dict, None] = None, model_id: Optional[str] = None)¶ Represents a Gretel Model. This class can be used to train new models or run and lookup existing ones.
-
property
artifact_types
¶ Returns a list of artifact types associated with the model.
-
property
billing_details
¶ Get billing details for the current job.
-
cancel
()¶ Cancels the active job.
-
property
container_image
¶ Return the container image for the job.
-
create_record_handler_obj
(data_source: Union[str, gretel_client.cli.utils.parser_utils._DataFrameT, None] = None, params: Optional[dict] = None, ref_data: Union[str, Dict[str, str], List[str], Tuple[str], gretel_client.cli.utils.parser_utils._DataFrameT, List[gretel_client.cli.utils.parser_utils._DataFrameT], None] = None) → gretel_client.projects.records.RecordHandler¶ Creates a new record handler for the model.
- Parameters
data_source – A data source to upload to the record handler.
params – Any custom params for the record handler. These params are specific to the upstream model.
-
property
data_source
¶ Retrieves the configured data source from the model config.
If the model config has a local data_source we’ll try and resolve that path relative to the location of the model config.
-
delete
() → Optional[dict]¶ Deletes the remote model.
-
download_artifacts
(target_dir: Union[str, pathlib.Path])¶ Given a target directory, either as a string or a Path object, attempt to enumerate and download all artifacts associated with this Job
- Parameters
target_dir – The target directory to store artifacts in. If the directory does not exist, it will be created for you.
-
property
errors
¶ Return any errors associated with the model.
-
property
external_data_source
¶ Returns
True
if the data source is external to Gretel Cloud. If the data source is a Gretel Artifact, returnsFalse
.
-
property
external_ref_data
¶ Returns
True
if the data refs are external to Gretel Cloud. If the data refs are Gretel Artifacts, returnsFalse
.
-
get_artifact_link
(artifact_key: str) → str¶ Retrieves a signed S3 link that will download the specified artifact type.
- Parameters
artifact_type – Artifact type to download.
-
get_artifacts
() → Iterator[Tuple[str, str]]¶ List artifact links for all known artifact types.
-
get_record_handlers
() → Iterator[gretel_client.projects.records.RecordHandler]¶ Returns a list of record handlers associated with the model.
-
get_report_summary
(report_path: Optional[str] = None) → Optional[dict]¶ Return a summary of the job results :param report_path: If a report_path is passed, that report
will be used for the summary. If no report path is passed, the function will check for a cloud report artifact.
-
property
instance_type
¶ Returns CPU or GPU based on the model being trained.
-
property
is_cloud_model
¶ Returns
True
if the model was created to run in Gretel’s Cloud.False
otherwise.
-
property
logs
¶ Returns run logs for the job.
-
property
model_config
¶ Returns the model config used to create the model.
-
property
model_type
¶ Returns the type of model. Eg synthetics, transforms or classify.
-
property
name
¶ Gets the name of the model. If no name is specified, a random name will be selected when the model is submitted to the backend.
- Getter
Returns the model name.
- Setter
Sets the model name.
-
peek_report
(report_path: Optional[str] = None) → Optional[dict]¶ Return a summary of the job results.
- Parameters
report_path – If a report_path is passed, that report will be used for the summary. If no report path is passed, the function will check for a cloud based artifact.
-
poll_logs_status
(wait: int = - 1, callback: Optional[Callable] = None) → Iterator[gretel_client.projects.jobs.LogStatus]¶ Returns an iterator that may be used to tail the logs of a running Model.
- Parameters
wait – The time in seconds to wait before closing the iterator. If wait is -1 (WAIT_UNTIL_DONE), the iterator will run until the model has reached a “completed” or “error” state.
callback – This function will be executed on every polling loop. A callback is useful for checking some external state that is working on a Job.
-
property
print_obj
¶ Returns a printable object representation of the job.
-
property
ref_data
¶ Retrieves configured ref data from the model config. If there are local ref data sources we will try and resolve that path relative to the location of the model config.
-
refresh
()¶ Update internal state of the job by making an API call to Gretel Cloud.
-
property
runner_mode
¶ Returns the runner_mode of the job. May be one of
manual
orcloud
.
-
property
status
¶ The status of the job. Is one of
gretel_client.projects.jobs.Status
.
-
submit_cloud
() → gretel_client.projects.jobs.Job¶ Submit this model to be scheduled for runing in Gretel Cloud.
- Returns
The response from the Gretel API.
-
submit_manual
() → gretel_client.projects.jobs.Job¶ Submit this Job to the Gretel Cloud API, which will create the job metadata but no runner will be started. The
Model
instance can now be passed into a dedicated runner.- Returns
The response from the Gretel API.
-
property
traceback
¶ Returns the traceback associated with any job errors.
-
upload_data_source
(_validate: bool = True) → Optional[str]¶ Resolves and uploads the data source specified in the model config.
If the data source is already a Gretel artifact, the artifact will not be uploaded.
- Returns
A Gretel artifact key.
-
upload_ref_data
(_validate: bool = True) → gretel_client.cli.utils.parser_utils.RefData¶ Resolves and uploads ref data sources specificed in the model config.
If the ref data are already Gretel artifacts, we’ll return the ref data as-is.
- Returns
A
RefData
instance that contains the new Gretel artifact values.
-
validate_data_source
()¶ Tests that the attached data source is a valid CSV or JSON file. If the data source is a Gretel cloud artifact data validation will be skipped.
- Raises
DataSourceError – file can’t be opened.
DataValidationError – the data isn’t valid CSV or JSON.
-
property
-
gretel_client.projects.models.
read_model_config
(model_config: Union[str, pathlib.Path, dict], *, base_url: str = 'https://raw.githubusercontent.com/gretelai/gretel-blueprints/main/config_templates/gretel') → dict¶ Load a Gretel configuration into a dictionary.
- Parameters
model_config – This argument may be a string to a file on disk or a Gretel configuration template string such as “synthetics/default”. First, this function will treat string input as a location on disk and attempt to read the file and parse it as YAML or JSON. If this is successful, a dict of the config is returned. If the provided model_config str is not a file on disk, the function will attempt to resolve the config as a shortcut-path from URL provided by base_url.
base_url – A base HTTP URL that should be use to construct a fully qualified path to a configuration template. This URL will be used to resolve a config shortcut string to the fully qualified URL.