Reference for configuring the Local AI endpoint, master enable, tool-category bits, and pointing at alternative LLM endpoints (cloud or alternate local).
AI Integration → Local AI → Configuration
Where the configuration lives
Local AI reads its full configuration from two surfaces: the Solution Capabilities row for Local AI (the master enable and the endpoint JSON), and one column on the pre-existing SolutionSettings table (the tool-options bitmask). No new tables.
Surface | Type | Role | Default |
|---|---|---|---|
| Boolean | Canonical master kill-switch for ALL Local AI features in this solution. When |
|
| String (JSON blob) | Six-key endpoint configuration: |
|
| Int (bitmask) | Master tool-surface bit and per-category tool-enable sub-bits. Same bitmask the AI Runtime Connector reads. Stays on |
|
Editing in the Designer
The canonical edit surface is Solution → Capabilities. The Local AI capability row carries:
- Enabled checkbox — toggles
SolutionCapabilities[LocalAI].Enabled. Master kill-switch. - Status indicator — reachability probe against the configured endpoint URL. Cached for 30 seconds.
- Endpoint URL — read-only display of the resolved URL. The URL points to the chat-completions endpoint (
/v1/chat/completions), which accepts POST requests only and returns a browser error if opened directly. The link icon next to the URL opens/v1/modelsin your browser instead — a GET endpoint supported by Ollama, LM Studio, vLLM, and all OpenAI-compatible servers that lists installed models and confirms the server is reachable. - Settings link — opens the structured 5-field editor for
SolutionCapabilities[LocalAI].Settings. - Model name — read-only display of the configured
Namefield.
The same Local AI tile is also surfaced on the Data Servers page (sibling of the OPC UA, DataHub, MQTT Broker, and MCP for Runtime tiles) as a convenience shortcut for engineers who reach for Data Servers first — both routes edit the same row.
The Settings JSON
Six fields, all defensive — an empty/missing/malformed Settings value transparently resolves to defaults. Unknown extra keys are preserved across edit cycles, so future revisions stay forward-compatible.
{
"URL": "http://localhost:11434/v1/chat/completions",
"Name": "qwen2.5:7b-instruct",
"Authorization": "NoAuth",
"Headers": "",
"Info": "Recommended default model. Apache 2.0, ~4.7 GB.",
"TimeoutSeconds": 60
}Key | Default | Notes |
|---|---|---|
|
| Must speak OpenAI-compatible chat-completions JSON. Local Ollama, LM Studio (in OpenAI mode), vLLM, llama.cpp's server, or any cloud endpoint that conforms. |
|
| Goes into the POST body's |
|
| Multi-line wire format. Line 1 = scheme ( |
| empty | Multi-line |
| self-documenting block | Free-text description visible to anyone editing the configuration. Distinct from |
|
| Wall-clock budget per LLM call, in seconds. Integer; valid range |
The configuration is parsed defensively on every Local AI call — the parse cost is negligible compared with the LLM round-trip, and there is no caching layer to invalidate when the JSON changes.
The ModelOptions bitmask
An integer column on SolutionSettings carrying independent enable bits. The bitmask is shared with the AI Runtime Connector and the AI Designer connector — the same bits gate the same tool categories regardless of which transport the LLM uses to call them.
Bit | Name | Effect when ON |
|---|---|---|
|
| Master enable for the AI tool surface. Required for the |
|
| The LLM may read tag values, browse the namespace, and search the UNS during a chat turn. |
|
| The LLM may read active alarms and query the alarm history. |
|
| The LLM may query historian time-series data. |
|
| The LLM may call solution-authored MCP Tool class methods. |
|
| Reserved for the AI Designer connector. Do not reuse for Local AI features. |
|
| Per-Display-panel transcript cache participates in |
The five tool-category bits (0x04–0x20) are AND-gated against the master bit. A category bit ON without the master bit ON leaves the category effectively OFF.
Master gate order
Both consumer paths apply the gates in a fixed order:
SolutionCapabilities[LocalAI].Enabled— iffalse, returnstatus="disabled"immediately. No HTTP traffic.latencyMs = 0.SolutionSettings.ModelOptionsbit0x02—ChatRequestonly: if the master tool-surface bit is OFF, returnstatus="disabled".AI.Executeskips this gate (no tools to expose).- Per-category bits —
ChatRequestonly: AND-ed against the master bit when assembling the tool catalog the LLM sees during a chat turn.
Pointing at a different LLM endpoint
Recommended default and limited-hardware fallback
FrameworX recommends qwen2.5:7b-instruct as the default (Apache 2.0, ~4.7 GB, best reasoning and tool-call reliability) — the model used for new solutions, demos, and templates. It expects a GPU. On hardware with no GPU, fall back to qwen2.5:3b-instruct (~2 GB): lower speed and quality, suitable for atomic reporting and classification tasks rather than interactive chat. For maximum reasoning on a strong GPU, qwen2.5:32b-instruct is the performance tier. To switch any solution, update the Name field in the JSON examples below (and pull the matching model with ollama pull <name>).
Replace the URL and Name fields. Any OpenAI-compatible chat-completions endpoint works.
Local Ollama (default)
Error rendering macro 'code': Invalid value specified for parameter 'com.atlassian.confluence.ext.code.render.InvalidValueException'{
"URL": "http://localhost:11434/v1/chat/completions",
"Name": "qwen2.5:7b-instruct",
"Authorization": "NoAuth",
"Headers": ""
}Remote Ollama on a GPU server
Error rendering macro 'code': Invalid value specified for parameter 'com.atlassian.confluence.ext.code.render.InvalidValueException'{
"URL": "http://gpu-server-01.lan:11434/v1/chat/completions",
"Name": "qwen2.5:32b-instruct",
"Authorization": "NoAuth",
"Headers": ""
}The remote Ollama must be started with OLLAMA_HOST=0.0.0.0:11434 and the firewall opened on TCP 11434.
OpenAI-compatible cloud endpoint with Bearer token
Error rendering macro 'code': Invalid value specified for parameter 'com.atlassian.confluence.ext.code.render.InvalidValueException'{
"URL": "https://api.example-llm-provider.com/v1/chat/completions",
"Name": "the-cloud-model-name",
"Authorization": "BearerToken\n/secret:CloudLLMApiKey",
"Headers": ""
}The /secret:CloudLLMApiKey token resolves at call time from the SecuritySecrets vault — the actual API key never appears in the configuration. See SecuritySecrets Authentication for Local AI.
Endpoint with extra HTTP headers
Some providers require extra request headers (organization ID, project ID, region). Add them via the Headers field, one Key: Value pair per line:
{
"URL": "https://api.example-llm-provider.com/v1/chat/completions",
"Name": "the-cloud-model-name",
"Authorization": "BearerToken\n/secret:CloudLLMApiKey",
"Headers": "X-Organization-Id: org-12345\nX-Project-Id: /secret:CloudLLMProjectId"
}Header values also accept /secret:<Name> tokens.
Configuration safety nets
The platform applies several safety nets to prevent silent misconfiguration:
- Defensive defaults. Empty / null / malformed
SolutionCapabilities[LocalAI].Settingsfalls back to the recommended local Ollama defaults. A solution with a corrupted JSON blob still works against the local default. - Status probe. The Local AI tile in the Designer probes the resolved URL on a 30-second cache, surfacing a red indicator when the endpoint is unreachable. Use it before deploying.
- Master kill-switch precedes everything. A solution can be staged with full configuration and shipped with
SolutionCapabilities[LocalAI].Enabled = false. No LLM traffic flows until the customer toggles it ON in Solution → Capabilities. - Off-server short-circuit. Secret resolution is a server-side operation. Calls reaching Local AI from a thin-client context cannot resolve secrets and fall through to a normal HTTP error reply — no silent unauthenticated POST.
What this page does NOT cover
- Bringing up Local AI on a fresh machine. See Local AI - First Install Walkthrough.
- SecuritySecrets reference syntax and examples. See SecuritySecrets Authentication for Local AI.
- Reply envelope shape and status semantics. See Local AI Reply Envelope Schema.
- The
ChatRequestDisplay action. See ChatRequest Action Reference. - The
AI.Executescript API. See AI.Execute API Reference.
In this section...