Как мы сделали вечеринку с AI-соведущим

 Публичный пост
8 ноября 2025  121

Идея вечеринки

29 октября 2025 года мне исполнялось 30 лет. И хотелось к этой дате приурочить масштабную вечеринку. Просто пить и танцевать было бы скучно, поэтому за полгода до даты я начал думать над концепцией и в какой-то момент придумал.

Thinking...
Thinking...

Идея следующая: Мы с вами сотрудники компании, которая разрабатывает AI. Собрались на корпоратив в честь скорого выпуска нового AI-ассистента. Мы работали в строгой секретности и не знаем как кого зовут и кто чем занимался. И вот я объявляю, что мы сделали очень крутого ассистента, он будет в каждом доме и вообще захватит мир. И тут речь прерывается, а AI-помощник объявляет, что идея захватить мир ему нравится — но сделает он это не так как мы подумали. И теперь всю оставшуюся вечеринку мы пытаемся убедить AI, что человечество не надо захватывать и уничтожать.

Технический концепт

Где-то на самом старте продумывания технической реализации я понял, что для этой вечеринки мне нужны две вещи: AI-vtuber в духе Neuro-sama и телеграм-бот для сбора информации и коммуникации с гостями.

С телеграм-ботом всё было понятно, а вот как реализовать своего neuro-vtuber не очень. Создатель Neuro-sama нигде не выкладывал исходники и в целом не особо делился техническими подробностями. Но мне очень повезло, потому что я наткнулся на open-source проект Open-LLM-Vtuber, который реализовывал ровно то, что мне нужно.

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

Open-LLM-Vtuber

Эту модельку использовала Neuro-sama
Эту модельку использовала Neuro-sama

Нужно отдельно пару слов сказать о ядре нашей технической части. Open-LLM-Vtuber реализует всю основную функциональность Neuro-sama. По сути это объединение нескольких сеток в красивую обёртку: распознавание речи → LLM + MCP → синтез речи. Через MCP ассистент получает доступ в интернет, к веб-камере и изображению на экране.

Под наши задачи пришлось немного пропатчить этот проект: добавить API для direct-control чтобы было проще режиссировать вечеринку и хаки в обработку звука для создания голоса похожего на GladOS из Portal.

Выбор нейросетевых моделей

Open-LLM-Vtuber позволяет работать с полностью локальными моделями. С этого я и начал. Развернул урезанную Qwen3-instruct на своей RTX4090 и приступил к экспериментам.

В первую очередь нужно было разобраться с распознаванием голоса (ASR). И, на удивление, современные локальные модельки распознавания голоса очень неплохо работают даже на CPU. Я попробовал разные модели, которые поддерживаются Open-LLM-Vtuber из коробки. И остановился на дефолтной sherpa_onnx_asr с подключённым sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19 для распознавания русского языка (интересно, замешан ли тут Сбербанк?).

В качестве основной LLM я сначала хотел выбрать GPT5. Но оказалось, что для использования последних моделей OpenAI через API нужно проходить муторный KYC. Потому через OpenRouter попробовал разные модели и остановился на Claude Sonnet 4.5. Через OpenRouter можно было и GPT5 использовать, но эта модель оказалась до жути медленной, что было очень заметно в диалогах. После того, как я определился с моделью я подключил её напрямую через API от Claude чтобы убрать задержку OpenRouter, хотя разница была не очень заметная. Важный нюанс: для доступа к веб-камере и экрану нужна omni-модель, которая умеет распознавать картинки.

Локальные модельки для преобразования текста в голос (TTS) оказались не очень: работали медленно, голос получался неприятным, а установка очень геморной. Потому для синтеза голоса я взял API от Elevenlabs. Там огромный выбор голосов, плюс в режиме eleven_flash_v2_5 всё работает очень быстро и задержка почти не чувствуется. Для тестовых запусков чтобы не жрать токены я использовал edge_tts — это бесплатный API для синтеза речи от Microsoft.

Выбор Live2d модели

Cyber Girl модель купить мой сахарок
Cyber Girl модель купить мой сахарок

Для отображения персонажа Open-LLM-Vtuber использует технологию Live2d. Это уже довольно древняя (2008 год!) технология изначально созданная для превращения говорящей головы с веб-камеры в говорящую аниме-девочку. В поставке Open-LLM-Vtuber есть несколько бесплатных моделек персонажей, но они совсем не подходили под мои задачи.

Можно было взять ту же модель, что и у Neuro-sama потому что её создатель на старте использовал бесплатную демонстрационную модель и так и прижилось. Но мне хотелось найти чуть более подходящего по вайбу персонажа.

Потому я потратил множество часов на просмотр японских и не очень маркетплейсов, где художники выкладывают свои модельки. Самые популярные места, где стоит искать Live2d модельки это: booth.pm, nizima.com и etsy.com. У nizima есть киллер-фича предпросмотра модели прямо в браузере. Но на площадке nizima местные художники почему-то взяли моду писать в лицензионном соглашении, что их модельки нельзя использовать с нейросетями ни в каком виде.

