LLM Model Control Plane
Use /app/genai/LlmModelControlPlane to assemble the configuration that Portal
publishes to a light-gateway instance. Authoring records are usable as soon as
they are created. Portal keeps active as a backend-managed soft-delete flag;
it is not an operator workflow field.
Portal validates record shape and cross-record consistency during commands and again on Publish. It does not call the provider or resolve API keys. Provider connectivity is tested through the live gateway after publication, where the runtime secret is available.
Recommended order
Create records in this order:
- Model catalog entry
- Registration
- Provider Account
- Network Zone, only for an approved private provider
- Provider Endpoint
- Provider Deployment
- Provider Credential reference
- Public Alias
- Alias Route
- Pricing
- Optional Policy and Policy Binding, only when a workload uses policy-based governance or Alias selection
- Publish, review, and create the gateway snapshot
If Publish reports a problem, return to the named tab, correct that record, and publish again.
NVIDIA Nemotron embeddings demo
The hosted NVIDIA demo uses:
- Provider:
nvidia - Physical model:
nvidia/nemotron-3-embed-1b - Protocol:
openai_embeddings - Base URL:
https://integrate.api.nvidia.com/v1 - Endpoint authentication:
BEARER - Secret reference:
env:NVIDIA_API_KEY - Network profile:
PUBLIC_TLS - Termination:
NATIVE
Do not enter the NVIDIA key in Portal. Inject NVIDIA_API_KEY into the target
light-gateway process.
Model contract
Set Model operations to ["embed"]. The declared capabilities are the static
contract used by publication and gateway compilation:
{
"operations": ["embed"],
"embedding": {
"maxBatchItems": 1,
"maxInputTokensPerItem": 4096,
"maxAggregateInputTokens": 4096,
"supportedDimensions": [2048],
"supportedEncodings": ["float"],
"maxResponseBytes": 16777216,
"space": {
"spaceId": "nvidia-nemotron-3-embed-1b-float-v1",
"revision": 1,
"dimension": 2048,
"normalization": "l2",
"distanceMetric": "cosine",
"documentInputTransformVersion": "document-v1"
}
}
}
The embedding-space identity is immutable. A model, dimension, normalization, distance metric, or document-transform change requires a new space identity and newly indexed vectors.
Account and Endpoint
Create the Account with a stable quota group such as nvidia-free-embedding-demo.
Create the Endpoint under that Account with the protocol, URL, authentication,
and network values above. apiKeyHeader must be empty for BEARER.
Safe non-secret headers may be configured, but Authorization, cookies, proxy credentials, and secret-looking values are rejected.
Deployment
Select the Nemotron Registration, NVIDIA Account, and NVIDIA Endpoint. Preserve the exact protocol, physical model, and base URL. Use a stable revision and runtime-capacity declaration. A functional demo may use one Deployment for both Knowledge Base lanes; production isolation requires distinct physical capacity, not merely different names.
Credential
Use purpose ENDPOINT, select the NVIDIA Endpoint, and set Secret Reference to
env:NVIDIA_API_KEY. Effective Time must be current or earlier. Expiration Time
is optional. Portal stores and publishes the reference only.
Aliases and Routes
Create kb-index and kb-query as embedding-only internal workload Aliases.
For each Alias:
- operations:
["embed"] - require expected embedding space:
true - lane:
kb_indexorkb_query - required embedding space: exactly the six-field space object above
- bound workload principal: the intended Knowledge Base workload
Create one priority-zero Route from each Alias to the Nemotron Deployment. The command rejects missing, cross-host, environment-mismatched, protocol-mismatched, or embedding-space-incompatible references.
Pricing
Create an embed Pricing record for the Deployment. Embedding pricing accepts
an input rate and forbids an output rate. A zero demo rate is valid when that is
the intended accounting contract.
When to use Policies and Bindings
Policies and Bindings are optional governance records. They are not required to create a Provider connection, make a Route eligible, publish an Alias, or test an embedding model through the live gateway.
Use a Policy when the host needs reusable governance intent such as:
- which subject or operation classes should be allowed;
- request or period budget limits;
- content logging, cache, or PII handling intent; or
- a narrow allowlist of provider-specific request extensions.
Policy objects are extensible authoring data. A key affects runtime behavior only when the publication mapping and target gateway support that key. Do not assume that storing an arbitrary JSON property automatically enforces it.
Use a Binding to assign a Policy to a concrete subject. Supported subject
namespaces are AGENT, CLIENT, PRINCIPAL, and PRODUCT_PROFILE. A Binding
may also identify a Public Alias to limit the assignment to that Alias.
Create them in this order:
- Create the Policy with a stable governance-oriented name.
- Create a Binding that selects the Policy and supplies the exact Subject Type and Subject Id used by the consuming system.
- Select a Public Alias when the assignment is Alias-specific.
- For an
AGENTthat resolves its default model through policy, set Agent Default on exactly one active Alias Binding for that Policy and Agent. - Publish again and verify that the generated configuration contains only the policy behavior supported by the selected gateway version.
Do not use a Policy or Binding to:
- store an API key or other provider secret;
- replace Provider Account, Endpoint, Credential, Deployment, Route, or Pricing configuration;
- replace an internal Alias’s workload-principal restriction; or
- make an otherwise incompatible Deployment eligible for an Alias.
For the initial NVIDIA kb-index and kb-query demo, skip both tabs unless an
Agent or another subject must select those Aliases through a Model Policy. The
Aliases’ INTERNAL_WORKLOAD identity, embedding-space contract, Routes, and
Pricing are sufficient for direct workload-based publication and live gateway
testing. If policy-based selection is added later, create a dedicated embedding
Policy using operation embed, then bind it to the exact subject and Alias;
do not reuse a generation-only chat Policy.
See Create Model Policy and Create Policy Binding for field-level examples and Agent Default rules.
Network Zones
Network Zones are required only for private TLS or explicitly approved private plaintext endpoints. A public hosted NVIDIA Endpoint does not use a Network Zone. Empty Network Zones are normal and should not be deleted merely because the NVIDIA demo does not need one.
Publish and test
Publish performs final validation across Accounts, Endpoints, Deployments, Credentials, Aliases, Routes, Pricing, and static model capabilities. A valid publication contains declared capabilities and secret references, never raw keys.
After the gateway loads the snapshot, validate the live path with the documented curl-first embeddings request. This confirms DNS, TLS, authentication, provider protocol, model availability, response shape, dimension, and embedding-space expectations from the customer runtime.
Follow Validate LLM Embeddings Through The Live Gateway for the checked curl helper, optional Rust wrapper, safe evidence, and corrective workflow.
Common failures
- Route references are incompatible: ensure Alias and Registration use the
same environment, the Deployment uses
openai_embeddings, and the complete embedding-space objects match. - No eligible Credential: check Endpoint purpose, effective/expiration timestamps, and the secret reference format.
- Raw provider secrets rejected: use
env:NVIDIA_API_KEY, never the key. - No active records: no non-deleted rows exist for that tab; create one only when the workflow requires it.
- Policy appears to have no effect: confirm that an active Binding selects the intended subject and optional Alias, and that the publication mapping and gateway version implement the authored policy keys.
- Publication rejected: correct the record named by the Publish validation result and publish a new candidate.