Industrial AI
A local AI assistant that knows the plant
An assistant that answers from live process data, maintenance records, stock, plans and the design manuals, in two languages, and shows which data points each answer used. It runs entirely on one GPU workstation inside the plant network.
Problem
The plant portal put the data on screens. Managers and engineers still had questions that crossed screens: how long the plant can run at this rate on the feedstock in stock, what last week's slowdown did to production, what the design manual says about a limit an operator is approaching.
Company information could not leave the site, which ruled out cloud AI services, and the system had to run on hardware already on site.
Approach
Tools before text. Numbers come from tools that query the source systems, never from the model's memory. The model decides which tools to call, reads their results and writes the answer.
Documents through retrieval. Design manuals and operating documents are indexed with both vector and keyword search; the best passages are given to the model with their source.
One engine, scoped profiles. Every portal module uses the same engine, but each module's profile lists the tools it may use and the questions in its scope. The laboratory module does not answer staffing questions.
Teach by conversation. Engineers correct the assistant in the chat ("learn this", "no, that value is in kg/h"). Corrections are stored as notes and given back as examples when a similar question comes up, without retraining the model.
Show the evidence. Each answer ends with the data points it used, and any tool that failed is listed instead of being hidden.
Architecture
Everything runs inside the plant network.
How it is evaluated
A language model that sounds right is not evidence that it is right. The assistant is tested by scripts, not by impressions:
- Question templates are filled with many different signals and dates, about 250 questions per round, and each answer is scored at tool level: did it call the right tool with the right arguments, and did it report the value correctly.
- Wrong answers are grouped by root cause, such as a missing tool, an ambiguous signal name or a unit mix-up, and fixed at the cause before the next round.
- A fixed set of key questions, including the ones senior management asks, runs every week as a regression test.
What was learned
Heavy negative instructions backfire. A model told repeatedly not to invent values sometimes invented them and then said so. Giving it the data and a clear answer format worked better than forbidding things.
Tool design matters more than model size. Most wrong answers came from a tool that returned too much, too little or the wrong unit, not from the model's reasoning.
On a single GPU, the assistant competes with other on-site AI services. Timeouts, queueing and a CPU embedding service were needed before accuracy could even be measured.
Result
Engineers and managers ask cross-system questions in either language from any portal page and get an answer with the data points behind it. Design manuals are searchable in plain language with the passage shown. No document or process value leaves the site.
Stack
Python, an open-weight language model served locally on a workstation GPU, tool calling, a lightweight in-house vector store with keyword search, a CPU embedding service, scripted evaluation and weekly regression runs.