KACHANAIАЛЕКСАНДР КАЧАН
Назад к блогу
engineering

Свой чат-ассистент в SCADA: локальная модель вместо облака

Edge AISCADAЛокальный LLMКотельная

На котле Lavart K уже работал AI-ассистент: оператор мог спросить про режим работы, аварии, историю — и получить ответ на основе документации. Но это был отдельный интерфейс, не связанный с основным операторским экраном.

Проблема

Оператору приходилось:

  • Переключаться между мнемосхемой котла и отдельным окном чата
  • Зависеть от облачных моделей — то есть от интернета и тарифов API
  • Ждать готовый ответ целиком, без потока «по мере генерации»

Задача от руководителя звучала просто: «Хочу, чтобы чат был прямо в SCADA, как мессенджер, и работал на нашем одноплатнике — без облака».

Как ставилась задача

Четыре пункта — симптомы и желаемое поведение, без готового решения:

  • Развернуть локальную языковую модель на одноплатнике — чтобы не зависеть от интернета
  • Встроить чат в основной SCADA-интерфейс — кнопка и страница как в мессенджере
  • Ответ должен идти потоком, а не появляться целиком в конце
  • Чат должен знать нашу документацию — отвечать на основе базы знаний, а не «из головы»

Что сделали агенты

Команда прошла путь: архитектура → бэкенд → интеграция → интерфейс → тесты.

Локальная модель на одноплатнике

Взяли компактную модель Qwen на 0.8 миллиарда параметров — она умещается в несколько сотен мегабайт и работает на нейросетевом процессоре одноплатника RK3588. Модель работает в двух режимах: сразу весь ответ или потоком — токен за токеном.

Чат-сервер

Отдельный лёгкий сервис, который принимает вопрос оператора, присоединяет контекст из базы знаний (RAG), спрашивает модель и отдаёт ответ потоком. Оператор видит текст «вживую», по мере генерации.

Важная особенность: сервер всегда использует локальную модель. Если модель недоступна — оператор получает понятное сообщение об ошибке, а не «зависший» чат.

Интеграция в SCADA

Основной SCADA-сервер стал потоковым прокси к чат-серверу. Здесь был тонкий момент: поток «рвался», потому что соединение закрывалось раньше, чем заканчивался ответ. Решение — держать соединение открытым ровно столько, сколько длится поток.

Интерфейс

В шапку SCADA добавили кнопку «Ассистент». Открывается страница чата в стиле мессенджера: сообщения оператора и ассистента, индикатор «Готовим ответ…», иконки пользователя и бота. Ответ идёт потоком, источники из базы знаний показываются отдельно.

Результат

МетрикаЗначение
Локальная модель (без облака)Qwen · 0.8B параметров
Новых автотестов10
Всего тестов проекта155
Потоковый ответда, токен за токеном
Интеграция в SCADAкнопка + отдельная страница
Зависимость от интернетанет

Вся цепочка проверена на живых серверах. Если модель недоступна — оператор видит понятное сообщение. Если поток идёт — он корректно завершается.

Что это значит

Для руководителя котельной

  • Один интерфейс — оператор не покидает SCADA, чтобы спросить ассистента
  • Ноль зависимости от облака — чат работает даже без интернета
  • Без тарифов API — локальная модель бесплатна в эксплуатации
  • Понятные сбои — если модель не поднята, оператор видит сообщение, а не «молчащий» чат

Для инженера

  • Модель на 0.8B достаточно для вопросов по документации котла — не нужен облачный гигант
  • Потоковый ответ требует осторожности с соединениями — это типичный источник «рвущихся» стримов
  • Изоляция звеньев (интерфейс / прокси / модель) упрощает отладку: каждое звено тестируется отдельно

Выводы

Осталось включить модель на целевом одноплатнике — и оператор получит полностью автономный чат-ассистент прямо в SCADA.


Если вы хотите обсудить внедрение локального AI-ассистента в свою SCADA — напишите в @KachanAI. Обсудим, с чего начать.

Читайте также

engineering

40 минут, 4 фикса, 74 теста. Один день из жизни невидимого департамента

Утро. Четыре проблемы в работающей системе предиктивной аналитики. Через 40 минут — четыре фикса, 74 пройденных теста и ни одной строки кода, написанной мной вручную. Разбор одного рабочего дня невидимого департамента.

AI-агентыEdge AIПромышленностьКейс
engineering

ML в котлостроении: прогнозирование загрязнения на реальных данных

Как мы применили ML для прогнозирования загрязнения конвективных поверхностей котла на основе данных режимной наладки. Сочетание классической теплотехники и современных методов анализа данных.

Machine LearningКотлыРежимная наладкаПрогнозирование
management

Невидимый департамент: как я перестал нанимать людей

Как за год я собрал департамент из AI-агентов, который параллельно ведёт 4 проекта: Edge AI для котельных, систему управления департаментом АСУ ТП, генеративное проектирование и этот сайт. И почему люди в команде не сопротивляются.

AI-агентыУправлениеIndustrial AIПромышленность