Skip to content

datarobot_genai.drmcputils.deployment

deployment

Pure helpers for DataRobot deployment prediction URLs and auth headers.

get_deployment_base_url

get_deployment_base_url(deployment: Deployment, datarobot_endpoint: str) -> str

Compute the prediction base URL for a deployment.

Parameters:

Name Type Description Default
deployment Deployment

The DataRobot deployment object.

required
datarobot_endpoint str

The DataRobot API endpoint (e.g. https://app.datarobot.com).

required
Returns
Deployment-scoped prediction URL.
Raises
ValueError: If prediction server cannot be determined.
Source code in datarobot_genai/drmcputils/deployment.py
def get_deployment_base_url(deployment: dr.Deployment, datarobot_endpoint: str) -> str:
    """Compute the prediction base URL for a deployment.

    Args:
        deployment: The DataRobot deployment object.
        datarobot_endpoint: The DataRobot API endpoint (e.g. https://app.datarobot.com).

    Returns
    -------
        Deployment-scoped prediction URL.

    Raises
    ------
        ValueError: If prediction server cannot be determined.
    """
    if _is_serverless_deployment(deployment):
        base_url = datarobot_endpoint
    elif "datarobot-nginx" in datarobot_endpoint:
        # On-prem / ST SaaS environments
        base_url = "http://datarobot-prediction-server:80/predApi/v1.0"
    else:
        # Regular prediction server
        pred_server = deployment.default_prediction_server
        if not pred_server:
            raise ValueError(f"Deployment {deployment.id} has no default prediction server")
        url = pred_server["url"]
        if not url:
            raise ValueError(f"Deployment {deployment.id} prediction server has no URL")
        base_url = f"{url}/predApi/v1.0"

    return urljoin(base_url.rstrip("/") + "/", f"deployments/{deployment.id}/")

build_deployment_auth_headers

build_deployment_auth_headers(deployment: Deployment, token: str) -> dict[str, str]

Build authentication headers for a deployment.

Parameters:

Name Type Description Default
deployment Deployment

The DataRobot deployment object.

required
token str

The bearer token to use for authentication.

required
Returns
Dictionary of authentication headers.
Source code in datarobot_genai/drmcputils/deployment.py
def build_deployment_auth_headers(deployment: dr.Deployment, token: str) -> dict[str, str]:
    """Build authentication headers for a deployment.

    Args:
        deployment: The DataRobot deployment object.
        token: The bearer token to use for authentication.

    Returns
    -------
        Dictionary of authentication headers.
    """
    headers = {"Authorization": f"Bearer {token}"}
    if not _is_serverless_deployment(deployment):
        pred_server = deployment.default_prediction_server
        if pred_server:
            dr_key = pred_server.get("datarobot-key")
            if dr_key:
                headers["datarobot-key"] = dr_key
    return headers