Ее зовут Кая

Ее зовут Кая

Версия 1 готова, теперь это не HAL1000, а Кая. Сура Дамилолы Карпова. Первая версия. Буду тестировать несколько недель и потом выложу скелет на гитхаб.

HAL

Полностью локальная система домашней автоматизации с ИИ. Ноль облачных зависимостей. Весь инференс, наблюдение, память и автоматизация — на одном Windows PC.

Зачем ещё один проект

На GitHub сотни обёрток вокруг Ollama с красивым чатом. Десятки docker compose с Home Assistant и Frigate. HAL — не обёртка и не шаблон. Это единая система, где ИИ-ассистент, камеры, устройства, журнал поведения и память связаны общим пайплайном и одной базой данных.

Ничего похожего в open source нет. Есть отдельные компоненты — но никто не собрал наблюдение + поведенческий трекинг + персону с накопительной памятью + управление устройствами + самоисцеляющуюся инфраструктуру в одну локальную систему.

Что делает HAL особенным

Персона, которая зарабатывает знания

У HAL есть ИИ-персона с системой из 12+ доменных файлов: фитнес, здоровье, питание, карьера, хобби, семья, психология и так далее. Каждый домен содержит методологию — как быть хорошим тренером, как слушать и задавать правильные вопросы, как замечать паттерны в поведении. Но ноль личных данных о пользователе.

Личные знания накапливаются органически. После каждого разговора экстрактор вытаскивает факты, проверяет на дубликаты семантическим поиском, тегирует по домену и сохраняет. Факт «начал учить гитару» попадает в домен хобби. «Спал 5 часов» — в здоровье. Следующий сеанс — персона уже это знает.

Предзаписанные досье — читерство. Персона начинает с чистого листа и зарабатывает знания через общение. Через неделю она знает о тебе больше, чем любой облачный ассистент, и ничего из этого не покидает твой компьютер.

LLM — рот, а не мозг

Модель на 9B параметров не умеет вызывать инструменты. И это не ограничение — это архитектурное решение. Пайплайн из 14 шагов обогащения работает до модели: поиск по памяти, семантический поиск по доменным файлам, расписание, журнал событий, корреляции, статус PC, база фильмов/игр. Всё предвычисляется в Python и инжектируется как контекст. Модель получает готовые данные и озвучивает их человеческим языком.

После ответа — отдельные экстракторы вытаскивают факты и события, сохраняют в базу. Замкнутый цикл: разговор → извлечение → память → следующий разговор.

Это принципиально отличается от подхода «дай модели инструменты и надейся». Мы не надеемся — мы предвычисляем.

Поведенческий журнал и корреляции

Журнал собирает события из четырёх источников: разговоры, Apple Health, камеры Frigate и ручной ввод. 15 категорий: еда, тренировки, добавки, настроение, сон, метрики здоровья, присутствие по зонам. Векторный поиск по журналу через sqlite-vec.

Корреляционный движок — чистый SQL и Python, без LLM. «Лучше ли я сплю в дни тренировок?» — это агрегация по журналу, а не вопрос к языковой модели. Результат инжектируется в контекст, и персона озвучивает его.

Еженедельный отчёт синтезирует: фитнес-режим по дням, процент выполнения добавок, тренировки, настроение, тренды. Нарратив пишет 27B модель.

Фитнес-стейт-машина

Расписание — не промпт и не список. Это стейт-машина в Python: день недели определяет режим (кикбоксинг / силовая / отдых), pre-computed добавки, крон-напоминания через Telegram с инлайн-кнопками «Готово» / «Отложить». Нажал «Готово» — записалось в журнал. Отложил — придёт через 9 минут.

Что ещё делает

  • Frigate NVR: 3 камеры, 11 зон присутствия, распознавание лиц, MQTT-трекинг с дебаунсом 60с
  • Управление Apple TV (pyatv), Samsung TV (samsungtvws), HomePod (AirPlay)
  • Детекция активности PC (игра/код/медиа/idle). Выгрузка LLM из VRAM при запуске игры. Буферизация уведомлений в фокус-режимах.
  • Самоисцеление: heartbeat 60с, авто-рестарт, база багов, алерты в Telegram, ежедневный дайджест, структурная проверка в 4 утра
  • Recast: epub → аудиокнига с клонированным голосом через Chatterbox TTS → Audiobookshelf
  • Идентификация котов через vision-модель (камера → minicpm-v → сенсор в Home Assistant)

Архитектура

30+ Python-модулей. Единая SQLite база с sqlite-vec эмбеддингами (1024-dim). 18 сервисов под оркестратором с авто-рестартом. 4 Docker-контейнера (Frigate, Home Assistant, Mosquitto, Audiobookshelf). Всё остальное нативно на Windows, потому что WSL2 ломает mDNS и не видит ICS-подсети.

Стек

Ollama, Qwen 3.5 9B/27B, OpenClaw, FastAPI, SQLite + sqlite-vec, Frigate NVR, Home Assistant, MediaMTX, MQTT, pyatv, samsungtvws, Telegram Bot API, Piper TTS, Chatterbox TTS, Seed-VC, LightRAG, SearXNG, faster-whisper.

Ключевые решения

  • Middleware вместо tool calls. 9B модель не умеет opt-in инструменты. Вся логика — в пайплайне обогащения.
  • Персона зарабатывает знания. Доменные файлы = методология. Личные данные = ноль на старте.
  • Docker по минимуму. Только то, что требует Linux.
  • Одна база. SQLite + sqlite-vec для всего. Без Postgres, без Redis.
  • Документация для LLM. Каждый модуль задокументирован так, чтобы языковая модель могла разобраться в системе без помощи человека.
5
4
2
1
18 комментариев