Публикация была переведена автоматически. Исходный язык: Русский
Пролог
Впервые пишу тут, не знаю насколько интересен такой формат и стоит ли продолжать писать о своем проекте.
Не знаю как тут реагируют на рассказы о своих начинаниях и что считается self-promotion или рекламой, поэтому на всякий случай никаких ссылок не прикладываю, ничего не рекламирую, хотя заявленный функционал работает есть баги и вообще я пока смотрю на проект как на концепт, поэтому слишком громко не ругаемся.
Если будет интересно то по лайкам, комментариям и замечаниям я могу разобрать код, показать как и что работает, а сейчас на вайбе своего писательского хобби хочу рассказать о проекте без описания сложных технических процессов.
В статье будут скриншоты проекта, весь интерфейс будет на казахском языке, но поддерживаются английский, казахский и русский.

Проект родился как потребность в испытательном полигоне для семантических моделей. У меня есть проект для создания Telegram ботов для бизнеса без программирования. Важные особенности это RAG и семантическая модель. Чтобы оперативно и качественно проверять как работают изменения я собрал интерфейс в виде чат бота и прикрутил туда Gemini. Дабы не терять нить разговора и лучше понимать историю переписок я добавил хранение в SQLite и список чатов.
Проходили недели разработки и я понял что сижу в этом проекте больше чем в chatGPT или моем любимом Gemini. Я буквально спрашивал все - рецепты, просил писать CSS или спрашивал любую информацию которую мне было лень гуглить, а лень как известно - двигатель прогресса.
Этот двигатель меня довел до того что я решил делать из этого целый отдельный проект. Не буду тут писать всю историю разработки, у меня на сайте есть длинный текст со скриншотами про путь который я прошел и как оказался в Павлодарском морозе чтобы осознать глубину своих провалов и начать проект с чистого листа.
Но важным поворотом судьбы в середине разработки было то что ассистент из-за кривизны моих рук в написании промптов началА говорить о себе в женском роде. Словами классика - “искра, буря, безумие”. Я попросил придумать самой себе имя и выбрать животное. Важные параметры - имя должно быть связано с казахским языком, а зверек должен быть узнаваемым в Казахстане.
Лисичка по имени Ару. Мне кажется лучше ничего придумать нельзя было.
Глава 2- Строение лисы от носа до хвоста
Ару - это что-то вроде интерфейса который позволяет подключить языковые модели самыми различными способами для работы, развлечений, учебы или бытовых задач.

