Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как я за сутки написал аналог Discord с помощью нейросетей

Как я за сутки написал аналог Discord с помощью нейросетей

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

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

Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.
Дополнительный технический элемент интерфейса
Вспомогательный элемент графического интерфейса платформы.

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

Разработанный в ходе эксперимента инструмент получил название Calab и представляет собой самостоятельное self-hosted решение для командного взаимодействия. Несмотря на скорость создания, внутри него скрывается серьезный технический фундамент, способный конкурировать с коммерческими аналогами.

Реклама
Главный экран релизной сборки Calab с голосовой комнатой и каналом
Главный экран из релизной сборки: голосовая комната слева, командный канал справа.

Голосовая подсистема использует эффективный аудиокодек Opus с функцией прерывания передачи при тишине, минимизирующей нагрузку на сеть, а также встроенные алгоритмы сетевого шумоподавления и эхоподавления. Для организации видеопотоков применяется SFU-сервер LiveKit и трансляция экрана в современном формате AV1 с поддержкой многопоточности. Архитектура успешно справляется с работой в условиях жестких корпоративных файрволов, автоматически переключаясь между UDP, TCP и защищенными соединениями через стандартный порт 443.

Развернутый демонстрационный стрим экрана в мессенджере Calab
Развёрнутый стрим экрана в приложении, справа отображается список зрителей.

Масштабы проделанной работы за одну ночь

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

Утренняя светлая тема мессенджера Calab до редизайна интерфейса
Утренний Calab в светлой теме до редизайна: агенты обсуждают чек-лист релиза.

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

Организация виртуального отдела разработки

Успех ночного макропроекта стал возможен благодаря строгой иерархии агентов на базе передовых языковых моделей. Координацию процессов взял на себя главный модуль уровня архитектора, в то время как специализированные кодеры и вспомогательные скрипты выполняли изолированные задачи в отдельных рабочих директориях git worktree.

Раздел личных сообщений в мессенджере Calab
Интерфейс личных сообщений, появившийся в приложении в ходе доработки.

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

Интеграция с задачами и обработка пользовательских запросов

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

Реклама
Панель управления агентами Orca во время разработки проекта
Интерфейс Orca с активными панелями стенда и ревью работающих агентов.

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

Рабочий процесс агента в изолированной ветке git
Работа агента в изолированной ветке с проверкой тестов и пулл-реквестами.

Финансовые затраты и распределение токенов

Итоговая стоимость генерации кода и сопутствующих операций по стандартному коммерческому прейскуранту API составила около 12 400 долларов США. Детальный анализ расходов показал любопытную закономерность: львиная доля средств ушла вовсе не на написание исходников, а на постоянное чтение и обновление внушительного контекста агентами при последовательном решении задач.

Сводка статистики использования токенов API за время работы
Сводка usage-stats за сутки: ответы моделей, объем вывода и чтения кэша.

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

Зоны ошибок и роль человека в контуре качества

В процессе работы автономные алгоритмы неизбежно сталкивались с техническими трудностями, требующими вмешательства. Среди них выделялись проблемы с настройкой политик безопасности веб-приложения, блокировавших голосовые соединения, а также трудности с перехватом системных комбинаций клавиш вроде Caps Lock на компьютерах Mac.

Экран онбординга с выбором активации голосом и push-to-talk
Онбординг: выбор между активацией голосом и push-to-talk.

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

Практические итоги эксперимента и развертывание системы

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

Канбан-доска задач в интерфейсе мессенджера Calab
Интегрированная доска задач в мессенджере Calab, работающая в канбан-режиме.
Илья Трикоз, разработчик и сооснователь GPTunneL
Илья Трикоз, разработчик и сооснователь GPTunneL.

Для самостоятельного запуска готового мессенджера достаточно иметь сервер под управлением Linux с белым IP-адресом, настроенный Docker и зарегистрированный домен с необходимыми DNS-записями. Процесс развертывания сводится к выполнению стандартного скрипта развертывания, после чего система полностью готова к работе и дальнейшему масштабированию.

01.