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 (10.1.5 draft)
10.1.5 draft. This page documents Local AI configuration as it ships in FrameworX 10.1.5. Content may change before GA.
Local AI reads its full configuration from three columns on the existing SolutionSettings table. No new tables, no new columns — one solution has one Local AI configuration.
Column | Type | Role | Default |
|---|---|---|---|
| Boolean | Master kill-switch for ALL Local AI features in this solution. When |
|
| String (JSON blob) | Five-key endpoint configuration: |
|
| Int (bitmask) | Master tool-surface bit and per-category tool-enable sub-bits. Same bitmask the AI Runtime Connector reads. |
|
The Local AI configuration is edited from the Local AI tile on the Data Servers page (sibling of the OPC UA, DataHub, MQTT Broker, and MCP for Runtime tiles).
ModelEnabled. Master kill-switch.ModelSettings.Name field.ModelSettings JSONFive fields, all defensive — an empty/missing/malformed ModelSettings column 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": "None",
"Headers": "",
"Info": "Default local model. Apache 2.0, ~4.7 GB."
}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 |
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.
ModelOptions bitmaskAn integer column 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.
Both consumer paths apply the gates in a fixed order:
ModelEnabled — if false, return status="disabled" immediately. No HTTP traffic. latencyMs = 0.ModelOptions bit 0x02 — ChatRequest only: if the master tool-surface bit is OFF, return status="disabled". TK.AIExecute skips this gate (no tools to expose).ChatRequest only: AND-ed against the master bit when assembling the tool catalog the LLM sees during a chat turn.Replace the URL and Name fields. Any OpenAI-compatible chat-completions endpoint works.
{
"URL": "http://localhost:11434/v1/chat/completions",
"Name": "qwen2.5:7b-instruct",
"Authorization": "None",
"Headers": ""
}{
"URL": "http://gpu-server-01.lan:11434/v1/chat/completions",
"Name": "qwen2.5:14b-instruct",
"Authorization": "None",
"Headers": ""
}The remote Ollama must be started with OLLAMA_HOST=0.0.0.0:11434 and the firewall opened on TCP 11434.
{
"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 (10.1.5 draft).
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.
The platform applies several safety nets to prevent silent misconfiguration:
ModelSettings falls back to the recommended local Ollama defaults. A solution with a corrupted JSON blob still works against the local default.ModelEnabled = false. No LLM traffic flows until the customer toggles it ON.ChatRequest Display action. See ChatRequest Action Reference (10.1.5 draft).TK.AIExecute script API. See TK.AIExecute API Reference (10.1.5 draft).