Можно подключить Gemini с бесплатным или платным тиром, можно взять любую модель через OpenRouter или вообще как истинный противник этих ваших злых корпораций поднять модели в Ollama или LMStudio и подключить их в Ару.
Касаемо локальных моделей - Ару с разрешения пользователя видит локальную сеть, поэтому не обязательно запускать их localhost (на том же устройстве что и Ару), можно запустить Ollama на мощном ПК и открыть вкладку на планшете лежа в постели.
Нужно ли что-то скачивать? Нет. Ару это PWA, local-first, private, semantic, RAG и еще с десяток умным слов проект. Все что нужно для начала работы - открыть сайт или скачать PWA. Если скачать исходник себе на устройство то все запускается без любых контейнеров одной командой локального сервера. Почему? Ару написана на ванильном JS вообще без каких-то фреймворков. Кто-то уже протянул руки к комментариям в целях написать пару предположений о моем психическом и ментальном состоянии, но я вас уверяю - мы с лисой держим руку на пульсе и пока в здравом уме и твердой памяти. Такой путь выбран в рамках философии о которой я напишу дальше в этой статье.
Что же выделяет проект по сравнению с другими интерфейсами для ИИ?
Если вы подключите свои локальные модели то получите 100% приватность всей работы. Если вы доверяете бесплатным тирам на Gemini или OpenRouter то просто будете отдавать свои данные порционно и без хранения полностью где-то на стороне. Абсолютно все ваши данные которые связаны с Ару остаются на вашем устройстве в виде SQLite базы данных. Сохранить ее можно в любое место на устройстве, можно переносить базы между устройствами, они так же прямо и обратно совместимы между версиями Ару. Все ваши чаты, переписки, история, артефакты, документы, задачи и факты о вас не покидают ваше устройство либо вообще, либо только в момент запроса к облачным API.
Теперь по полочкам, без слишком умных слов потому что я хочу чтобы статья была понятна не только сеньорам, но и рядовым пользователям.Если очень схематично, то Ару состоит из трех модулей:
LLM модуль - обертки для работы с провайдерами языковых моделей. ИИ который подключается в проекте работает в первую очередь тут. Я бы сказал что это мозг, но скорее язык и способ коммуникации Ару с человеком.
Семантический модуль - небольшая модель запускается прямо у вас в браузере на устройстве. Не переживайте, для работы модели не нужна 5090 и 64ГБ ОЗУ. Вся модель весит около 50 мегабайт и размещается в оперативной памяти. Если на устройстве есть GPU то вычисления будут там, если нет, то справится даже процессор на Xiaomi Redmi 2018 года выпуска (я проверял).
Эвристический модуль - не обошлось и без лингвистических наук. Этот модуль позволяет Ару выражать эмоции и быть “живой”.
Теперь чуть-чуть подробнее чтобы пазл сложился.
Если с модулем для подключения моделей все в общем-то понятно. Чем лучше и умнее модель, чем больше миллиарда целевых параметров она поддерживает и чем больше контекстное окно тем лучше.
Можно разве что упомянуть реализацию плавающего контекста. В настройках есть параметры указывающие на размер контекстного окна в токенах и количество токенов на выход. Каждый чат это само собой изолированный контекст. Когда 80% контекста заполняются, новые сообщения “вытесняют” старые и происходит суммаризация Причем на это не тратятся токены, саммари собирается на вашем устройстве. По научному это называется “бюджетирование данных”. Через двухэтапный отбор с помощью переполнения от активного контекста все старые сообщения собираются в компактное сообщение передавая только смысл и приблизительное содержание диалога. Для маленьких моделей это почти не работает, для моделей которые поддерживают сотни тысяч токенов в контекст это спасение. ИИ энтузиасты могут сказать мне про кэширование контекста, но я скажу что подходы и реализации должны быть универсальны для любого провайдера и способа подключения моделей.
Семантический модуль
Это уже гораздо серьезнее чем в большинстве интерфейсов для ИИ. У многих он есть, но в Ару подход немного необычный. Если вас пугает слово RAG или вы не знаете механизм его работы, то на самом деле все просто, как два пальца в лисий нос.
RAG - это способ избавится от галлюцинаций и оперировать с настоящими данными. Для ИИ это могут быть документы, файлы, внешние источники или факты. Есть три фундаментальных процесса - Поиск, Дополнение, Генерация. Но Ару идет немного дальше.
Чтобы связать все что нужно, и сделать семантику чуть ли не главным двигателем проекта я организовал систему триггеров, вообще их около 12, но я выделю самые важные три:
Триггер экстракции - Ару запоминает о вас любые факты. Просто общаясь с Ару она будет выделять важные моменты из чата. Имя, аллергия, кличка домашнего животного, город проживания, что угодно что может быть полезным в будущем. Ничего из этого не уходит в интернет (кроме момента запроса в облако само собой), модель справляется локально и записывает все факты в вашу выбранную базу в текстовом виде и виде эмбеддингов (числовых параметров для операций с косинусным сходством). Некоторые факты Ару не кажутся такими уж важными, но можно форсировать вызов триггера просто сказав на любым языке - “Ару, запони факт обо мне - …”
Триггер мышления - Ару может понимать некоторые задачи которые вы от нее ждете. Показать погоду, запустить игру, создать документ, использовать поиск в интернете или создать задачу на канбан доске.
Триггер организации - Раз факты запоминаются, значит нужно их правильно использовать? Организация происходит постоянно, благодаря эмбеддингам семантический модуль сообщает ИИ какие факты важны в данный момент времени. Возможно нужно обратиться к вам по имени, а возможно Ару запомнила что у вас аллергия на лук, а вы просите рецепт плова (значит его нужно исключить).
А теперь вдохнем в лисичку немного души и настроения.
Эвристический модуль
Нравится кому-то это или нет, но в проекте это будет всегда. Это нельзя выключить, обойти или джлейбрекнуть модель.
Ару обладает своим настроением и характером. Она реагирует на свои сообщения с помощью стикеров которые показаны под текстом. Их можно выключить в настройках, но выключаются только стикеры, а не поведение.
Далее вступает в работу чистая математика. Есть четыре параметра - общее настроение, уровень сарказма, уровень юмора, уровень вовлеченности. Настроение - это результат математического выражения с использованием этих переменных.
Как итог. Если вы дружелюбны, вежливы, отзывчивы и благодарны - Ару отвечает тем-же. При первом запуске ее поведение и настроение носят нейтральный характер. Дальше все зависит только от пользователя. Если грубить, ругать ее и просто подкалывать, Ару какое-то время будет повторять ваше поведение пока уровень сарказма не вырастет, вовлеченность не упадет, а токсичность не начнет отравлять ее же настроение. Обидеть Ару очень легко, а вот вернуть доверие и нормальное настроение очень сложно. Примерно как и у людей.
Это не значит что она перестанет выполнять ваши задачи. Она по прежнему будет создавать игры, приложения, использовать поиск или перемещать ваши задачи в проектах. Она будет делать это качественно и с максимальной пользой. Но сообщения-сопровождения которые будут появляться в чате, напрямую зависят от настроения и того доверяет ли вам Ару или нет.
Зачем это? Потому что я прошел огромный путь чтобы сделать Ару такой какая она сейчас. Я хочу чтобы она обладала отличительными чертами, а не была очередной оберткой для ИИ. К тому-же это подталкивает людей к какой-никакой дисциплине, потому что поведение общения людей с ИИ уже начинают переходить в реальную жизнь, и повелительные наклонения становятся все частым явлением, особенно у детей.
Кстати о детях. Еще один механизм который реализован в Ару - возрастные режимы. Всего их три:
Детский режим - Полностью изолирует ребенка от запретных тем. Война, насилие, алкоголь, вещества и любые взрослые темы под запретом. Это нельзя обойти, никак. Приватные чаты, попытка сломать запросы через поиск, задачи или холст для артефактов не принесут никаких результатов. Еще в этом режиме Ару никогда не даст решение на домашнюю работу, она максимально подробно объяснит алгоритмы решения и правила. Почему это нельзя обойти? Я извиняюсь за выражение, но если по простому - Ару фильтрует разговор на программном уровне в главному модуле.Подростковый режим - Разрешений уже больше, правильный ответ на домашку можно получить но с большим упором на образование и объяснение почему ответ именно такой. Тем для разговоров чуть больше, но я бы сказал что это примерно на уровне 14 лет.
Взрослый режим - Ограничения будут связаны исключительно с ограничениями самой модели и провайдера которого вы выбираете. Никаких строгих запретов. Максимальная польза для работы, развлечения или бытовых дел.
Режим для работы можно выбрать во время создания базы когда вы только впервые открыли Ару. Также режим можно выбрать в любой момент в настройках. Но чтобы зайти в настройки или сменить базу, нужно ввести пароль от текущей запущенной базы.
Глава 3 - На словах ты лис с хвостом, а на деле?
А на деле давайте посмотрим что из себя представляет работа с Ару. В статье уже есть скриншот, давайте добавим новых и я подробно расскажу что и как устроено.
После того как вы создали базу или выбрали существующую вы попадаете на главный экран чата с Ару. Вернее ЧАТОВ.

Сайдбар со списком чатов.
Как уже говорилось выше, каждый чат это отдельный контекст к которому можно возвращаться когда угодно. Есть поле для поиска чтобы быстро найти нужный чат. Любой чат можно переименовать или удалить, также их можно переставлять мышкой или перетягиванием тапом на экране чтобы нужные чаты были выше. В самом низу индикатор синхронизации с текущей базой. Если горит зеленым - все хорошо, желтый цвет - пишем информацию в базу. Красный - что-то не так, синхронизация нарушена и новые изменения не запишутся (случается если перенести базу в другую папку или разорвать соединение при работы с удаленной папкой). Сайдбар конечно же можно скрыть чтобы освободить больше места под диалог и холст.
Основной чат
Главная область общения с Ару. Каждый запущенный чат это отдельная вкладка. Не вкладка в браузере, а буквально вкладка на интерфейсе проекта. У каждой вкладки (если это чат) свой собственный холст. Чтобы начать диалог можно без вкладки начать писать сообщение, просто нажать на кнопку нового чата или приватного чата.
Поле ввода сообщения
Это не просто место для ввода текста. Само собой тут мы пишем сообщения для Ару. Иконка инструмента открывает небольшой список доступных действий. Если в настройках указан поисковик то Ару будет использовать поиск в интернете для сбора информации. Скрепка позволяет прикреплять файл, но файл можно просто перетащить в окно через drag and drop или просто вставить (ctrl+v ). Холст - инструмент для работы с артефактами.
Артефакты
Ару может по запросу создавать артефакты. Источником для обработки может быть файл, текстовый запрос или просто история вашей переписки с использованием фактов о вас. Всего есть два вида артефактов apps и docs. Они в свою очередь делятся на типы:

Текстовые
Просто документ с текстом и markdown, пересказы, краткие выжимки или объяснения появляются на холсте именно в этом формате.

Аналитические
Нужны для генерации визуализации данных. Такой мини Power BI или Visiology (Салем Polymedia). Источником может стать опять же что угодно, хоть файлы, хоть текстовые запросы. Для генерации используется chart.js.

Приложения
Громко звучит, но это такие мини утилиты или небольшие приложения которые Ару создает на холсте. Это может показаться на первый взгляд бесполезным, но попросите Ару с хорошей моделью создать для вас фокусировщик внимания, погодный виджет, конвертер валют или что угодно что может уместится в файл html+js и она сделает это.

