nvidia for client-side text embedding with NVIDIA-hosted
and self-hosted NIM endpoints. Documents use input_type="passage"; searches use
input_type="query". This provider supports text only, with floating-point output.
Null and empty text values get a null vector without a request; pass
on_bad_vectors="null" or "drop" to add to keep or skip those rows.
Image and combined text/image inputs are not supported by this integration.
Install the optional client and set your NVIDIA API key:
lancedb.connect("db://my-database", api_key=..., region=...). The same schema,
add, and search calls compute embeddings in the Python client. The NVIDIA key
is separate from the LanceDB database key. Use a fresh table name when creating a
table; reopening an existing table restores its embedding configuration.
Models and configuration
The hosted API documents these exact IDs and dimensions:
Requests specify
modality="text" and encoding_format="float". Returned vectors
are checked for count, input indices, dimensions, and finite numeric values.
The hosted input limit is 10,240 tokens per item; self-hosted limits depend on the
served profile. This provider batches by item count, not token count.
Self-hosted NIM
Setname to the exact ID returned by your deployment’s GET /v1/models and
dim to an output dimension that deployment supports:
Authenticated endpoints
Custom endpoints may run without a key.NVIDIA_API_KEY is only sent to the
hosted API, so for authenticated endpoints use
get_registry().set_var("nvidia-key", key) with api_key="$var:nvidia-key". Registry references, rather than secret values, are
stored in the schema. Restore registry variables in each process. Before using
a custom endpoint restored from table metadata in a new process, call
get_registry().allow_endpoint("http://localhost:8000/v1").
Output dimensions
The NIM 2.4 support matrix listsnvidia/Nemotron-3.5-Embed-8B-BF16 at 2048
dimensions, whereas the hosted 8B reference specifies 4096. For self-hosted model
IDs, this provider requires an explicit dim and checks the response instead of
assuming the hosted defaults.