Deploy, Install, and Connect
The NVIDIA Kumo Relational Client is a Python SDK for sending relational prediction requests to the Kumo Relational NVIDIA Inference Microservice (NIM), a containerized service that runs the predictions. Before you install the SDK, obtain a Kumo Relational NIM endpoint that your application or notebook can reach. The SDK connects to an existing deployment; it does not deploy or run the NIM itself.
1. Choose a NIM endpoint
Self-hosted container
Find the Kumo Relational NIM in the NVIDIA NGC Catalog and follow its deployment instructions on a supported NVIDIA GPU host. Use this option when the prediction context that the engine constructs from your data must remain in your environment.
After deployment, record the NIM base URL, such as http://localhost:8000 for a local container.
For a remote deployment, use a hostname that the client application or notebook can reach.
If an authenticating gateway fronts the NIM, obtain the gateway API key.
NVIDIA API Catalog
NVIDIA API Catalog endpoints use Authorization: Bearer authentication.
RelationalClient 1.0 sends its api_key through the X-API-Key header, so it cannot authenticate directly to those endpoints.
To call the hosted Kumo Relational endpoint, follow the bearer-authenticated examples in NIM REST API.
Use RelationalClient with a self-hosted NIM or a compatible gateway instead.
2. Install the SDK
Client requirements
- CPython 3.10, 3.11, 3.12, or 3.13
- The endpoint URL of a running Kumo Relational NIM
- Network access to the NIM endpoint
- An API key for an authenticating gateway, when required
The installation commands below install the required Python runtime dependencies automatically. You do not need to install the dependencies individually.
The base kumo-relational-client package and its data connectors are pure Python.
The [relational] extra adds the Kumo Relational engine, which constructs graphs, parses Predictive Query Language (PQL) queries, and samples the related records needed for prediction.
Its published wheels target Linux x86-64, use the manylinux_2_28 platform tag, and support CPython 3.10 through 3.13.
Because no engine source distribution is published, you cannot install the [relational] extra directly on macOS.
For a standard Kumo Relational workflow on supported Linux x86-64, install the SDK with the relational engine:
Choose connectors and optional extras
If your workflow reads directly from a database or object store, add the connector for that data source. If you only need the HTTP client or local DataFrame and file reads, install the client without the relational engine.
The base-only installation provides the HTTP client and local DataFrame or file reads without installing the native relational engine.
Install the [relational] extra before constructing graphs, parsing PQL, or running Kumo Relational predictions.
Connector extras can be installed independently when a workflow only needs to read source data.
The all extra includes relational, sqlite, duckdb, snowflake, databricks, databricks-serving, and s3.
It does not include explain, relbench, or snowflake-serving; install those extras explicitly when needed.
Data-source extras configure access to stored data, while databricks-serving and snowflake-serving configure managed model-serving clients.
kumo-relational-client, kumo-connectors, and kumo-relational-engine are versioned and released together.
Keep their versions aligned when managing packages explicitly.
3. Connect to the NIM
Create one RelationalClient for each NIM endpoint.
The client owns its HTTP connection and should be closed after use.
A closed client cannot be reused; construct a new client for later requests.
The examples in this documentation use with RelationalClient(...) so that each snippet is self-contained and closes its connection automatically.
In an application or notebook that makes multiple requests, create one client, reuse it, and call client.close() when the workflow is complete.
The readiness call should complete without a connection or authentication error.
models() returns ['kumo-relational'].
If the readiness check fails, verify the endpoint URL, network route, TLS certificate, and gateway credentials before building a graph.
If an authenticating gateway fronts the NIM and accepts X-API-Key, pass its key by using the api_key parameter:
The SDK refuses to send an API key to a non-local endpoint that uses plaintext HTTP. Use HTTPS for authenticated remote deployments. API keys are removed when a redirect crosses origins.
You can also configure connection behavior with the verify_ssl, timeout, and max_retries parameters.
RelationalClient does not read its URL or API key from the environment.
Pass both values explicitly, or have your application read its environment configuration before constructing the client:
Configure the engine and explanation summaries
The following environment variables configure the underlying engine and optional explanation summary.
They do not configure RelationalClient itself.
Reuse a client across multiple requests
To avoid opening a new HTTP connection for every request, create one client and close it after the final request:
Construct a new client instead of reusing a closed one.
RelationalClient(timeout=..., max_retries=...) applies the timeout and transport-level retry policy to both the main RelationalClient transport and Kumo Relational transport.
A response body larger than 64 MiB is rejected.
4. Inspect client capabilities
Inspect the capability metadata exposed by the client-side Kumo Relational adapter, the part of the SDK that provides model-specific operations:
The client supports one model.
models() returns ['kumo-relational'], and capabilities('kumo-relational') describes the client-side adapter.
Neither method queries the NIM’s /v1/models endpoint.