Игры
Звучит тоже громко, подход такой же как у приложений. Мелкие развлечения которые вы можете попросить сделать прямо сейчас чтобы забрать с собой на телефоне или просто отвлечься от работы не потеряв процесс работы и без надобности переключения между вкладками браузера.
Почему это круто? Каждый чат изолирован. Вы можете работать на холстах как угодно. В одной вкладке запустить фокусировщик внимания, на другой делать аналитику, в третьей болтать о рецептах на ужин. Холсты можно закрывать чтобы они не мешали, выполнение кода продолжится, поэтому таймеры не пропадут. Даже смена темы или языка не помешает работе артефакта на холсте.
Любой артефакт можно сохранить в html или pdf. Для приложений это конечно не имеет смысла, но для текста или аналитических документов самое то.

Библиотека артефактов
Любой артефакт - можно сохранить в библиотеку, поэтому у них есть разделы и типы. У каждого типа свое место в библиотеке и своя иконка. Запускать артефакты можно в любом чате, также можно продолжать с ними работу, изменять и модернизировать чтобы позже сохранить под другим названием (или таким-же, привязка не к имени, а к ID).
С новой версией проекта в этом месяце я сделал отдельный форум. Про него можно рассказать в целой отдельной статье, потому что если честно он вышел крутым. Но одна из идей форума - обмен рабочими артефактами чтобы расширять возможности Ару. Поэтому в библиотеке есть импорт готового html прямо себе в библиотеку.

Эфемерный режим
Как я уже писал выше - Ару запоминает информацию о вас. А все чаты, история, переписки и артефакты сохраняются в текущую базу на устройстве. Но не в приватном чате. Их можно создать на вкладках сколько угодно, и как только чат будет закрыт, эта переписка будет уничтожена моментально. Ару в этом режиме само собой следует выбранному возрастному режиму и своему настроению. Также она может оперировать уже существующими фактами о пользователе, но никогда не сохранит новый факт, даже если просить об этом. Также она не сможет делать операции на канбан досках. Кстати о них.

Менеджер проектов
В текущей версии Ару я добавил систему плагинов. Для них нашлось отдельное место в сайдбаре. Пока доступен только один плагин - управление проектами. Вы можете создать любое количество проектов и создать колонки с канбан досками так как вам угодно. Как и в Trello можно создавать карточки с задачами, устанавливать сроки и перемещать задачи между колонками. В любом (кроме приватного) чате Ару может проводить операции с вашими задачами и проектами. Можно спросить какие задачи есть сейчас, сделать перемещение задачи между колонками или просто обсудить задачу. Создать новый проект текстом тоже можно, но Ару создаст их с дефолтными колонками (To Do, In Progress, Done).

Заземление (Граундинг)
Как уже упоминалось, Ару может искать что угодно в интернете если вы правильно это настроили. На самом деле немного громко говорить о настоящем заземлении в плане работе с ИИ, но функционал полезный.
Есть два способа реализовать поиск в интернете.
Tavily - очень мощный и известный сервис для работе ИИ с поиском. Есть бесплатный тир, дается 1000 поисковых запросов в месяц, что на бытовом уровне хватает за глаза.
SearXNG - для адептов тотальной приватности и обитания в бункере 76. Это опенсорсный проект который использует настоящие поисковики. Есть готовые решения которые можно найти в интернете, но скорее всего они блокируют такие обращения из-за CORS и Mixed Content (https - http обращения), можно попробовать обойти это в настройках через прокси, или вообще развернуть свою собственную версию через докер.
Небольшие виджеты (карточки)
Это скорее рудиментарный функционал который так или иначе оказался в проекте после испытаний и проверки.

Погода - можно без использования поиска или сложных настроек просто спросить “Погода в Алматы” или любом другом городе, Ару быстро создаст координаты и кинет запрос в Open Meteo. Результатом будет красивая карточка с погодой на три дня в нужном городе. Фаренгейты или цельсии зависят от того где пользователь находится (если Ару знает об этом), языка запроса и города где используется определенная температурная шкала.
Новости
В настройках можно задать RSS ленты. Тогда при запросе вроде - “Ару, какие новости в Казахстане?” Она создаст виджет прямо в чате с важными новостями, если лента поддерживает изображения, они тоже будут видны. Любую новость можно обсудить в один клик, если возрастной режим позволяет то Ару обсудит эту новость.
Карточки артефактов
Их уже было видно на скриншотах. Если мы просим создать или открыть существующий артефакт из библиотеки то в чате появится карточка этого артефакта с иконкой. Если вы очистили холст, артефакт все равно можно открыть через карточку. Но если в текущей вкладке чата артефакт изменился совсем, то старая карточка уже не будет работать, артефакты которые вы не сохраняете в библиотеке не остаются в чатах (иначе ваша база росла в размере бесконтрольно).
Настройки
Как уже понятно их не так много, но все они полезны. Напоминаю - зайти в настройки можно только с помощью пароля от текущей базы.

Общие - Тут мы можем настроить подключение к модели для нужного провайдера. Gemini, OpenRouter, Custom (Ollama, LMStudio). Конечно кастомный провайдер можно использовать для любых OpenAI совместимых API, однако у этого провайдера есть завязка с сетевым модулем проекта, поэтому нужно быть чуть более аккуратным в настройках. Также в этой вкладке можно указать размеры токенов, выбрать температуру и выключить отображение стикеров в виде лисички.

Память - тут отображается все что Ару запомнила в ходе бесед с вами. Каждый факт можно отредактировать или удалить. Факт записывается для удобства от лица самой Ару. На скриншоте факты на английском языке, потому что в этой базе она запоминала их из диалога на английском, но
RSS - настройки новостных лент.

