Documentation

AI Adapters

AI Adapters is the operational monitoring view for the models registered with KAI-C, OpenNVR’s sovereignty and audit gateway. Every inference the platform runs goes through one of these adapters. You’ll find it under AI & Detections → AI Adapters in the sidebar.

[!NOTE] This tab requires the ai.view permission. Health and metrics refresh on KAI-C’s own 60-second scrape cadence (the fleet strip auto-refreshes every 60s).

[!TIP] This page is about watching adapters that already exist. To learn how an adapter is built and what the contract requires, see the developer guide at AI Adapters (concept & contract).

AI Adapters — KAI-C gateway status, fleet strip, and per-adapter cards

What you can do here

  • See the KAI-C Gateway status at a glance.
  • Read the fleet strip — the 5-second answer for the whole fleet: how many adapters are OK, the worst p95 latency, total request rate, how many are near capacity, and how many show model drift.
  • Inspect each adapter card: model identity, advertised tasks, requested permissions, and approval status.
  • Expand per-adapter Metrics (latency percentiles, outcomes, saturation, queue depth, fingerprint/drift, trends, hardware).
  • Approve, grant, or revoke each adapter’s requested permissions.
  • View an adapter’s raw capabilities JSON.

Fleet strip

The strip across the top summarizes every adapter without scrolling:

  • N / M adapters ok — how many report a healthy status.
  • worst p95 — the highest p95 latency across adapters (with the adapter name).
  • req/min fleet-wide — total request rate.
  • near capacity — adapters running at ≥ 80% of their declared in-flight ceiling.
  • with model drift (1h) — adapters whose weight fingerprint changed in the last hour.

KAI-C gateway status

The KAI-C Gateway card shows the gateway’s own status badge (e.g. ok, degraded, unreachable). If the backend can’t reach KAI-C, the card explains why. When both the health and capabilities calls fail, the page shows “Adapter registry unavailable” with a Retry.

Read an adapter card

Each registered adapter is one card:

  • Header — the adapter name, an approval badge (approved / approval required / approval status unavailable), and a health status badge.
  • Model — the model name and version.
  • Framework — the serving framework, when reported.
  • Fingerprint — the model weight fingerprint (monospace, truncated).
  • Tasks — the tasks the adapter advertises (e.g. person_detection, scene_description).
  • Requested permissions — host resources the adapter asked for (GPU, network egress, filesystem, shared memory, host metadata).

If no adapters are registered, the page shows “No adapters registered” with guidance to start one and register it with KAI-C.

Inspect metrics

Click Metrics on a card to load its decision-grade panels (fetched only when you open it; use the refresh icon to re-pull):

Panel Answers
Inference latency p50 / p95 / p99 — which model per camera; is the SLA breached
Outcomes ok vs. model_error vs. provider/transport errors — rollback / retire / investigate
Saturation in-flight vs. max in-flight — scale out a replica / rebalance cameras
Queue depth frames waiting on the model — throttle fan-in / drop to keyframes
Fingerprint / drift weight changes observed — re-validate accuracy; freeze for compliance
Trends — last hour p95, req/min, in-flight sparklines — is it degrading or recovering
Hardware CPU, memory, GPU util, GPU memory (only if the adapter exports them)

If the adapter hasn’t served governed inference in the window, the panel reads “No samples yet.”

Approve permissions

Adapters declare the host resources they need, but nothing is granted until an operator approves it — the gateway fails closed until then.

  1. Click Permissions on a card.
  2. A pending adapter shows “This adapter cannot serve inference until its permissions are approved.”
  3. For each declared permission, click Grant (or Revoke an already-granted one). A permission flagged conflicts with local_only is one that would breach your sovereignty setting.
  4. Click Approve all to grant everything pending at once.

[!WARNING] Granting network egress, filesystem, or host-metadata permissions widens what an adapter can reach on your host. Approve only permissions you understand — a conflicts with local_only flag means the request contradicts a local-only sovereignty policy.

📸 Screenshots to capture

Save these to opennvr-site/public/screenshots/:

  • ai-adapters-overview.png — the page with the KAI-C Gateway card, the fleet strip, and a couple of adapter cards.
  • ai-adapters-metrics.png — a card with the Metrics panels expanded (latency bars, outcomes split, saturation gauge).
  • ai-adapters-permissions.png — the Permissions section expanded, showing a pending adapter with Grant / Approve all.