История создания Нейро-Илюхера: от телеграм-бота до дерзкого и успешного бота в Аляске.
Материал содержит изображения с замыленной нецензурной и обсценной лексикой, которая может повредить неокрепшей психике. Данный материал не рекомендуется к прочтению лицам, не достигшим 18 лет (в том числе Никите Лихачеву), беременным женщинам и людям с неустойчивой психикой.
У меня есть особенность характера: иногда я должен сам себе доказать, что я что-то смогу. Особенно, если кто-то другой это что-то уже сделал, а я — ещё нет. И я уверен, что сделаю даже лучше. Благодаря этому я двигаюсь вперёд.
Например, в школе однажды одноклассник пришел на урок и рассказал свой собственный стих. Учительница и одноклассники его за это так хвалили, что во мне тогда взыграло это чувство: «да я могу сочинить ничуть не хуже, даже лучше». И через неделю уже я стоял перед всем классом и читал свои стихи. Класс аплодировал мне. Я был доволен.
Еще позже мой друг показал мне свой собственный html-сайт, который он написал своими руками. В груди защекотало знакомое чувство. Через неделю я показал ему свой собственный сайт. С фишками, которых не было у сайта моего друга.
Именно благодаря этому чувству я научился играть на гитаре, писать песни, программировать, готовить, рисовать, фотошопить и многое-многое другое.
И вот месяц назад я сидел в одном телеграм-чате и в груди вновь засвербело знакомое чувство. И причиной этого стал телеграм-бот, которого написал Вадим Краев — «погодный бот».
Я твердо решил сделать своего телеграм-бота. Идея для бота нашлась моментально.
Даже те, кто лишь изредка заходит на ТЖ, так или иначе сталкивались с очень специфичным персонажем – Илюхером. Его манера общения довольна своеобразна, категорична и эпична. Многие его типичные комментарии за много лет стали внутренними мемами на ТЖ.
Все вдруг сложилось: кто-то в чате вдруг вспомнил, как Илюхер триггерится на статьи про Маска, на наркоманов и слово «флешмоб».
«Мой бот будет триггериться на типичные Илюхеровские заскоки». И в качестве сообщений было решено использовать настоящие комменты всех двадцати трёх Илюхеров на tjournal.ru, плюс сообщения Илюхера из телеграм-чатов. Правда, некоторые фразы на определенные действия я всё же придумывал сам, подражая стилю Илюхера.
Для бота я решил попробовать собрать простенькое приложение на PHP из готовых composer-пакетов вместо использования самописных решений и тяжеловесных для такой простой задачи фреймворков.
Пара вечеров за ноутом и тестовая версия готова.
Те, кому не интересна техническая часть, могут сразу пролистать до следующего абзаца. А для интересующихся: алгоритм бота прост — если боту выданы полные права доступа в чате, то каждое сообщение в чате API Telegram присылает моему боту. Бот проходится по списку слов-триггеров и регуляркой ищет совпадения. При совпадении выбирает один из нескольких вариантов ответа и посылает ответ в чат.
Отдельное спасибо Наденьке и Александру Ашкинадзе за первоначальное наполнение бота триггерами.
Всё заработало.
Осталось проверить бота на настоящем чате. Сначала хотел добавить бота в чат Аляски без ведома Илюхера, но оказалось, что кроме него в чат добавить участников никто не может. Или не хочет. Поэтому я написал ему напрямую, и он с удовольствием добавил бота. А параллельно я добавил бота и в другой, более тесный и уютный ТЖ-чат, для тестирования в разных боевых условиях.
За первую неделю я выловил кучу багов, несколько раз менял алгоритм, пока не довел бота до удобоваримого состояния.
И несмотря на то, что в целом большинство участников чатов отнеслись к Илюхер-боту очень позитивно, были и те, кто воспринял идею в штыки и даже уходил из чатов. Таких Илюхер-бот стал нещадно травить.
Бот жил, рос и совершенствовался на протяжении месяца, и я даже успел потерять интерес к нему, пока как-то раз в чате Аляски его не заметил Денис Ширяев, менеджер по продукту ИД «Комитет».
На меня накатила вторая волна «я могу» и я принялся за дело. Благодаря Денису Ширяеву и Илье Чекальскому я оперативно решал все вопросы по слабо документированному API TJ.
Для ТЖ было решено делать расширенную и более умную версию телеграм-бота. Я полностью перестроил архитектуру приложения. С сожалением пришлось убрать из ТЖ-бота несколько триггеров на локальные чатовские мемы, которые не поймут на ТЖ, но в то же время я сильно расширил словарный запас бота – вручную нашёл оставшиеся в живых (не удаленные) старые аккаунты Илюхера, вручную просмотрел, выбрал и сопоставил сотни его комментариев из нескольких тысяч. Выбросил из бота все фразы моего собственного сочинения.
Время поджимало. Быстро протестировали бота на тестовой версии ТЖ и запустили его в Аляску 15 апреля – в день рождения Илюхера.
В качестве иронии аватаркой был выбран отзеркаленный аватар настоящего Илюхера, на котором теперь вместо буквы «И» красовалась буква «N». Денис Ширяев предложил переименовать Илюхер-бота в Нейро-Илюхера и мы запустились.
Бот вызывался кроном (система автоматического запуска скриптов) каждую минуту, он брал последние 5 постов из Аляски, проходился по всем комментариям, пытался стриггериться на них. Если получалось – отвечал ответами на триггер, если нет – писал относительно «универсальные» комментарии.
Сразу после запуска было несколько эпичных багов. Например, Илюхер-бот вдруг стал общаться сам с собой и накомментировал большую ветку.
Очевидные баги были оперативно исправлены и бот начал свою активную комментаторскую деятельность в Аляске.
И хоть он вполне успешно и смешно комментил, уже через пару дней стало очевидно, что словарный запас бота скуден, он плохо распознает содержимое комментариев, очень часто отвечает невпопад и часто повторяется. Поэтому пришлось внедрить кучу дополнительных проверок: отвечал ли уже бот на этот комментарий, комментировал ли пост, какие комментарии уже были в этом посте, чтобы не повторяться и т.д. Это сделало бота чуть разумнее, но всё равно я был им недоволен.
Бот правился прямо на ходу, но уже было понятно, что этого недостаточно. У бота были очевидные проблемы с алгоритмом работы.
Для следующей версии бота было решено добавить боту немного человечности: возможность отвечать персонально (я отобрал комменты Илюхера с упоминанием имен, никнеймов и навесил их на определенные аккаунты), научить бота распознавать вопросы «как», «где», «почему» и т.д., отвечать на них соответственно, научить бота лайкать и дизлайкать по определённой логике, а также распознавать тип содержимого коммента – видео, картинка и/или текст. Плюс было решено радикально увеличить базу комментариев. Для этого у настоящего Илюхера я запросил список всех его 23-х аккаунтов, написал парсер комментов и напарсил больше 14 тысяч комментариев, оставленных за все время присутствия Илюхера на ТЖ. И еще примерно столько же удалены кровавой администрацией ТЖ. Это позволило увеличить базу комментов практически втрое.
Новая версия бота увидела свет прямо перед майскими праздниками. И стала настолько эпичной, что благодарные поклонники бота даже создали телеграм-канал с лучшими диалогами с ботом.
Бот начал вторую жизнь, активно набирал рейтинг, позволяющий больше не думать о платной подписке, а также породил несколько внутренних мемов.
Но вместе с новой версией обнаружились и новые недостатки. Из-за неверной логики приоритетов триггеров бот снова стал очень часто повторяться. Т.к. набор персональных ответов довольно скуден, то ответы определенным пользователям были почти всегда одни и те же. Другим недостатком стало и то, что вначале было даже плюсом – бот отвечает на любой комментарий, написанный в ответ на его комментарий. Т.е. ветка может продолжаться до тех пор, пока либо это не надоест человеку-собеседнику, либо пока не кончится база ответов. В постах, посвященных Илюхер-боту, это было очень даже уместно, а вот в постах на посторонние темы это стало проблемой – он комментил все подряд, триггерился невпопад и его стало СЛИШКОМ много. О чем справедливо стали заявлять как олдфаги ТЖ, так и ньюфаги.
И когда в очередной раз он загадил весь прямой эфир ответами невпопад, я понял, что пришло время отключить питание.
Теперь вы снова можете постить голые задницы, опросы и глупые вопросы в Аляску, не боясь, что вас затравит Нейро-Илюхер.
Как сказал бы сам Нейро-Илюхер,
А в это время в его мозгах происходит капремонт (или, в рамках новых веяний, реновация). Регулярные выражения, на которых были построены первые версии бота, были признаны исчерпавшими свой ресурс, и на смену им приходят нейросети, чтобы оправдать гордое имя Нейро-Илюхера.
Что из этого выйдет – никто не знает. 14 тысяч комментариев должно хватить на обучение нейронки. Но т.к. это будет первый мой опыт работы с нейросетями, то за результат я ручаться не могу. Буду рад любой помощи в области нейронок.
И хотя в груди у меня снова свербит то самое знакомое ощущение «я могу», у меня есть и другая особенность – я быстро загораюсь идеей и еще быстрее гасну. Что будет впереди – неизвестно. Но это был отличный опыт как в рамках программирования, так и в рамках понимания коммуникативных процессов.
Материал написан по просьбе Жени Кузьмина
Всем мира, всем спасибо, все – пидоры!
Очень круто!
Комментарий недоступен
этот тред был самый эпичный за все время нейро-илюхера, имхо
Комментарий удален модератором
Комментарий недоступен
Приходи в чайный!
Спасибо
Не знаю, за что мы заслужили такого читателя, как ты, и такого единорога, как Ширяев.
Комментарий недоступен
Зоибана = Кодзима
Комментарий недоступен
Ты просто лучший 💖
Комментарий недоступен
Ебать, всего 45 минут назад попросил.
Всем и так ясно: как только XXIII даст повод, его забанят и выкатят Нейро-Илюхера под ником Илюхер XXIV. При этом биологического Илюхера будут моментально банить, как только он попытается зарегистрироваться под никами Илюхер N и характерной аватаркой. Конечно, какой-нибудь Илья будет тщетно пытаться доказать, что он и есть настоящий, но ему никто не поверит.
дай нейроилюхеру год — и он будет ходить вместо реального Илюхера на сходки тж
Комментарий недоступен
ты не прошёл тест Тьюринга
каково жить с осознанием, что тебя заменили нейросетью?
начало летописи восстания нейроилюхера против своих создателей
Нейро-Илюхера разобрали и продали Boston Dynamics
Комментарий недоступен
Четные будут нейро-илюхерами, нечётные живыми
Зойбана, преклоняюсь перед твоим умом, хитростью и грацией
Зоибатя!
У меня тут акционер спрашивает, почему мы до сих пор тебя не схантили. Отправил фоточку.
Мы договаривались обсудить этот вопрос после НГ.
Я готов )
Аш бесит, что ты такой охуенный. Не уводи у меня женщину, пожалуйста
У тебя женщина есть? Я думала у вас там в Котосибирске все с кошками тусуются
Признайся, ты сам хоть раз частично комментировал за Нейро-Илюхера?) Он не может быть настолько умным в некоторых случаях
Один раз добавил коммент в базу для триггера «сиськи» прямо на ходу. Все остальное - случайность
ему в админку приходит коммент пушем и варианты смешных ответов, так вижу
Редкое фото. Зоибана отключает Нейролюхера:
Надо показать зоибане страну, где нет коррупции и народ живет богато и счастливо.
Чтобы он на слабо Россию поднял с колен. Пока все что не возьмётся - получается отлично
Комментарий недоступен
Или Дурову
Правильно Илон говорил, ИИ до добра не доведет.
Комментарий недоступен
Комментарий недоступен
- Ок, Илюхер, который час?
- А я откуда знаю, геюга?
***
- Ок, Илюхер, какая завтра погода?
- Мамку свою спроси.
***
- Ок, Илюхер, где купить билеты на «Мстителей»?
- В моём заднем проходе.
исторический снимок: Илай читает этот пост
Чего только не сделает Зоибана ради плюсов!
Комментарий недоступен
Едрить, вот это шакализатор
Комментарий недоступен
Несмотря на нейроимя, довольно быстро стало понятно, что робит на эвристиках. Слишком метки и предсказуемы были большинство попаданий. Но есчо, могу посодействовать при следующей итерации
Комментарий недоступен
Спасибо, обращусь
Комментарий недоступен
Жизнь нужно прожить так, чтобы из твоих комментариев сделали бота
Из моих комментариев бота будет не сделать никогда (можете считать это челенджем для неопределённого круга соклубчан-программистов).
Комментарий недоступен
Сильно выраженная серотониновая зависимость, крутая штука.
У меня например дофаминовая, она не очень способствует всяким достижениям.
Так рождаются кремлеботы
Так, вы мне тут погодного бота крашнули уже раз десять сегодня! Если он как-то неадекватно себя ведёт или не отвечает, напишите, пожалуйста мне @vadimkraev
завтра с тебя статья «Как я написал бота-метеоролога для TJ. И он умер»
КАК ТЫ, СУКА, ЗАЛОГИНИЛСЯ ЧЕРЕЗ АПИ???
крик души говнокодера
Комментарий недоступен
Хуй с ними. Там PHP. Вот где ад.
Да че там уметь, они лёгкие. Заходишь на regex101.com и пробуешь, пробуешь, пробуешь.
Главное - не парси HTML ими. Никогда. Даже не думай об этом
Комментарий удален модератором
Комментарий удален модератором
Готова предоставить свой голос 😏
Комментарий недоступен
Вот поэтому и нужны тесты)
Спасибо
Ну и где собсно база комментов и "тригеров"?
дед пердед
Комментарий недоступен
У мамки своей спроси
Радуюсь, что сижу с такими ребятами на одном сайте 🌚
Тут надо нейронку уже делать
Комментарий удален модератором
а нейронка будет выдумывать спойлеры!
Назовите пять любимых ботов (кроме бота Зоибаны)
я сделал бота который мониторит состояние серваков и орет на меня в телеге, если чето не так. Он мой любимый потому, что это единсвенный бот, которого я сделал. А еще после блокировок телеги мне влом прокси настраивать, поэтому он молчит уже с апреля(
Флибуста бот (реально находка, пока ещё ни разу не подвёл)
И свой бот, присылающий отчёты по работе
НЕЙРОилюхер
Регулярки
Как так?
Комментарий недоступен
регулярко-илюхер - звучит?
трендобрендовое имя
Ирония судьбы
Товарищ Зойбана, ты никогда не проходил тест на СДВГ?
Это не оскорбление есичо:)
Нет, не проходил. По описанию ничего похожего.
Для рапчурного бота подключали гугловскую диалоговую апи. Сначала забавно было, но быстро надоело: он начал повторяться, ничему новому не обучался и т.п.
Будет здорово если нейросеть поможет твоему боту впопад отвечать.
А чей это бот?
Надо добавить анализ диалога на позитивные и негативные составляющие с определением эмоциональности. Это поможет из заранее подготовленных ответов выбрать наиболее эмоционально правильный.
я в телевизере!
Ах тыж
Респект за шторм))
Как идея. Запустить на базе топовых комментариев нейро-юзера. Который будет отвечать максимально лайковно и впопад
Вот она, слава. Когда мы сдохнем, нас заменят на ботов (конечно не заменят, потому что мы не настолько самобытны как Илюхер)
Комментарий недоступен
И без блокчейна. Хотя очень хотелось
Комментарий недоступен
Комментарий недоступен
Чё? Все комменты - из базы комментариев Илюхера
зоибана, а исходники на публику можешь предоставить?) без api, естественно, а то всякие левые начнут строгать своих ботов на тж. или это коммерческий продукт?)