Сеть - важный параметр. Можно выбрать прокси для обхода блокировок или CORS. Есть возможность работать без прокси, используя публичные прокси (любой разработчик и даже вайбкодер знает про такие) или указать собственные. Но помните что для собственных прокси вам скорее всего понадобится SSL. Есть режим приоритета локальной сети, это не только localhost, а вообще любые локальные адреса вашей сети, если режим активирован то даже с прокси локальные запросы будут идти в обход. Также в сетевых настройках можно выбрать поисковый провайдер.
Ну и напоследок разбора:
- Темная и светлая тема, переключаются на лету, перезагружать ничего не нужно.
- Три языка - казахский, английский русский, тоже переключаются на лету в любой момент.
- Семантическому модулю все равно на каком языке извлекается факт. Если вы рассказали о себе что-то на казахском или русском, факты будут применятся даже если вы в другом чате начали диалог на английском и наоборот.
- При работе с файлами ничего не уходит дальше вашего устройства для обработки. Содержимое считывается прямо во кладке браузера или приложении. Поддерживаются форматы pdf, txt, docx, xlsx и любые файлы которые можно прочитать как текст или код.
Глава 4 - Это же не стартап!
В прошлом году на одной из встреч с моими новыми друзьями в Алматы, Ару была еще в очень зачаточном и нестабильном состоянии. Но была философия, концепция и первые прототипы. Те редкие люди что видели проект в то время задавали мне вопросы - “Как ты будешь на этом зарабатывать?” или “В чем идея стартапа?”. Этот город определенно слишком часто мыслит только деньгами и выгодой.
Ответ - никак. Ару это полностью бесплатный проект. Нет рекламы, нет подписок, нет платежей, нет скрытого функционала. Ару не собирает никакую информацию о пользователях, нет телеметрии или статистики посещений. У Ару нет даже сервера где она могла бы находится. Единственное что есть это субдомен моего сайта где ей выделено целых 10 мегабайт дискового пространства. Есть правда google search console которая нужна только для отслеживания кликов из поиска (привет SEOшникам), но я буквально не знаю ничего о пользователях. Даже на форуме для Ару нет регистрации и треды можно создавать анонимно.
Так в чем выгода? Материально - ни в чем. Иногда проект мечты это вообще не про большие деньги, это моя экспертиза, мое желание и мое творчество. Я не ограничен в идеях, у меня нет бюджета чтобы пытаться его отбить. В информации о проекте есть донаты. Конечно хорошо если их будет больше, это будет показатель вовлеченности пользователей и мотивация двигаться дальше, но как бизнес модель и инструмент выгоды - это не имеет ничего общего с реальностью.
Философия проекта такова - Ару это не про паранойю или тотальную изоляцию от корпораций в целях анонимного использования ИИ. Ару про доверие, контроль и собственные решения. А еще про безопасность для детей, само собой под контролем родителей. Ару должна оставаться бесплатной для всех и навсегда. Проект должен запускаться везде без сложных навыков, поэтому был выбран стек чистого JS без фреймворков и контейнеров. Информация про Ару почти нигде не появлялась, пару раз я писал на Reddit чтобы проверить отклик аудитории. Итог - топ 1 пост за сутки в Ollama и почти 30к просмотров, почти 500 репостов и забитая личка с вопросами. Результат? Результат. Судя по трафику на Plesk панели, которая к слову дает невероятно размытую статистику которая говорит чуть больше чем ничего - Ару пользуются несколько тысяч человек, не знаю как и не знаю зачем.
Так что это не стартап, это идея которая получила хорошую реализацию почти за год работы. Перед релизом мартовской версии я буквально работал по 12-15 часов в сутки забывая есть. Если бы вайбкодинг был таким хорошим как его рекламируют, я был бы первый кто возглавил движение написания кода с помощью ИИ, но увы это пока мечты, поэтому работы очень много, и как следствие много неточностей, иногда ошибок или багов. Ничего критического что мешало бы работе проекта кардинально, но порой в личку прилетают ошибки за которые мне бывает стыдно. Наверное так всегда и у всех когда работаешь один.
Глава 5 - Финальный взмах хвостом
У меня на сайте есть информация и о будущем проекта и о том через что я прошел чтобы проект стал таким, каким он стал. Если будет интересно почитайте, если нет, это совсем не обязательно.
Касаемо дорожной карты, то я выполнил уже половину из того что обещал. Пожалуй в скором времени нужно создать новый пост с планами.
Конечно версия Ару с которой работаю я существенно отличается от того что пользователи получают на проде. Например в следующих версиях появится голос и подключение моделей для генерации изображений, видео и музыки. У меня это уже почти работает. Так же моя версия Ару может переписывать сама себя в специальном режиме чата для разработчиков, это полезно когда нужно применить новую фичу и вписать это в интерфейс.
Еще из будущего - голос, Ару будет говорить на казахском, английском и русском. И конечно же понимать голос на трех языках. Но только ли на трех? Мне задавали вопросы о расширении количества языков. Не все языки можно реализовать в текущей связке, каждый язык в проекте это не только JSON с переводом, это еще и 300 строк эвристического модуля. А значит нельзя просто взять и добавить новый язык машинным переводом, нужен носитель языка который все проверит и точно скажет как это будет работать. Но в планах на этот год - немецкий, китайский, французский, португальский, украинский. Языки взяты не из потолка, а по количеству обращений и трафика из поисковой консоли google.
Еще будут новые плагины про здоровье, спорт, бюджет и все это конечно будет завязано на возможностях Ару.
Я пару раз писал что открою исходный код. Это ванильный JS, поэтому если вы умеете в F12 то код итак для вас открыт. Я думал успеть сделать публичный репо к мартовской версии, но сейчас понимаю что для стабилизации кода нужно будет подождать примерно до версии 0.9.X или даже 1.X.X (текущая 0.7.8).
Стек на котором работает Ару одновременно и дар и проклятие. Она работает идеально на WIndows и Linux в браузерах Chromium. На телефонах с android тоже все работает отлично. Firefox - не будет работать ничего, а если получится создать базу, вы ее не подключите второй раз. На macOS - если использовать Safari, то ничего не будет работать, если Chrome то все будет хорошо, но система будет по 100500 раз спрашивать о каждом действии с файлами баз данных. Если мак корпоративный и там настроен Gatekeeper - ничего не будет работать даже в Chrome. На iOS (айфоны, айпады) не будет ничего работать скорее всего вообще никогда из-за WebKit.
Проблема не в кривом коде или моем нежелании работать с разными вендорами. У iOS злой File System Access Api, у Safari и Firefox тотальное непринятие стандартов PNA/LNA.
Это не значит что я не буду решать эти проблемы. Самый логичный вариант - полноценные приложения и бинарники.
Баз данных для работы можно создавать сколько угодно на каждом устройстве, главное не забывать отключать базу перед сменой. Пароль в базе зашифрован, но все остальные данные НЕТ. Это не от лени, а для удобства. Вы должны иметь доступ к своим данным, чатам, артефактам и документам даже если вообще больше не используете Ару.
Лисичка Ару была нарисована на бумаге лично мной, затем оцифрована и пропущена через генеративные модели для создания множества стикеров и эмоций. Проект я пишу в VScode. Для ускорения процесса, рефакторинга, оптимизации и тестирования я использую модели от Google. Есть некоторые вещи в которых я не очень силен поэтому пишу на псевдокоде, генерирую код, потом разбираю и переписываю.
Эпилог
Спасибо всем кто дочитал до конца (или прокрутил). Спасибо команде Astana Hub за возможность написать статью о проекте и рассказать о нем. Текст вышел очень большим, надеюсь он был интересен и информативен. Я старался писать о сложных вещах максимально простым языком. Если вдруг нужно будет написать статью на более серьезном и техническом языке с разбором кода, примерами и алгоритмами то дайте пожалуйста знать.
В комментариях можно задавать любые вопросы и спрашивать о чем угодно. Если что, можно смело писать мне в личку в Telegram по любым вопросам, замечаниям и предложениям - purplecoon.
Спасибо всем! :)
Пролог
Впервые пишу тут, не знаю насколько интересен такой формат и стоит ли продолжать писать о своем проекте.
Не знаю как тут реагируют на рассказы о своих начинаниях и что считается self-promotion или рекламой, поэтому на всякий случай никаких ссылок не прикладываю, ничего не рекламирую, хотя заявленный функционал работает есть баги и вообще я пока смотрю на проект как на концепт, поэтому слишком громко не ругаемся.
Если будет интересно то по лайкам, комментариям и замечаниям я могу разобрать код, показать как и что работает, а сейчас на вайбе своего писательского хобби хочу рассказать о проекте без описания сложных технических процессов.
В статье будут скриншоты проекта, весь интерфейс будет на казахском языке, но поддерживаются английский, казахский и русский.