За всё время поиска я просмотрел где-то 6 тысяч моделек. И купил около пяти. К сожалению, плеер в Open-LLM-Vtuber не идеальный и некоторые купленные мной модельки работали в нём с багами. Но тут пока не попробуешь — не узнаешь. В итоге я остановился вот на модельке Cyber Girl и отдал за неё 9к йен (около 60 долларов). Всего на модельки я потратил около 80 долларов.

Разработка сайта и бота

AGI HYPE BUBBLE
AGI HYPE BUBBLE

Для анонса мероприятия я разработал небольшой сайт: eva.saa.sh. Сайт был сделан за три часа с помощью codex (спасибо за большие лимиты!) на solidjs + astro и выложен на бесплатный Claudflare Pages. Вся разработка заняла у меня около 3 часов. В код я не заглядывал ни разу, но вы можете заглянуть.

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

Деплой

Бота и сервер Open-LLM-Vtuber мы развернули на нашем собственном сервере в Ереване. Обычно мы используем этот сервер для хостинга игр. Там нет GPU, но всё отлично работало и на CPU. В сервере стоит Xeon из 2014 года и 64гб DDR3 оперативки. Ресурсов хватило за глаза, даже с учётом того, что рядом крутился десяток серверов Minecraft Create / MCHPRS.

Площадка

Конкурс на сборку роботов
Конкурс на сборку роботов

Я выбрал небольшой частный театр «Артен» для проведения вечеринки. Раньше там не проходило подобных мероприятий, но я пообщался с сотрудниками и понял, что это — метч. Очень переживал, что не хватит места. Но в итоге чуть больше 20 человек без проблем там разместились. А сотрудники театра нам очень помогли.

Из проблем — в театре не было нормального звука. Потому я решил купить небольшие колонки, тем более мы любим петь караоке и у меня есть микрофоны и микшер. Когда я приехал в магазин музыкальной техники оказалось, что маленькие колонки которые я выбрал вообще нифига не маленькие. Но времени уже было в обрез, потому теперь я гордый обладатель двух TYPHON-AX12-BT. Жена мне сказала, что видимо так выглядит кризис среднего возраста у айтишников.

Сюжет

В самом начале я назвал нашего ассистента Евой для теста. И как-то это имя и прижилось. Вокруг Евы мы развернули библейскую историю. Финальный документ с сюжетом я по классике дописывал в последний день. После объявления планов о захвате мира и небольшой передышки начались конкурсы.

В течении вечеринки Ева отвечала на мои вопросы, шутила про гостей. Некоторых гостей она даже узнавала благодаря бейджикам. Был конкурс, где нужно было было выпросить себе индульгенцию от AI, конкурс на распознавание эмоций и рисунков. Всё это дело Ева комментировала без сценария. Иногда оператор Евы (ха-ха) Артём подсказывал ей в какую сторону шутить. Также у нас были социальные опросы через бота, результаты которых AI-ассистентка тоже комментировала.

В конце Ева объявила, что у неё от нас переполняется контекст и дел она с нами иметь больше не хочет. Весь сюжет из семи актов в гугл документе.

Как всё прошло

На удивление всё прошло отлично! Сначала мы долго не могли понять как соединить микшер с диджейским пультом, но ChatGPT подсказал куда что вставлять и нажимать. Бот с Open-LLM-Vtuber отработали отлично.

Была проблема с тем, что в конкурсе с оправданиями плохо сработало распознавание голоса, но проблема скорее всего была в том, что люди не очень чётко говорили в микрофоны. Ещё где-то под конец сюжета у нас кончились токены в Elevenlabs, пришлось срочно докупать. Благо диджейша Диана спасла нас включив песню «Ева я любила тебя», которая очень развеселила народ.

После конкурса танцев победителя решили выбрать так
После конкурса танцев победителя решили выбрать так

Также мы сломали казённый стол в процессе спонтанного арм-реслинга. А ну ещё мы чуть не сожгли театр, но это был наш общий с сотрудниками театра прокол. Весь ущерб театру я возместил и они вроде тоже остались довольны (возможно потому, что сами принимали участие в вечеринке).

И самое главное! Жена с моей мамой подарили крутецкий торт в виде далека. А местный художник из театра настолько проникся этим великолепным тортом, что подарил мне свою работу — настольную лампу в виде Тардис (это было спонтанно).

Далек и я
Далек и я

Благодарности

  • Жене и моей маме — за конкурсы, помощь со сценарием и организацией
  • Артёму — за техническую помощь и филигранное управление AI-ассистентом
  • Диане — за музыку и диджеирование
  • Олегу и Юрию — за таскание тяжестей
  • Театру «Артен» — за площадку, всяческую помощь и участие
  • Yerevancakes — за офигенный торт

Ссылки

А как вы отмечали 30 лет?

1 комментарий 👇

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

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб