Система Home Assistant традиционно использует встроенные интенты — механизм сопоставления с образцом, который мгновенно распознает конкретные фразы вроде «включи свет на кухне» или «установи термостат на 70 градусов». Этот процесс не требует работы сложных моделей, что обеспечивает высокую скорость отклика. Однако при усложнении команд встроенные алгоритмы могут давать сбои. Чтобы расширить возможности системы, было решено внедрить локальную большую языковую модель (LLM).

Настройка локальной модели через LM Studio
Для выполнения задач была выбрана модель IBM Granite 4.1 Instruct с тремя миллиардами параметров. Процесс интеграции через приложение LM Studio достаточно прост: после загрузки модели необходимо активировать локальный API-сервер. Это действие открывает OpenAI-совместимый эндпоинт в локальной сети, к которому Home Assistant подключается посредством интеграции для общения, поддерживающей пользовательские серверы. В настройках конвейера Assist (Assist pipeline) была выбрана модель Granite с разрешением на использование API Home Assistant.
Ключевыми характеристиками Granite 4.1 Instruct являются поддержка вызова инструментов (tool calling) и структурированных данных JSON. Это важнее, чем способность модели поддерживать развернутый диалог. В ходе работы Home Assistant передает модели список доступных инструментов и сущностей, после чего модель выбирает нужное действие для исполнения. При этом приоритет остается за встроенными интентами, поэтому стандартные команды обрабатываются быстрым механизмом сопоставления, не задействуя LLM.
Почему интенты надежнее языковых моделей
Использование LLM для каждой команды нецелесообразно по нескольким причинам. Даже быстрой локальной модели требуется от сотен миллисекунд до нескольких секунд для обработки запроса. В ситуациях, когда 95% команд являются простыми и повторяющимися, задержка модели заметно проигрывает мгновенному срабатыванию интентов. Кроме того, запуск модели на NAS с 16 ГБ оперативной памяти и не самым мощным процессором создает избыточную нагрузку.

Надежность является еще одним критическим фактором. Традиционные интенты работают безошибочно в 100% случаев, что делает их идеальными для управления критически важными узлами: дверными замками, гаражными воротами или климатическими системами. Языковые модели могут допускать галлюцинации, ошибочно интерпретировать названия устройств или выбирать неверные сценарии. Поэтому для управления безопасностью всегда стоит выбирать предсказуемые интенты.
Использование LLM для «нечетких» запросов
Локальная модель полезна для обработки 5% взаимодействий, требующих интерпретации смысла. Запросы вроде «мне здесь душно» или «я иду спать» сложнее формализовать в жесткий паттерн. В таких случаях LLM выполняет роль «умного» посредника, способного запустить комплексный сценарий. Если со временем какой-то из таких запросов становится регулярным, его можно перенести из LLM в обычный кастомный интент или сценарий (script).

Home Assistant позволяет расширять систему с помощью пользовательских предложений (custom sentences), которые могут запускать автоматизации. При этом сценарии, экспортированные в LLM, доступны модели как инструменты, снабженные описаниями их функций. Это позволяет системе гибко реагировать на разные вариации команд, выполняя одну и ту же четко заданную последовательность действий. Использование AI в Home Assistant также открывает возможности для автоматической генерации сценариев, например, через сторонние инструменты вроде AI Automation Suggester, анализирующие текущую конфигурацию умного дома.

Почему модель стоит держать «выключенной» большую часть времени
Основная причина, по которой Granite 4.1 Instruct большую часть времени неактивна — это экономия ресурсов и производительность. При работе на NAS, где уже запущено множество фоновых процессов, а объем оперативной памяти ограничен 16 ГБ, постоянная инференция (обработка каждого запроса) привела бы к перегрузке системы без существенной выгоды. Модель здесь выступает не как основной контроллер, а как «умный fallback» — резервный вариант, когда штатный сопоставитель фраз падает из-за непредсказуемости команды.

Важно понимать разницу между «нечеткими» командами и рутиной. Если фраза «выключи свет» может быть мгновенно обработана интентом, то запрос «я иду спать» может подразумевать запуск целой сцены, а не простое действие с одним устройством. Именно в эти 5% сценариев, требующих интерпретации намерений, и вступает в игру языковая модель. При этом для таких операций, как управление замками, гаражными воротами или термостатами, предсказуемость интентов остается незаменимой: их работа гарантирует точность срабатывания, исключая риск галлюцинаций модели или неверного выбора устройства.

Оптимизация и расширение возможностей системы
Даже при наличии LLM, пользователю не обязательно полагаться только на нее. Home Assistant предлагает гибкие инструменты для оптимизации: если команда, которую раньше обрабатывала модель, стала звучать часто, ее можно превратить в custom sentence (пользовательское предложение). Это позволяет системе постоянно эволюционировать, перенося логику из «тяжелой» модели в «легкие» встроенные паттерны.
Важным преимуществом такого подхода является использование шаблонов внутри системы сопоставления фраз:

- Гибкие паттерны: Один шаблон может включать в себя вариативные слова, альтернативы, групповые подстановки (wildcards) и числовые диапазоны.
- Отсутствие дублирования: Благодаря такому подходу не требуется вручную прописывать каждую мелкую вариацию одной и той же фразы — система понимает их автоматически.
- Сценарное взаимодействие: Скрипты, экспортированные в LLM, снабжаются описаниями. Это дает модели контекст: Granite понимает, что делает каждый конкретный скрипт и в каком случае его использование будет уместным. В конечном итоге, когда модель выбирает «ночной сценарий», Home Assistant просто выполняет строго заданную последовательность действий, описанную в скрипте, что обеспечивает безопасность и стабильность результата.
Помимо голосового управления, интеграция нейросетей открывает путь к автоматическому созданию логики умного дома. Одним из наиболее эффективных решений здесь является AI Automation Suggester. Эта кастомная интеграция сканирует текущие устройства, их расположение (зоны), сущности и уже имеющиеся автоматизации, отправляя эти данные в модель. На выходе пользователь получает готовые идеи и шаблоны автоматизаций, на создание которых вручную ушло бы значительное количество времени.






