def get_latest_models()

in modules/pipeline/inference_pipeline_run.py [0:0]


def get_latest_models():
    client = boto3.client("sagemaker")

    # Get the preprocessing model
    response = client.list_processing_jobs(
        NameContains="scikit-learn-sm-preprocessing",
        StatusEquals="Completed",
        SortBy="CreationTime",
        SortOrder="Descending",
    )
    processing_job_name = response["ProcessingJobSummaries"][0]["ProcessingJobName"]
    proc_model_s3 = (
        client.describe_processing_job(ProcessingJobName=processing_job_name)[
            "ProcessingOutputConfig"
        ]["Outputs"][2]["S3Output"]["S3Uri"]
        + "/proc_model.tar.gz"
    )
    # Get the trained sklearn model
    response = client.list_training_jobs(
        NameContains="scikit-learn-training",
        StatusEquals="Completed",
        SortBy="CreationTime",
        SortOrder="Descending",
    )
    training_job_name = response["TrainingJobSummaries"][0]["TrainingJobName"]
    model_s3 = client.describe_training_job(TrainingJobName=training_job_name)[
        "ModelArtifacts"
    ]["S3ModelArtifacts"]
    return proc_model_s3, model_s3