Энтузиаст создал Telegram-бота-терминатора на бесплатных ИИ-моделях: подробности проекта
Разработчик на базе открытых LLM собрал Telegram-бота, который имитирует поведение T-800 из «Терминатора», общается с друзьями в чате, подкалывает участников и анализирует медиафайлы. Проект полностью работает на бесплатных моделях через OpenRouter и локальном запуске на ноутбуке.
Энтузиаст, чей опыт в программировании начался летом 2020 года с первой программы на Python, решил разбавить активность в своем дружеском чате на 15 человек, добавив туда настоящего «терминатора». Речь идет о Telegram-боте, который не просто отвечает на сообщения, но и имитирует ролевое поведение T-800: подкалывает участников, учитывая контекст беседы, вбрасывает провокационные утверждения, читает картинки, аудио, гифки и видео, а также выполняет веб-поиск и пересказывает книги. Проект, по словам автора, не претендует на коммерческую ценность или применимость в продакшене, но стал для него своеобразным итогом шести лет в разработке. Вся работа велась через Claude Code, а исходный код выложен на GitHub и Codeberg. Такие эксперименты, по мнению разработчика, и привели его в IT — ради «хорошо сделанных штук», а не только ради коммерческой выгоды. На фоне растущего интереса к открытым ИИ-моделям в России, где доступ к западным API часто ограничен, проект демонстрирует альтернативный путь: использование бесплатных LLM для создания функциональных, хоть и нишевых, решений. Это особенно актуально для небольших команд и энтузиастов, которые хотят интегрировать ИИ в мессенджеры без затрат на дорогие коммерческие сервисы.
Первым шагом стал выбор языковой модели на платформе OpenRouter, где доступен пул качественных бесплатных LLM. Разработчику требовалась не самая мощная модель, а та, что обеспечивает адекватные rate limits и стабильное соединение. После ряда экспериментов выбор пал на Nemotron-3-Super-120b от Nvidia. Затем боту были добавлены базовые команды: /tease для подколки случайного участника на основе истории чата, /react для реакции на недавние сообщения, /horn для вброса провокационного тейка и /help для справки. Особое внимание уделили механизму подколок: чтобы избежать однообразия, в промпт стали подмешивать до 15 недавних реплик «жертвы» из архива (до 300 сообщений на человека), что позволило боту точнее имитировать характер и мировоззрение собеседника. В отличие от многих коммерческих ботов, которые полагаются на фиксированные шаблоны, этот подход делает взаимодействие более естественным и персонализированным. Автор также внедрил детектор-классификатор, который отсеивал задачи, направленные на перегрузку модели абсурдными запросами, что повысило стабильность работы.
Поскольку Nemotron-3-Super-120b не поддерживает обработку изображений, для vision-функций пришлось подключать дополнительную модель — nemotron-nano-12b-v2-vl, а в качестве fallback использовалась nemotron-3-nano-omni-30b-a3b-reasoning. Первоначальная попытка заставить одну модель одновременно отыгрывать роль терминатора и описывать картинки привела к генерации бессвязного текста. Оптимальным решением стала двухэтапная схема: визуальная модель создает сухое описание медиафайла, а основная LLM перерабатывает его в ролевом стиле. Однако такая архитектура страдала от нестабильности — модель часто отваливалась при анализе изображений, а время ожидания результата могло достигать нескольких минут. Это типичная проблема для бесплатных моделей на OpenRouter, где rate limits и нагрузка на серверы варьируются. Для сравнения, коммерческие API, такие как GPT-4V, предлагают более стабильную обработку, но требуют оплаты. Автор решил эту проблему, перейдя на локальный запуск, что позволило обойти внешние ограничения.
Чтобы ускорить работу и обеспечить единый поток взаимодействия, автор решил перевести бота на локальный запуск. Для этого был выбран ноутбук Maibedden X556 с 16 ГБ RAM и 4 ГБ VRAM, а в качестве основной модели — Gemma-4-12b, которая, помимо мощных агентных способностей, поддерживает аудио, изображения и видео. Однако процесс адаптации не обошелся без сложностей: из-за некорректного импорта проекторов модель оказалась «слепой» и вместо картинки видела пустое пространство. После отладки удалось добиться стабильной работы, и теперь бот обрабатывает медиафайлы в реальном времени, не полагаясь на внешние API. Этот шаг подчеркивает важность локальных моделей для разработчиков, которые хотят избежать зависимости от сторонних сервисов. На российском рынке, где санкционные риски и блокировки API становятся все более актуальными, такие решения могут стать основой для создания автономных ИИ-систем. Gemma-4-12b, хотя и менее мощная, чем коммерческие аналоги, показала достаточную производительность на скромном оборудовании, что открывает возможности для экспериментов на бюджетных конфигурациях.
Автор подчеркивает, что проект не имеет практической ценности для бизнеса, но демонстрирует возможности современных открытых LLM даже на скромном оборудовании. По его словам, именно такие эксперименты — ради «хорошо сделанных штук» — и привели его в IT. В перспективе энтузиаст планирует улучшить долгосрочную память бота через RAG-систему и расширить функционал, например, добавить поддержку голосовых команд. Пока же проект остается нишевым хобби-решением, но его архитектура может быть полезна другим разработчикам, желающим интегрировать ИИ в мессенджеры без затрат на коммерческие API. Открытые вопросы включают масштабируемость такого подхода: сможет ли локальная модель на ноутбуке обрабатывать большое количество запросов в чате с десятками активных пользователей? Кроме того, остается неясным, как бот будет справляться с конфиденциальностью данных, особенно при анализе медиафайлов. Тем не менее, проект уже стал примером того, как энтузиазм и доступные технологии могут создать уникальный пользовательский опыт, вдохновляя других на подобные эксперименты.