def setup_pretrained_endpoints()

in src/graph_notebook/notebooks/03-Neptune-ML/03-Sample-Applications/04-Telco-Networks/neptune_ml_utils.py [0:0]


    def setup_pretrained_endpoints(self, s3_bucket_uri: str,
                                   setup_node_classification: bool, setup_node_regression: bool,
                                   setup_link_prediction: bool, setup_edge_classification: bool,
                                   setup_edge_regression: bool):
        print('Beginning endpoint creation', end='\r')
        if setup_node_classification:
            # copy model
            self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/node-classification/model.tar.gz',
                           self.PRETRAINED_MODEL['node_classification'])
            # create model
            classification_output = self.__create_model(
                'classifi', f'{s3_bucket_uri}/pretrained-models/node-classification/model.tar.gz')
        if setup_node_regression:
            # copy model
            self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/node-regression/model.tar.gz',
                           self.PRETRAINED_MODEL['node_regression'])
            # create model
            regression_output = self.__create_model(
                'regressi', f'{s3_bucket_uri}/pretrained-models/node-regression/model.tar.gz')
        if setup_link_prediction:
            # copy model
            self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/link-prediction/model.tar.gz',
                           self.PRETRAINED_MODEL['link_prediction'])
            # create model
            prediction_output = self.__create_model(
                'linkpred', f'{s3_bucket_uri}/pretrained-models/link-prediction/model.tar.gz')
        if setup_edge_classification:
            # copy model
            self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/edge-classification/model.tar.gz',
                           self.PRETRAINED_MODEL['edge_classification'])
            # create model
            edgeclass_output = self.__create_model(
                'edgeclass', f'{s3_bucket_uri}/pretrained-models/edge-classification/model.tar.gz')
        if setup_edge_regression:
            # copy model
            self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/edge-regression/model.tar.gz',
                           self.PRETRAINED_MODEL['edge_regression'])
            # create model
            edgereg_output = self.__create_model(
                'edgereg', f'{s3_bucket_uri}/pretrained-models/edge-regression/model.tar.gz')

        sleep(UPDATE_DELAY_SECONDS)
        classification_running = setup_node_classification
        regression_running = setup_node_regression
        prediction_running = setup_link_prediction
        edgeclass_running = setup_edge_classification
        edgereg_running = setup_edge_regression
        classification_endpoint_name = ""
        regression_endpoint_name = ""
        prediction_endpoint_name = ""
        edge_classification_endpoint_name = ""
        edge_regression_endpoint_name = ""
        sucessful = False
        sm = boto3.client("sagemaker")
        while classification_running or regression_running or prediction_running or edgeclass_running or edgereg_running:
            if classification_running:
                response = sm.describe_endpoint(
                    EndpointName=classification_output
                )
                if response['EndpointStatus'] in ['InService', 'Failed']:
                    if response['EndpointStatus'] == 'InService':
                        classification_endpoint_name = response
                    classification_running = False
            if regression_running:
                response = sm.describe_endpoint(
                    EndpointName=regression_output
                )
                if response['EndpointStatus'] in ['InService', 'Failed']:
                    if response['EndpointStatus'] == 'InService':
                        regression_endpoint_name = response
                    regression_running = False
            if prediction_running:
                response = sm.describe_endpoint(
                    EndpointName=prediction_output
                )
                if response['EndpointStatus'] in ['InService', 'Failed']:
                    if response['EndpointStatus'] == 'InService':
                        prediction_endpoint_name = response
                    prediction_running = False
            if edgeclass_running:
                response = sm.describe_endpoint(
                    EndpointName=edgeclass_output
                )
                if response['EndpointStatus'] in ['InService', 'Failed']:
                    if response['EndpointStatus'] == 'InService':
                        edge_classification_endpoint_name = response
                    edgeclass_running = False
            if edgereg_running:
                response = sm.describe_endpoint(
                    EndpointName=edgereg_output
                )
                if response['EndpointStatus'] in ['InService', 'Failed']:
                    if response['EndpointStatus'] == 'InService':
                        edge_regression_endpoint_name = response
                    edgereg_running = False

            print(
                f'Checking Endpoint Creation Statuses at {datetime.now().strftime("%H:%M:%S")}', end='\r')
            sleep(UPDATE_DELAY_SECONDS)

        print("")
        if classification_endpoint_name:
            print(
                f"Node Classification Endpoint Name: {classification_endpoint_name['EndpointName']}")
        if regression_endpoint_name:
            print(
                f"Node Regression Endpoint Name: {regression_endpoint_name['EndpointName']}")
        if prediction_endpoint_name:
            print(
                f"Link Prediction Endpoint Name: {prediction_endpoint_name['EndpointName']}")
        if edge_classification_endpoint_name:
            print(
                f"Edge Classification Endpoint Name: {edge_classification_endpoint_name['EndpointName']}")
        if edge_regression_endpoint_name:
            print(
                f"Edge Regression Endpoint Name: {edge_regression_endpoint_name['EndpointName']}")
        print('Endpoint creation complete', end='\r')
        return {
            'node_classification_endpoint_name': classification_endpoint_name,
            'node_regression_endpoint_name': regression_endpoint_name,
            'prediction_endpoint_name': prediction_endpoint_name,
            'edge_classification_endpoint_name': edge_classification_endpoint_name,
            'edge_regression_endpoint_name': edge_regression_endpoint_name
        }