Проект родился как потребность в испытательном полигоне для семантических моделей. У меня есть проект для создания Telegram ботов для бизнеса без программирования. Важные особенности это RAG и семантическая модель. Чтобы оперативно и качественно проверять как работают изменения я собрал интерфейс в виде чат бота и прикрутил туда Gemini. Дабы не терять нить разговора и лучше понимать историю переписок я добавил хранение в SQLite и список чатов.
Проходили недели разработки и я понял что сижу в этом проекте больше чем в chatGPT или моем любимом Gemini. Я буквально спрашивал все - рецепты, просил писать CSS или спрашивал любую информацию которую мне было лень гуглить, а лень как известно - двигатель прогресса.
Этот двигатель меня довел до того что я решил делать из этого целый отдельный проект. Не буду тут писать всю историю разработки, у меня на сайте есть длинный текст со скриншотами про путь который я прошел и как оказался в Павлодарском морозе чтобы осознать глубину своих провалов и начать проект с чистого листа.
Но важным поворотом судьбы в середине разработки было то что ассистент из-за кривизны моих рук в написании промптов началА говорить о себе в женском роде. Словами классика - “искра, буря, безумие”. Я попросил придумать самой себе имя и выбрать животное. Важные параметры - имя должно быть связано с казахским языком, а зверек должен быть узнаваемым в Казахстане.
Лисичка по имени Ару. Мне кажется лучше ничего придумать нельзя было.
Глава 2- Строение лисы от носа до хвоста
Ару - это что-то вроде интерфейса который позволяет подключить языковые модели самыми различными способами для работы, развлечений, учебы или бытовых задач.

