Configurable endpoints
Endpoints provide a static URL that can be pointed to any deployment in the deployment environment of the endpoint. This page describes how to configure endpoints using the H2O MLOps Python client.
- Connect to H2O MLOps.
import h2o_mlops
import httpx
mlops = h2o_mlops.Client()
- First, we'll grab some deployments for demonstration purposes.
project = mlops.projects.get("fe96aa18-6aa5-4f26-80f7-a682f1741f84")
environment = project.environments.list(name="DEV")[0]
deployment_one = environment.deployments.list()[0]
deployment_two = environment.deployments.list()[1]
Create an endpoint
Note: Endpoint must be in the same environment as the deployment.
endpoint = environment.endpoints.create(
name="Demo Endpoint",
description="Endpoint for giving demos.",
path="static/path",
target_deployment=deployment_one
)
List endpoints
environment.endpoints.list()
Output:
| name | path | uid
----+---------------+-------------+--------------------------------------
0 | Demo Endpoint | static/path | fb185ef2-f179-419b-914c-caec166aa6d7
Get endpoint
endpoint = environment.endpoints.get(endpoint.uid)
Use an endpoint
Once we have an endpoint, it provides a static URL that can be pointed to any deployment in the deployment environment of the endpoint.
Note: Endpoints take a little time to become ready to receive HTTP requests.
static_url = f"https://model.cloud-qa.h2o.ai/{endpoint.path}/model"
static_url
Output:
'https://model.cloud-qa.h2o.ai/static/path/model'
Any of the model methods available from the deployment (capabilities
, schema
, id
, sample_request
, score
) are available at the endpoint.
Input:
httpx.get(f"{static_url}/capabilities").json()
Output:
['SCORE_PREDICTION_INTERVAL', 'SCORE']
Input:
sample_request = httpx.get(f"{static_url}/sample_request").json()
httpx.post(
url=f"{static_url}/score",
json=sample_request
).json()
Output:
{'fields': ['C11.0', 'C11.1'],
'id': 'c19bdd94-e673-4094-bd68-da5d077dc096',
'score': [['0.49786656666743145', '0.5021334333325685']]}
Input:
httpx.get(f"{static_url}/id").text
Output:
'c19bdd94-e673-4094-bd68-da5d077dc096'
Update the endpoint
Note: Only display_name
, description
, and target
fields may be updated. Setting the target field to an empty string disables the endpoint.
Input:
endpoint.update(target_deployment=deployment_two)
sample_request = httpx.get(f"{static_url}/sample_request").json()
httpx.post(
url=f"{static_url}/score",
json=sample_request
).json()
Output:
{'fields': ['C11.0', 'C11.1'],
'id': 'c19bdd94-e673-4094-bd68-da5d077dc096',
'score': [['0.49786656666743145', '0.5021334333325685']]}
Input:
endpoint.target_deployment.uid != deployment_one.uid
Output:
True
Delete an endpoint
endpoint.delete()
- Submit and view feedback for this page
- Send feedback about H2O MLOps to cloud-feedback@h2o.ai