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

Можно

Нельзя без моего разрешения

Смотреть код

Копировать

Пользоваться приложениями лично

Изменять

Распространять

Делать производные проекты

Почему я так решил:

  1. Репутация. Не хочу, чтобы про мою систему говорили, что это вирусы: если кто-то соберёт и раздаст изменённую версию, пострадает репутация оригинала.

  2. Год работы. Это проект, над которым я работал целый год, и не хочу, чтобы его просто взяли и полностью переделали под себя.

Если проект не взлетит, возможно, я открою исходники позже.

Что дальше

  • ZeqouXChat: готов.

  • Zeqou Harness: готов.

  • ? ZeqouXTraining: выйдет совсем скоро, сейчас над ним работаю.

  • ? Встроенная модель. Сейчас для работы чата и Harness нужен свой ключ или локальная модель через Ollama. Когда проект начнёт приносить доход, я добавлю ИИ-модель, которая будет работать сразу из коробки.

Ссылки

Буду рад отзывам и вопросам в комментариях. Особенно интересно, какими локальными моделями вы пользуетесь и чего вам не хватает в таких приложениях.

Комментарии (0)