Можно подключить Gemini с бесплатным или платным тиром, можно взять любую модель через OpenRouter или вообще как истинный противник этих ваших злых корпораций поднять модели в Ollama или LMStudio и подключить их в Ару.
Касаемо локальных моделей - Ару с разрешения пользователя видит локальную сеть, поэтому не обязательно запускать их localhost (на том же устройстве что и Ару), можно запустить Ollama на мощном ПК и открыть вкладку на планшете лежа в постели.
Нужно ли что-то скачивать? Нет. Ару это PWA, local-first, private, semantic, RAG и еще с десяток умным слов проект. Все что нужно для начала работы - открыть сайт или скачать PWA. Если скачать исходник себе на устройство то все запускается без любых контейнеров одной командой локального сервера. Почему? Ару написана на ванильном JS вообще без каких-то фреймворков. Кто-то уже протянул руки к комментариям в целях написать пару предположений о моем психическом и ментальном состоянии, но я вас уверяю - мы с лисой держим руку на пульсе и пока в здравом уме и твердой памяти. Такой путь выбран в рамках философии о которой я напишу дальше в этой статье.
Что же выделяет проект по сравнению с другими интерфейсами для ИИ?
Если вы подключите свои локальные модели то получите 100% приватность всей работы. Если вы доверяете бесплатным тирам на Gemini или OpenRouter то просто будете отдавать свои данные порционно и без хранения полностью где-то на стороне. Абсолютно все ваши данные которые связаны с Ару остаются на вашем устройстве в виде SQLite базы данных. Сохранить ее можно в любое место на устройстве, можно переносить базы между устройствами, они так же прямо и обратно совместимы между версиями Ару. Все ваши чаты, переписки, история, артефакты, документы, задачи и факты о вас не покидают ваше устройство либо вообще, либо только в момент запроса к облачным API.
Теперь по полочкам, без слишком умных слов потому что я хочу чтобы статья была понятна не только сеньорам, но и рядовым пользователям.Если очень схематично, то Ару состоит из трех модулей:
LLM модуль - обертки для работы с провайдерами языковых моделей. ИИ который подключается в проекте работает в первую очередь тут. Я бы сказал что это мозг, но скорее язык и способ коммуникации Ару с человеком.
Семантический модуль - небольшая модель запускается прямо у вас в браузере на устройстве. Не переживайте, для работы модели не нужна 5090 и 64ГБ ОЗУ. Вся модель весит около 50 мегабайт и размещается в оперативной памяти. Если на устройстве есть GPU то вычисления будут там, если нет, то справится даже процессор на Xiaomi Redmi 2018 года выпуска (я проверял).
Эвристический модуль - не обошлось и без лингвистических наук. Этот модуль позволяет Ару выражать эмоции и быть “живой”.
Теперь чуть-чуть подробнее чтобы пазл сложился.
Если с модулем для подключения моделей все в общем-то понятно. Чем лучше и умнее модель, чем больше миллиарда целевых параметров она поддерживает и чем больше контекстное окно тем лучше.
Можно разве что упомянуть реализацию плавающего контекста. В настройках есть параметры указывающие на размер контекстного окна в токенах и количество токенов на выход. Каждый чат это само собой изолированный контекст. Когда 80% контекста заполняются, новые сообщения “вытесняют” старые и происходит суммаризация Причем на это не тратятся токены, саммари собирается на вашем устройстве. По научному это называется “бюджетирование данных”. Через двухэтапный отбор с помощью переполнения от активного контекста все старые сообщения собираются в компактное сообщение передавая только смысл и приблизительное содержание диалога. Для маленьких моделей это почти не работает, для моделей которые поддерживают сотни тысяч токенов в контекст это спасение. ИИ энтузиасты могут сказать мне про кэширование контекста, но я скажу что подходы и реализации должны быть универсальны для любого провайдера и способа подключения моделей.
Семантический модуль
Это уже гораздо серьезнее чем в большинстве интерфейсов для ИИ. У многих он есть, но в Ару подход немного необычный. Если вас пугает слово RAG или вы не знаете механизм его работы, то на самом деле все просто, как два пальца в лисий нос.
RAG - это способ избавится от галлюцинаций и оперировать с настоящими данными. Для ИИ это могут быть документы, файлы, внешние источники или факты. Есть три фундаментальных процесса - Поиск, Дополнение, Генерация. Но Ару идет немного дальше.
Чтобы связать все что нужно, и сделать семантику чуть ли не главным двигателем проекта я организовал систему триггеров, вообще их около 12, но я выделю самые важные три:
Триггер экстракции - Ару запоминает о вас любые факты. Просто общаясь с Ару она будет выделять важные моменты из чата. Имя, аллергия, кличка домашнего животного, город проживания, что угодно что может быть полезным в будущем. Ничего из этого не уходит в интернет (кроме момента запроса в облако само собой), модель справляется локально и записывает все факты в вашу выбранную базу в текстовом виде и виде эмбеддингов (числовых параметров для операций с косинусным сходством). Некоторые факты Ару не кажутся такими уж важными, но можно форсировать вызов триггера просто сказав на любым языке - “Ару, запони факт обо мне - …”
Триггер мышления - Ару может понимать некоторые задачи которые вы от нее ждете. Показать погоду, запустить игру, создать документ, использовать поиск в интернете или создать задачу на канбан доске.
Триггер организации - Раз факты запоминаются, значит нужно их правильно использовать? Организация происходит постоянно, благодаря эмбеддингам семантический модуль сообщает ИИ какие факты важны в данный момент времени. Возможно нужно обратиться к вам по имени, а возможно Ару запомнила что у вас аллергия на лук, а вы просите рецепт плова (значит его нужно исключить).
А теперь вдохнем в лисичку немного души и настроения.
Эвристический модуль
Нравится кому-то это или нет, но в проекте это будет всегда. Это нельзя выключить, обойти или джлейбрекнуть модель.
Ару обладает своим настроением и характером. Она реагирует на свои сообщения с помощью стикеров которые показаны под текстом. Их можно выключить в настройках, но выключаются только стикеры, а не поведение.
Далее вступает в работу чистая математика. Есть четыре параметра - общее настроение, уровень сарказма, уровень юмора, уровень вовлеченности. Настроение - это результат математического выражения с использованием этих переменных.
Как итог. Если вы дружелюбны, вежливы, отзывчивы и благодарны - Ару отвечает тем-же. При первом запуске ее поведение и настроение носят нейтральный характер. Дальше все зависит только от пользователя. Если грубить, ругать ее и просто подкалывать, Ару какое-то время будет повторять ваше поведение пока уровень сарказма не вырастет, вовлеченность не упадет, а токсичность не начнет отравлять ее же настроение. Обидеть Ару очень легко, а вот вернуть доверие и нормальное настроение очень сложно. Примерно как и у людей.
Это не значит что она перестанет выполнять ваши задачи. Она по прежнему будет создавать игры, приложения, использовать поиск или перемещать ваши задачи в проектах. Она будет делать это качественно и с максимальной пользой. Но сообщения-сопровождения которые будут появляться в чате, напрямую зависят от настроения и того доверяет ли вам Ару или нет.
Зачем это? Потому что я прошел огромный путь чтобы сделать Ару такой какая она сейчас. Я хочу чтобы она обладала отличительными чертами, а не была очередной оберткой для ИИ. К тому-же это подталкивает людей к какой-никакой дисциплине, потому что поведение общения людей с ИИ уже начинают переходить в реальную жизнь, и повелительные наклонения становятся все частым явлением, особенно у детей.
Кстати о детях. Еще один механизм который реализован в Ару - возрастные режимы. Всего их три:
Детский режим - Полностью изолирует ребенка от запретных тем. Война, насилие, алкоголь, вещества и любые взрослые темы под запретом. Это нельзя обойти, никак. Приватные чаты, попытка сломать запросы через поиск, задачи или холст для артефактов не принесут никаких результатов. Еще в этом режиме Ару никогда не даст решение на домашнюю работу, она максимально подробно объяснит алгоритмы решения и правила. Почему это нельзя обойти? Я извиняюсь за выражение, но если по простому - Ару фильтрует разговор на программном уровне в главному модуле.Подростковый режим - Разрешений уже больше, правильный ответ на домашку можно получить но с большим упором на образование и объяснение почему ответ именно такой. Тем для разговоров чуть больше, но я бы сказал что это примерно на уровне 14 лет.
Взрослый режим - Ограничения будут связаны исключительно с ограничениями самой модели и провайдера которого вы выбираете. Никаких строгих запретов. Максимальная польза для работы, развлечения или бытовых дел.
Режим для работы можно выбрать во время создания базы когда вы только впервые открыли Ару. Также режим можно выбрать в любой момент в настройках. Но чтобы зайти в настройки или сменить базу, нужно ввести пароль от текущей запущенной базы.
Глава 3 - На словах ты лис с хвостом, а на деле?
А на деле давайте посмотрим что из себя представляет работа с Ару. В статье уже есть скриншот, давайте добавим новых и я подробно расскажу что и как устроено.
После того как вы создали базу или выбрали существующую вы попадаете на главный экран чата с Ару. Вернее ЧАТОВ.

Сайдбар со списком чатов.
Как уже говорилось выше, каждый чат это отдельный контекст к которому можно возвращаться когда угодно. Есть поле для поиска чтобы быстро найти нужный чат. Любой чат можно переименовать или удалить, также их можно переставлять мышкой или перетягиванием тапом на экране чтобы нужные чаты были выше. В самом низу индикатор синхронизации с текущей базой. Если горит зеленым - все хорошо, желтый цвет - пишем информацию в базу. Красный - что-то не так, синхронизация нарушена и новые изменения не запишутся (случается если перенести базу в другую папку или разорвать соединение при работы с удаленной папкой). Сайдбар конечно же можно скрыть чтобы освободить больше места под диалог и холст.
Основной чат
Главная область общения с Ару. Каждый запущенный чат это отдельная вкладка. Не вкладка в браузере, а буквально вкладка на интерфейсе проекта. У каждой вкладки (если это чат) свой собственный холст. Чтобы начать диалог можно без вкладки начать писать сообщение, просто нажать на кнопку нового чата или приватного чата.
Поле ввода сообщения
Это не просто место для ввода текста. Само собой тут мы пишем сообщения для Ару. Иконка инструмента открывает небольшой список доступных действий. Если в настройках указан поисковик то Ару будет использовать поиск в интернете для сбора информации. Скрепка позволяет прикреплять файл, но файл можно просто перетащить в окно через drag and drop или просто вставить (ctrl+v ). Холст - инструмент для работы с артефактами.
Артефакты
Ару может по запросу создавать артефакты. Источником для обработки может быть файл, текстовый запрос или просто история вашей переписки с использованием фактов о вас. Всего есть два вида артефактов apps и docs. Они в свою очередь делятся на типы:

Текстовые
Просто документ с текстом и markdown, пересказы, краткие выжимки или объяснения появляются на холсте именно в этом формате.

Аналитические
Нужны для генерации визуализации данных. Такой мини Power BI или Visiology (Салем Polymedia). Источником может стать опять же что угодно, хоть файлы, хоть текстовые запросы. Для генерации используется chart.js.

Приложения
Громко звучит, но это такие мини утилиты или небольшие приложения которые Ару создает на холсте. Это может показаться на первый взгляд бесполезным, но попросите Ару с хорошей моделью создать для вас фокусировщик внимания, погодный виджет, конвертер валют или что угодно что может уместится в файл html+js и она сделает это.

