Хотел свою систему, которую можно менять когда угодно, и сделал три десктопных AI-приложения

Привет, Хабр! Это моя первая статья, и она про Zeqou: небольшую экосистему десктопных приложений для работы с языковыми моделями. Два приложения уже готовы, третье выйдет совсем скоро. Расскажу, что они умеют, как устроены и с какими неожиданными проблемами я столкнулся.
Коротко. Zeqou — это три приложения: чат, рабочее пространство для агентов и студия дообучения моделей. Они бесплатные и работают на Windows, macOS и Linux. Чат и Harness готовы, xtraining выйдет очень скоро.
Зачем всё это
Я всегда хотел иметь свою систему: свои приложения, в которых можно изменить что угодно в любой момент. Не что-то чужое, про что не знаешь, что с ним случится завтра: поменяют условия, уберут функцию, закроют сервис. Отсюда и появился Zeqou.
Экосистема в одной таблице
Приложение | Что это | Стек | Статус |
|---|---|---|---|
ZeqouXChat | AI-чат с потоковыми ответами | Tauri 2 + React 19 | готово |
Zeqou Harness | Рабочее пространство для моделей и агентов | Electron | готово |
ZeqouXTraining | Студия дообучения моделей | Electron + React + Python | скоро |
Сайт экосистемы: mishaadevv.github.io/zeqou
ZeqouXChat: десктопный AI-чат
ZeqouXChat — это чат с языковыми моделями на Tauri 2 и React 19. Он работает и с облачными моделями по вашему ключу, и с локальными через Ollama.
Подключаемые провайдеры: OpenAI, Anthropic, Google, OpenRouter, Ollama и любые кастомные endpoint’ы.
Что внутри:
потоковые ответы;
подсветка кода (highlight.js), Markdown и формулы KaTeX;
встроенные датасеты Zeqou для тренера: основной v2 (перевод EN→RU с рассуждением), а также части с диалогами, кодом, наукой и техникой и языковые пакеты;
установщики для Windows, macOS и Linux.
Zeqou Harness: рабочее пространство для моделей и агентов
Zeqou Harness рассчитан на более серьёзную работу, чем обычный чат. Это десктопное приложение на Electron, где собраны модели и агенты, а контекст проекта хранится в одном месте. Провайдеры те же, что и в чате.
Что в нём есть:
Память. Это контекст, который помнит ИИ, чтобы не объяснять всё заново в каждой сессии.
Список задач агента. Когда работа многошаговая, агент планирует шаги через инструмент
todo, а панель Tasks показывает этот план в реальном времени со статусами «ожидает», «в работе» и «готово». Статусы можно править и вручную. Смысл в том, чтобы видеть, что агент собирается делать, и вовремя поправить курс.Инструменты и MCP. MCP из коробки нет, но его можно подключить.
Установщики для Windows, macOS и Linux.
ZeqouXTraining: студия дообучения моделей (скоро релиз)
ZeqouXTraining — это десктопная студия для дообучения небольших языковых моделей локально, без облака: настоящий пайплайн на GPU или CPU.
Как устроено
Приложение состоит из трёх слоёв:
┌───────────────────────────────────────────────┐
│ React-интерфейс (Vite, TypeScript, Tailwind) │
│ страницы, мастер, графики, playground │
├───────────────────────────────────────────────┤
│ Electron main (Node) │
│ мост preload, IPC, задачи, реестр, хранилище │
├───────────────────────────────────────────────┤
│ Python-движок │
│ датасеты, бэкенды, тренер, инференс │
└───────────────────────────────────────────────┘
Node ⇄ Python: построчный JSON в stdout
Node и Python общаются через построчный JSON-протокол. Так Node-часть остаётся тонким супервизором, а вся ML-логика тестируется обычным Python без интерфейса.
Что уже умеет
Раздел | Что делает |
|---|---|
Проекты | У каждого запуска обучения своя история, лучший loss и записанная конфигурация |
Мастер обучения | Вы выбираете базовую модель и датасет, а приложение само подбирает batch size, точность, длину контекста, оптимизатор и ранг по вашему железу и объясняет каждый выбор. Режимы Simple и Advanced |
Датасеты | JSON, JSONL, CSV, TXT, Parquet, папка с шардами или id из Hugging Face Hub. Файлы не копируются, а используются на месте |
Валидация | Показывает, чему модель реально научится: соответствие полей, дубликаты, слишком длинные записи, статистику по ролям |
Обучение | Живые кривые loss и LR, загрузка GPU и VRAM (через nvidia-smi), ETA, лог событий, чекпоинты с паузой и возобновлением |
Модели | Библиотека базовых и обученных моделей, экспорт (копирование или merge адаптера в базовую модель) и запуск в playground в один клик |
Playground | Диалог с обученной моделью и режим Thinking |
Железо | Видеокарты, версия PyTorch, поддержка CUDA, CPU и RAM |
Настройки | Выбор интерпретатора, установка ML-окружения в изолированный venv в один клик, токен Hugging Face в системном хранилище ключей |
Способы обучения: LoRA, 4-bit QLoRA, полный fine-tune, SFT и маленькая GPT с нуля.
Режим Thinking
В playground можно включить режим Thinking. Тогда рассуждения модели между <think> и </think> выводятся в отдельную сворачиваемую панель до ответа, а температуру, top-p и штраф за повторения можно менять на ходу. Модели, которых не учили рассуждать, просто возвращают пустой блок, поэтому переключатель безопасен.
Как это тестируется
206 тестов Python-движка.
54 сквозных smoke-теста.
Smoke-тесты не подменяют реальность: они поднимают настоящий Electron и настоящий Python-бэкенд, импортируют реальные фикстуры датасетов, проверяют битые файлы и экспортируют настоящую папку с артефактами. Всё это идёт во временной директории, поэтому ваша библиотека не затрагивается.
Со стеком всё получилось не по плану
Скажу честно: разный стек (Tauri в чате, Electron в Harness и xtraining) не результат долгой стратегии. Так вышло, и отчасти это было просто ради разнообразия. Tauri хорош там, где важны небольшой размер и нативное ощущение, а Electron удобен, когда нужен Node-слой и привычная экосистема. Никакого секрета тут нет.
Самыми неприятными оказались установщики. На Windows у меня NSIS с выбором папки установки, где перед копированием файлов показывается лицензия, плюс portable-сборка без установки. Для macOS и Linux нужны свои форматы (.dmg, .AppImage, .deb), и настроить всё так, чтобы сборки под три ОС выходили одним релизом, оказалось сложнее, чем казалось.
Почему лицензия закрытая
Все три проекта под PolyForm Strict 1.0.0. Это source-available, а не open source.
Можно | Нельзя без моего разрешения |
|---|---|
Смотреть код | Копировать |
Пользоваться приложениями лично | Изменять |
Распространять | |
Делать производные проекты |
Почему я так решил:
Репутация. Не хочу, чтобы про мою систему говорили, что это вирусы: если кто-то соберёт и раздаст изменённую версию, пострадает репутация оригинала.
Год работы. Это проект, над которым я работал целый год, и не хочу, чтобы его просто взяли и полностью переделали под себя.
Если проект не взлетит, возможно, я открою исходники позже.
Что дальше
✅ ZeqouXChat: готов.
✅ Zeqou Harness: готов.
🔜 ZeqouXTraining: выйдет совсем скоро, сейчас над ним работаю.
🔜 Встроенная модель. Сейчас для работы чата и Harness нужен свой ключ или локальная модель через Ollama. Когда проект начнёт приносить доход, я добавлю ИИ-модель, которая будет работать сразу из коробки.
Ссылки
ZeqouXChat: github.com/Mishaadevv/xchat
Zeqou Harness: github.com/Mishaadevv/harness
ZeqouXTraining: github.com/Mishaadevv/xtraining
Буду рад отзывам и вопросам в комментариях. Особенно интересно, какими локальными моделями вы пользуетесь и чего вам не хватает в таких приложениях.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.