Optional model routing
Use the shared model proxy.
Your client sends model requests through Baltor using your own provider access. Search and MCP discovery work without this.
Checking the shared backend configuration…
Free discovery does not include model inference. Your provider’s usage limits and fees still apply. This page never asks for your keys and never starts a model request.
How rules and engines work
A trigger is a declared label on a request, not a background job or a keyword extracted from your prompt. Matching denial rules refuse a request. Otherwise the first matching rule supplies defaults; your explicit engine and reference choices take precedence. Rules cannot change the provider, model, credentials or limits, and cannot retry a request.
Required references run the search before inference. If no eligible card fits, no model call starts. This attaches reference metadata; it does not install a file or prove that the model used it well.
The two transport engines use the same provider-native request and result contract. Changing transport does not change your account, provider funding or file permissions.
OpenAI-compatible base URL
Open WebUI
Configure the model connection on your own server under Admin → Connections. Use the base URL above and a dedicated Baltor client key as the API key. Add these custom headers there, replacing the provider-key placeholder in that server’s protected settings:
A server-wide key represents that server’s Baltor account, not each user. Do not expose your credentials to an untrusted server. MCP search is configured separately under Admin → Integrations.
One bounded request
The following Python example reads keys from your environment. It makes one model request only when you run it. No key is included in the example.
Set BALTOR_API_KEY and BALTOR_PROVIDER_KEY with your local secret mechanism. The Baltor key needs provisioning:metadata. It does not need account administration or worker-task permissions.
If a request fails
Do not automatically retry a timeout or disconnect. Keep the request identifier, read its recorded status and check provider usage before deciding whether to make another attempt. A completed model response does not prove the task succeeded.