Exemple #1
0
aws_ecr_username = aws_ecr_credentials[0]
aws_ecr_password = aws_ecr_credentials[1]

# Connect to domino; be sure to have the DOMINO_API_HOST,
#  DOMINO_PROJECT_OWNER, DOMINO_PROJECT_NAME, and DOMINO_USER_API_KEY
#  environment variables set
#  (runs inside a Domino executor automatically set these for you)
domino = Domino(project = "{0}/{1}".format(
                     os.environ['DOMINO_PROJECT_OWNER'],
                     os.environ['DOMINO_PROJECT_NAME']
                ),
                api_key = os.environ['DOMINO_USER_API_KEY'],
                host = os.environ['DOMINO_API_HOST'])

# Grab a list of all models in the project
project_models = domino.models_list()

# We'll get the first model, assuming there is at least one model in the
#  project
model_id = project_models["data"][0]["id"]

# Get information about every model version for this model and desc sort these
#  by the model number
model_versions = sorted(
                     domino.model_versions_get(model_id)["data"],
                     key = lambda ver: ver["metadata"]["number"],
                     reverse = True
                 )

# Let's get the latest version of this model
model_version_id = model_versions[0]["_id"]
domino = Domino("marks/quick-start-fork",
                api_key=os.environ['DOMINO_USER_API_KEY'],
                host=os.environ['DOMINO_API_HOST'])

# From all the environments, choose the first globally visible one
all_available_environments = domino.environments_list()
global_environments = list(
    filter(lambda x: x.get('visibility') == 'Global',
           all_available_environments['data']))
print("This Domino deployment has \
      {} gloabl environments".format(len(global_environments)))
chosen_environment_id = global_environments[0].get('id')
print("Environment chosen is {}".format(chosen_environment_id))

# From all the models, choose one
all_available_models = domino.models_list()
print("This project \
      has {} models".format(len(all_available_models.get('data', []))))

# Publish a brand new model
published_model = domino.model_publish(file="main.R",
                                       function="api_endpoint",
                                       environment_id=chosen_environment_id,
                                       name="Model published from API!",
                                       description="v1")
published_model_id = published_model.get('data', {}).get('_id')
print("Model {} published, details below:".format(published_model_id))
print(published_model)


# Get model versions
domino = Domino("marks/quick-start-fork",
                api_key=os.environ['DOMINO_USER_API_KEY'],
                host=os.environ['DOMINO_API_HOST'])

# From all the environments, choose the first globally visible one
all_available_environments = domino.environments_list()
global_environments = list(filter(
    lambda x: x.get('visibility') == 'Global',
    all_available_environments['data']))
print("This Domino deployment has \
      {} gloabl environments".format(len(global_environments)))
chosen_environment_id = global_environments[0].get('id')
print("Environment chosen is {}".format(chosen_environment_id))

# From all the models, choose one
all_available_models = domino.models_list()
print("This project \
      has {} models".format(len(all_available_models.get('data', []))))

# Publish a brand new model
published_model = domino.model_publish(file="main.R", function="api_endpoint",
                                       environment_id=chosen_environment_id,
                                       name="Model published from API!",
                                       description="v1")
published_model_id = published_model.get('data', {}).get('_id')
print("Model {} published, details below:".format(published_model_id))
print(published_model)

# Get model versions
def describe_model_versions(model_id):
    model_versions = domino.model_versions_get(model_id)