Using aiAxonIQ as a hosted service? You do not configure a provider.
Which model-backed features are available depends on your plan and
deployment; each page in the AI Assistant section says when its prerequisite
is missing. See AI Assistant and Investigate for what
each page needs.
Nothing here is needed for anomaly detection or forecasting. Both are
statistical and work with no provider configured. With no provider, the AI
service starts normally and the model-backed pages refuse with a stated
reason rather than failing silently.
Supported providers
The provider is read in one place in the AI service, from these variables:
The value is case-insensitive, and may be written
<provider>/<model> — for
example openai/gpt-4o — which names the model in the same breath.
Settings on the AI service
LLM_BASE_URL is checked before anything is sent. Its host must be one of
api.openai.com, generativelanguage.googleapis.com, openrouter.ai,
api.anthropic.com, localhost or 127.0.0.1, or a host you add in
LLM_EGRESS_ALLOWLIST. Otherwise the investigation step is refused with a
message naming the host. This guards against a typo sending telemetry to a host
nobody chose; it is not a defence against someone who can edit your
environment.
The check applies to Investigate only. Root cause, Suggested fixes, Ask
your data and the Knowledge base call the provider without it. Set
LLM_BASE_URL with the same care either way.Settings on the API service
These tune the investigation agent, which runs in the API service.
The per-run limits — steps, tool calls, time, tokens, estimated cost — are
fixed defaults, listed in
How the investigation agent is governed.
Governance settings
Keep the AI service private
The AI service must be reachable only by the aiAxonIQ API. The browser never calls it: every AI page goes through the API under/api/ai/* and the
investigation routes, which authenticate the user and attach the organization.
- Do not route to it from your reverse proxy, and do not publish its port beyond the host it runs on.
- The API and the AI service authenticate each other with a shared internal key. It must be set, and strong, on both; the deployment material that ships with your installation names it.
Check the configuration
1
Read the startup log
When the AI service starts without a usable key it logs a warning box
beginning
LLM_API_KEY is not set!. With one, it logs a line of the form
LLM configured: provider=…, model=…, key=***… showing only the last four
characters of the key.2
Ask the AI service
From a machine that can reach the AI service — normally the host it runs
on, since it must not be reachable from anywhere else — request its health
endpoint. Replace The answer includes the provider and whether it is configured:
<ai-service-address> with the address your installation
gives it:llm_configured is true when LLM_API_KEY is set, or when the provider
is ollama, which needs no key. The response has further fields, such as
the forecast worker pool; status is degraded, with HTTP 503, when the
AI service’s cache is unreachable.3
Use a page
Open AI Assistant → Root cause and analyse a short log snippet. A
configured provider returns an answer ending Generated by <provider>.
GET /api/ai/health answers a different question. It is available to
Admin and above, and reports whether the API can reach the AI service and
how quickly. Its configured field is always true — it means the API has an
address for the AI service, not that a model is configured. Use
llm_configured above for that.What is sent to the provider
Only when a model-backed feature is used, and only what that feature needs:
Anomaly detection and forecasting send nothing to a provider. The model’s
reasoning is never stored or streamed to the browser — see
How the investigation agent is governed.
With
gemini, the key travels in the request URL, as Google’s API requires.
A proxy between the AI service and Google that logs URLs will log the key.Troubleshooting
llm_configured is true but pages still refuse
llm_configured is true but pages still refuse
Check which page. Correlation and the Knowledge base also need
LLM_PROVIDER=openai. Ask your data also needs CH_AI_MASTER_SECRET.Investigate refuses a gateway URL
Investigate refuses a gateway URL
LLM_BASE_URL points at a host outside the allow-list. Add the host to
LLM_EGRESS_ALLOWLIST if it is deliberate.Approvals are refused with 'Approvals need the evidence ledger'
Approvals are refused with 'Approvals need the evidence ledger'
AGENT_EVIDENCE_MODE is off. Set it to required with an
EVIDENCE_SIGNING_KEY. No registered tool needs an approval today.A setting in the environment file has no effect
A setting in the environment file has no effect
Settings are read when the service starts. Restart the AI service (for
LLM_* and CH_AI_MASTER_SECRET) or the API (for AGENT_* and
EVIDENCE_*) after changing one.Next
AI Assistant and Investigate
What each page needs and shows.
How the agent is governed
Tools, approvals, limits and the audit trail.
Self-hosted hardening
Secrets, network exposure and backups.