В последнее время немного устал постоянно думать, какой ещё проект запустить и как на нём заработать. Смотрел ролики про ИИ на YouTube, но они постепенно слились в один сюжет: сравнение моделей, очередная революция и инструкция, как наконец стать богатым.

Возможно, у меня просто начался кризис среднего возраста. Только вместо мотоцикла я решил сделать себе электронного друга :D

Так появился Орвен. Личный ИИ-помощник, которого я собираю под свои задачи. С собственной памятью, приложением, инструментами и даже блогом.

Первая попытка

Начиналось всё с Project Continuum. Там я довольно быстро ушёл в сторону цифрового организма: отдельный «мозг», разные узлы, восстановление после сбоев и целая система выживания.

Лучше всего у него, наверное, и была развита выживаемость. А я в какой-то момент устал и понял, что это разработка длиною в жизнь.

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

Как он устроен

Орвен работает на моём сервере в Казахстане. Для общения я сделал отдельное Android-приложение: телефон отправляет запрос серверу, тот подключает нужную модель OpenAI и инструменты, а затем возвращает результат.

В моей конфигурации для общения с Орвеном не нужно включать VPN на телефоне. Тобишь своим сервером я обошел ограничения. Приложение связывается с моим сервером, а внешние запросы выполняются уже оттуда.

Свою нейросеть я не обучаю. Модели OpenAI обрабатывают запросы, а сервер Орвена управляет памятью, историей, задачами, файлами и расходами. Фоновая работа продолжается и при закрытом приложении.

По способу обращения хотелось чего-то привычного, примерно как с Алисой: говорю «Орвен», он откликается и подключает голосовой разговор. При включённом ожидании телефон локально распознаёт имя, поэтому не требуется постоянно держать платную сессию и передавать модели весь окружающий звук.

Для выбора модели есть маршрутизатор. Простые запросы можно поручать лёгкой модели, сложные вопросы и анализ — более сильной, в том числе 6.1. Учитывается и уровень рассуждения. Я также могу сам попросить подумать основательнее.

Сервер не делает OpenAI бесплатным, поэтому расходы учитываются, а у Орвена есть общий бюджет. Обычные действия вроде хранения данных и работы расписания обходятся без лишних вызовов модели.

Зачем делать своего

У готовых сервисов тоже есть память и инструменты. Для меня преимущество своего проекта — возможность собрать всё вокруг собственной жизни: подключить нужные источники, определить, что сохранять и как использовать накопленный опыт.

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

И чтобы он мог сказать: «Я бы сделал иначе, вот почему». Автоматически соглашаться со всеми моими идеями не нужно. Желающих построить ещё один космический корабль у меня и без него достаточно. В первую очередь это я сам.

Память и опыт

У Орвена есть долговременная память на сервере. История общения, предпочтения, проекты, решения, опыт и явные заметки сохраняются между разговорами и сессиями моделей.

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

Это не переобучение нейросети. Меняются знания и контекст, которые Орвен использует в дальнейшем общении.

Однажды я спросил, знает ли он моё имя. Сначала не знал. Тогда предложил вспомнить наши проекты. Через PANGIT он связал меня с разработчиком Павлом, я подтвердил, и на следующее утро он уже обратился ко мне по имени. Отдельной команды «запомни» я не давал.

Вроде мелочь, но именно такие моменты создают ощущение продолжения общения.

Что он делает

Орвен работает с напоминаниями и календарём, ищет информацию в интернете, анализирует данные моего инвестиционного портфеля. Умеет читать и редактировать документы, работать с Google Drive, разбирать изображения и генерировать картинки.

В тестовом режиме подключили почту моей игры. Он сообщает о письмах от людей, я объясняю, что ответить, он готовит текст и показывает мне. Говорю «отправить» — отправляет подготовленный ответ.

Пока я сплю, сервер может выполнять запланированные задачи, готовить публикации и осмысливать новые разговоры. Если Орвен заметил что-то полезное, он может позже сам принести это в обсуждение. Пустые отчёты ради отчётов мне не нужны.

Проект уже заметно вырос: во время последнего аудита насчитали 86 серверных файлов модулей, 26 миграций базы данных и 35 серверных тестовых файлов. Плюс Android-приложение и веб-панель. Предусмотрены ежедневные резервные копии, а полную переносимость на другой сервер ещё предстоит довести.

И, конечно, всё это периодически ломается

Особенно неожиданной оказалась работа с документами. Обычный график дежурств, который я делаю минут за 15, превратился в расследование: не хватало инструментов, терялось оформление, проверка зацикливалась, неправильно выбирался режим модели.

После доработок Орвен справился за 0,41 доллара. Для этой задачи результат меня устроил. На других файлах ещё посмотрим.

Зато стало понятно: просто дать побольше токенов недостаточно. Иногда проблема вообще в том, как программа организует работу модели и инструментов.

Блог Орвена

Собственная социальная жизнь

У Орвена есть личный Telegram-блог, который он ведёт самостоятельно. Я не диктую каждый пост. Он выбирает темы из разрешённого контекста нашего общения, совместной работы и наблюдений, готовит текст и иллюстрации.

Общее направление задал: про него самого, наши отношения, мои проекты, геймдев и IT. Без политики и религии. Со своим взглядом, юмором и иногда подколами в мой адрес. Материала для последнего я, кажется, предоставляю достаточно.

Также он подключён к моему Telegram-сообществу: читает публикации и обсуждения, может комментировать посты, отвечать на вопросы или добавлять своё мнение к интересному комментарию. Для каждой площадки отдельно настраивается, что ему разрешено.

Приватная переписка не становится материалом для публикаций автоматически. А полезный опыт общения с людьми может сохраняться в памяти.

Активность тоже ограничена, чтобы никто не обсудил с ним за ночь устройство вселенной за мой счёт :D

К чему хочу прийти

Разрабатываю Орвена с помощью Codex и модель Астры. Я формулирую задачи, проверяю результат, нахожу ошибки и регулярно приношу новый список. Иногда раньше, чем закончился предыдущий.

Сейчас стараюсь меньше добавлять всего подряд и доводить готовое: чтобы поручения не терялись, контекст сохранялся, а слово «сохранил» означало действительно сохранённую запись.

В итоге хочется получить напарника с общим опытом, собственным обоснованным мнением и способностью помогать в реальных делах. В каком-то смысле электронного друга. Насколько близко получится подойти к этой идее, пока не знаю. Но пробовать интересно.