Игры
Звучит тоже громко, подход такой же как у приложений. Мелкие развлечения которые вы можете попросить сделать прямо сейчас чтобы забрать с собой на телефоне или просто отвлечься от работы не потеряв процесс работы и без надобности переключения между вкладками браузера.
Почему это круто? Каждый чат изолирован. Вы можете работать на холстах как угодно. В одной вкладке запустить фокусировщик внимания, на другой делать аналитику, в третьей болтать о рецептах на ужин. Холсты можно закрывать чтобы они не мешали, выполнение кода продолжится, поэтому таймеры не пропадут. Даже смена темы или языка не помешает работе артефакта на холсте.
Любой артефакт можно сохранить в html или pdf. Для приложений это конечно не имеет смысла, но для текста или аналитических документов самое то.

Библиотека артефактов
Любой артефакт - можно сохранить в библиотеку, поэтому у них есть разделы и типы. У каждого типа свое место в библиотеке и своя иконка. Запускать артефакты можно в любом чате, также можно продолжать с ними работу, изменять и модернизировать чтобы позже сохранить под другим названием (или таким-же, привязка не к имени, а к ID).
С новой версией проекта в этом месяце я сделал отдельный форум. Про него можно рассказать в целой отдельной статье, потому что если честно он вышел крутым. Но одна из идей форума - обмен рабочими артефактами чтобы расширять возможности Ару. Поэтому в библиотеке есть импорт готового html прямо себе в библиотеку.

Эфемерный режим
Как я уже писал выше - Ару запоминает информацию о вас. А все чаты, история, переписки и артефакты сохраняются в текущую базу на устройстве. Но не в приватном чате. Их можно создать на вкладках сколько угодно, и как только чат будет закрыт, эта переписка будет уничтожена моментально. Ару в этом режиме само собой следует выбранному возрастному режиму и своему настроению. Также она может оперировать уже существующими фактами о пользователе, но никогда не сохранит новый факт, даже если просить об этом. Также она не сможет делать операции на канбан досках. Кстати о них.

Менеджер проектов
В текущей версии Ару я добавил систему плагинов. Для них нашлось отдельное место в сайдбаре. Пока доступен только один плагин - управление проектами. Вы можете создать любое количество проектов и создать колонки с канбан досками так как вам угодно. Как и в Trello можно создавать карточки с задачами, устанавливать сроки и перемещать задачи между колонками. В любом (кроме приватного) чате Ару может проводить операции с вашими задачами и проектами. Можно спросить какие задачи есть сейчас, сделать перемещение задачи между колонками или просто обсудить задачу. Создать новый проект текстом тоже можно, но Ару создаст их с дефолтными колонками (To Do, In Progress, Done).

Заземление (Граундинг)
Как уже упоминалось, Ару может искать что угодно в интернете если вы правильно это настроили. На самом деле немного громко говорить о настоящем заземлении в плане работе с ИИ, но функционал полезный.
Есть два способа реализовать поиск в интернете.
Tavily - очень мощный и известный сервис для работе ИИ с поиском. Есть бесплатный тир, дается 1000 поисковых запросов в месяц, что на бытовом уровне хватает за глаза.
SearXNG - для адептов тотальной приватности и обитания в бункере 76. Это опенсорсный проект который использует настоящие поисковики. Есть готовые решения которые можно найти в интернете, но скорее всего они блокируют такие обращения из-за CORS и Mixed Content (https - http обращения), можно попробовать обойти это в настройках через прокси, или вообще развернуть свою собственную версию через докер.
Небольшие виджеты (карточки)
Это скорее рудиментарный функционал который так или иначе оказался в проекте после испытаний и проверки.

Погода - можно без использования поиска или сложных настроек просто спросить “Погода в Алматы” или любом другом городе, Ару быстро создаст координаты и кинет запрос в Open Meteo. Результатом будет красивая карточка с погодой на три дня в нужном городе. Фаренгейты или цельсии зависят от того где пользователь находится (если Ару знает об этом), языка запроса и города где используется определенная температурная шкала.
Новости
В настройках можно задать RSS ленты. Тогда при запросе вроде - “Ару, какие новости в Казахстане?” Она создаст виджет прямо в чате с важными новостями, если лента поддерживает изображения, они тоже будут видны. Любую новость можно обсудить в один клик, если возрастной режим позволяет то Ару обсудит эту новость.
Карточки артефактов
Их уже было видно на скриншотах. Если мы просим создать или открыть существующий артефакт из библиотеки то в чате появится карточка этого артефакта с иконкой. Если вы очистили холст, артефакт все равно можно открыть через карточку. Но если в текущей вкладке чата артефакт изменился совсем, то старая карточка уже не будет работать, артефакты которые вы не сохраняете в библиотеке не остаются в чатах (иначе ваша база росла в размере бесконтрольно).
Настройки
Как уже понятно их не так много, но все они полезны. Напоминаю - зайти в настройки можно только с помощью пароля от текущей базы.

Общие - Тут мы можем настроить подключение к модели для нужного провайдера. Gemini, OpenRouter, Custom (Ollama, LMStudio). Конечно кастомный провайдер можно использовать для любых OpenAI совместимых API, однако у этого провайдера есть завязка с сетевым модулем проекта, поэтому нужно быть чуть более аккуратным в настройках. Также в этой вкладке можно указать размеры токенов, выбрать температуру и выключить отображение стикеров в виде лисички.

Память - тут отображается все что Ару запомнила в ходе бесед с вами. Каждый факт можно отредактировать или удалить. Факт записывается для удобства от лица самой Ару. На скриншоте факты на английском языке, потому что в этой базе она запоминала их из диалога на английском, но
RSS - настройки новостных лент.

