Operations

Providers And Diagnostics

Provider catalogs, model rates, self-hosted models, doctor checks, and maintenance.

Provider setup is a production surface, not a hidden environment detail. RVBBIT keeps model availability, rate coverage, default providers, and diagnostics visible through SQL.

Catalog Tables#

Surface Purpose
rvbbit.provider_catalog One row per provider refresh target and auth/status state.
rvbbit.provider_models Provider/model metadata, capabilities, context windows, availability.
rvbbit.model_rate_cards Provider-specific rate data with confidence.
rvbbit.provider_model_catalog Convenience view joining model metadata and rates.
rvbbit.model_rates Compatibility table used by cost estimation.

Refresh Providers#

SELECT * FROM rvbbit.refresh_provider_catalogs();
SELECT * FROM rvbbit.refresh_provider_catalogs('openrouter,gemini');

SELECT rvbbit.provider_catalog_summary();

Missing provider keys do not have to fail setup. They produce skipped provider rows so a UI can show exactly what remains unconfigured.

Default LLM Provider#

A fresh install seeds openrouter as the default LLM provider (a chat backend with transport openai_chat, auth env OPENROUTER_API_KEY), and rvbbit.default_provider() returns 'openrouter'. With just OPENROUTER_API_KEY set, LLM operators work immediately — no extra registration. RVBBIT_DEFAULT_PROVIDER overrides the SQL setting when present in the Postgres process environment.

Self-Hosted Models#

Register the backend:

SELECT rvbbit.register_backend(
  backend_name => 'local-vllm',
  backend_endpoint => 'http://vllm:8000/v1/chat/completions',
  backend_transport => 'openai_chat',
  backend_max_concur => 2,
  backend_opts => '{"model":"nvidia/Gemma-4-31B-IT-NVFP4"}'::jsonb
);

Register catalog and cost metadata:

SELECT rvbbit.register_self_hosted_model(
  provider       => 'local-vllm',
  model          => 'nvidia/Gemma-4-31B-IT-NVFP4',
  backend_name   => 'local-vllm',
  display_name   => 'Gemma 4 31B on local vLLM',
  family         => 'gemma',
  capabilities   => '["chat"]'::jsonb,
  context_window => 32768,
  cost_policy    => 'free'
);

Then choose it as the SQL default:

SELECT rvbbit.set_default_provider('local-vllm');
SELECT rvbbit.default_provider();

Doctor Checks#

Cheap checks:

SELECT * FROM rvbbit.doctor(false);
SELECT * FROM rvbbit.provider_doctor(false);

Live probes:

SELECT * FROM rvbbit.doctor(true);
SELECT * FROM rvbbit.provider_doctor(true);

Live mode can call model providers. Use it for setup, support, release checks, and explicit UI health actions.

Secret Presence#

SELECT rvbbit.env_present('OPENAI_API_KEY');

This only returns a boolean. It should never expose the secret value.

Maintenance#

SELECT rvbbit.maintain();

Maintenance performs bounded idempotent work: receipt queue flush, cost backfill, delayed settlement, and provider catalog refresh. Storage maintenance is opt-in:

SELECT rvbbit.maintain(storage_tables => 2);

For UIs, combine doctor, provider summary, cost audit, and recent receipts into a single setup/health screen. See Receipts and Costs for the audit and per-call cost surfaces this screen draws from.