Хотел свою систему, которую можно менять когда угодно, и сделал три десктопных 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
Буду рад отзывам и вопросам в комментариях. Особенно интересно, какими локальными моделями вы пользуетесь и чего вам не хватает в таких приложениях.