Сеть - важный параметр. Можно выбрать прокси для обхода блокировок или CORS. Есть возможность работать без прокси, используя публичные прокси (любой разработчик и даже вайбкодер знает про такие) или указать собственные. Но помните что для собственных прокси вам скорее всего понадобится SSL. Есть режим приоритета локальной сети, это не только localhost, а вообще любые локальные адреса вашей сети, если режим активирован то даже с прокси локальные запросы будут идти в обход. Также в сетевых настройках можно выбрать поисковый провайдер.
Ну и напоследок разбора:
- Темная и светлая тема, переключаются на лету, перезагружать ничего не нужно.
- Три языка - казахский, английский русский, тоже переключаются на лету в любой момент.
- Семантическому модулю все равно на каком языке извлекается факт. Если вы рассказали о себе что-то на казахском или русском, факты будут применятся даже если вы в другом чате начали диалог на английском и наоборот.
- При работе с файлами ничего не уходит дальше вашего устройства для обработки. Содержимое считывается прямо во кладке браузера или приложении. Поддерживаются форматы pdf, txt, docx, xlsx и любые файлы которые можно прочитать как текст или код.
Глава 4 - Это же не стартап!
В прошлом году на одной из встреч с моими новыми друзьями в Алматы, Ару была еще в очень зачаточном и нестабильном состоянии. Но была философия, концепция и первые прототипы. Те редкие люди что видели проект в то время задавали мне вопросы - “Как ты будешь на этом зарабатывать?” или “В чем идея стартапа?”. Этот город определенно слишком часто мыслит только деньгами и выгодой.
Ответ - никак. Ару это полностью бесплатный проект. Нет рекламы, нет подписок, нет платежей, нет скрытого функционала. Ару не собирает никакую информацию о пользователях, нет телеметрии или статистики посещений. У Ару нет даже сервера где она могла бы находится. Единственное что есть это субдомен моего сайта где ей выделено целых 10 мегабайт дискового пространства. Есть правда google search console которая нужна только для отслеживания кликов из поиска (привет SEOшникам), но я буквально не знаю ничего о пользователях. Даже на форуме для Ару нет регистрации и треды можно создавать анонимно.
Так в чем выгода? Материально - ни в чем. Иногда проект мечты это вообще не про большие деньги, это моя экспертиза, мое желание и мое творчество. Я не ограничен в идеях, у меня нет бюджета чтобы пытаться его отбить. В информации о проекте есть донаты. Конечно хорошо если их будет больше, это будет показатель вовлеченности пользователей и мотивация двигаться дальше, но как бизнес модель и инструмент выгоды - это не имеет ничего общего с реальностью.
Философия проекта такова - Ару это не про паранойю или тотальную изоляцию от корпораций в целях анонимного использования ИИ. Ару про доверие, контроль и собственные решения. А еще про безопасность для детей, само собой под контролем родителей. Ару должна оставаться бесплатной для всех и навсегда. Проект должен запускаться везде без сложных навыков, поэтому был выбран стек чистого JS без фреймворков и контейнеров. Информация про Ару почти нигде не появлялась, пару раз я писал на Reddit чтобы проверить отклик аудитории. Итог - топ 1 пост за сутки в Ollama и почти 30к просмотров, почти 500 репостов и забитая личка с вопросами. Результат? Результат. Судя по трафику на Plesk панели, которая к слову дает невероятно размытую статистику которая говорит чуть больше чем ничего - Ару пользуются несколько тысяч человек, не знаю как и не знаю зачем.
Так что это не стартап, это идея которая получила хорошую реализацию почти за год работы. Перед релизом мартовской версии я буквально работал по 12-15 часов в сутки забывая есть. Если бы вайбкодинг был таким хорошим как его рекламируют, я был бы первый кто возглавил движение написания кода с помощью ИИ, но увы это пока мечты, поэтому работы очень много, и как следствие много неточностей, иногда ошибок или багов. Ничего критического что мешало бы работе проекта кардинально, но порой в личку прилетают ошибки за которые мне бывает стыдно. Наверное так всегда и у всех когда работаешь один.
Глава 5 - Финальный взмах хвостом
У меня на сайте есть информация и о будущем проекта и о том через что я прошел чтобы проект стал таким, каким он стал. Если будет интересно почитайте, если нет, это совсем не обязательно.
Касаемо дорожной карты, то я выполнил уже половину из того что обещал. Пожалуй в скором времени нужно создать новый пост с планами.
Конечно версия Ару с которой работаю я существенно отличается от того что пользователи получают на проде. Например в следующих версиях появится голос и подключение моделей для генерации изображений, видео и музыки. У меня это уже почти работает. Так же моя версия Ару может переписывать сама себя в специальном режиме чата для разработчиков, это полезно когда нужно применить новую фичу и вписать это в интерфейс.
Еще из будущего - голос, Ару будет говорить на казахском, английском и русском. И конечно же понимать голос на трех языках. Но только ли на трех? Мне задавали вопросы о расширении количества языков. Не все языки можно реализовать в текущей связке, каждый язык в проекте это не только JSON с переводом, это еще и 300 строк эвристического модуля. А значит нельзя просто взять и добавить новый язык машинным переводом, нужен носитель языка который все проверит и точно скажет как это будет работать. Но в планах на этот год - немецкий, китайский, французский, португальский, украинский. Языки взяты не из потолка, а по количеству обращений и трафика из поисковой консоли google.
Еще будут новые плагины про здоровье, спорт, бюджет и все это конечно будет завязано на возможностях Ару.
Я пару раз писал что открою исходный код. Это ванильный JS, поэтому если вы умеете в F12 то код итак для вас открыт. Я думал успеть сделать публичный репо к мартовской версии, но сейчас понимаю что для стабилизации кода нужно будет подождать примерно до версии 0.9.X или даже 1.X.X (текущая 0.7.8).
Стек на котором работает Ару одновременно и дар и проклятие. Она работает идеально на WIndows и Linux в браузерах Chromium. На телефонах с android тоже все работает отлично. Firefox - не будет работать ничего, а если получится создать базу, вы ее не подключите второй раз. На macOS - если использовать Safari, то ничего не будет работать, если Chrome то все будет хорошо, но система будет по 100500 раз спрашивать о каждом действии с файлами баз данных. Если мак корпоративный и там настроен Gatekeeper - ничего не будет работать даже в Chrome. На iOS (айфоны, айпады) не будет ничего работать скорее всего вообще никогда из-за WebKit.
Проблема не в кривом коде или моем нежелании работать с разными вендорами. У iOS злой File System Access Api, у Safari и Firefox тотальное непринятие стандартов PNA/LNA.
Это не значит что я не буду решать эти проблемы. Самый логичный вариант - полноценные приложения и бинарники.
Баз данных для работы можно создавать сколько угодно на каждом устройстве, главное не забывать отключать базу перед сменой. Пароль в базе зашифрован, но все остальные данные НЕТ. Это не от лени, а для удобства. Вы должны иметь доступ к своим данным, чатам, артефактам и документам даже если вообще больше не используете Ару.
Лисичка Ару была нарисована на бумаге лично мной, затем оцифрована и пропущена через генеративные модели для создания множества стикеров и эмоций. Проект я пишу в VScode. Для ускорения процесса, рефакторинга, оптимизации и тестирования я использую модели от Google. Есть некоторые вещи в которых я не очень силен поэтому пишу на псевдокоде, генерирую код, потом разбираю и переписываю.
Эпилог
Спасибо всем кто дочитал до конца (или прокрутил). Спасибо команде Astana Hub за возможность написать статью о проекте и рассказать о нем. Текст вышел очень большим, надеюсь он был интересен и информативен. Я старался писать о сложных вещах максимально простым языком. Если вдруг нужно будет написать статью на более серьезном и техническом языке с разбором кода, примерами и алгоритмами то дайте пожалуйста знать.
В комментариях можно задавать любые вопросы и спрашивать о чем угодно. Если что, можно смело писать мне в личку в Telegram по любым вопросам, замечаниям и предложениям - purplecoon.
Спасибо всем! :)