Помните тред про то, как чувак познакомился с 5239 девушками через Tinder? Он набрал 8.3 миллиона просмотров. Этот тред — выдумка.
У автора, Александра Жадана, Нейро-Казановы, не было технического решения. Я провёл своё расследование и поговорил с ним.
Тред 👇
Я разработчик и пишу на Python. Работал со всеми библиотеками и API из схемы Александра. Также примерно во время событий треда, писал интеграцию с API OpenAI. Я разобрался в описании его решения, пригласил к себе на подкаст и задал ему в том числе технические вопросы.
Моя мотивация проста. Нейросети — важная технология. У неё свои ограничения. Ложь о возможностях её применения обмазывает эту технологию дерьмом. Ну и если начинающий разработчик сделал столь сложную систему за 120 часов, то профессиональная разработка как бы больше и не нужна.
Это не первый хайп Александра. Он же прославился дипломом, написанным с помощью ChatGPT. Этот хайп помог ему прыгнуть по доходу с 125к до 500к в месяц. Его текущая должность называется «Руководитель проекта по нейросетям».
Тред про Tinder уже принёс ему международные офферы.
Александр сразу дал десятки интервью. Даже на телек сходил в пропагандистскую программу на НТВ.
Кстати, «зетница» — один из его фильтров для отсеивания девушек.
Перед его блоком были сюжеты, как НАТО воюет у границ России и про секретного двойника Гитлера.
Хайп не пахнет.
Главная проблема с расследованием: Александр верхнеуровнево описал всё плюс-минус верно. И если кто-то собрался написать такую систему, то архитектура решения была бы похожей. Но в треде мало технических подробностей. Автора надо было ловить за руку.
У Александра якобы было три версии его решения: v1 (только свайпы и переписка в тиндер с помощью ChatGPT), v2 (всё, что в v1 + фильтр профилей, переписка в тг, хранение личных данных и диалогов, гуглкалендарь) и v3 (переписка с его невестой, Кариной, рекомендации по отношениям).
Код в треде был только в v1. Поздние версии, v2 и v3, — это лишь схемы из Miro. Причём, код из v1 нерабочий (сорри за качество — скрин из видео). Он даже не запустится из-за подчёркнутой красным строки. Этот сниппет показался мне странным и выглядел, как скопированный.
Нашёл видео на ютуб, где девушка пишет ровно тот код из треда Александра. Видео вышло за несколько месяцев до событий из треда. Единственный код из треда — просто копипаст. Авторка видео и Александр в треде приходят к одному выводу: ChatGPT очень плох в романтической переписке
Пока готовился к подкасту посмотрел весь контент с ним, который вышел после хайпа. Чувак в этих интервью уже визионер: его кейс изменит дейтинг-приложения.
Готовлю технические ловушки. Цель одна: чтобы он светанул код из v2 и v3.
Начинаем запись подкаста. Перехожу к техническим вопросам. Первым делом узнаю, был ли у Александра сервер. К моему удивлению, всё решение крутилось на MacBook дома. С этим, если что, всё ок, это нужно будет для контекста следующих вопросов.
API OpenAI в то время (март-июль, 2023) работало нестабильно. Временами по серверному таймауту мог падать каждый 20-ый запрос. Александр сказал, что когда это случалось, его бот останавливался.
То есть ему приходилось перезагружать систему вручную после каждой ошибки.
«Анализ картинок с помощью FlutterFlow» — встречается несколько раз в его схеме. FlutterFlow — это low-code сервис для мобильных приложений. В поддержке мне написали, что исполнять Python-код, на котором написана модель torchvision для анализа картинок, нельзя.
На вопрос, как был устроен анализ картинок, он сказал, что не знает, так как ему с ним помогли. Хотя в оригинальном треде нет ни одного упоминания о помощниках. Складывается впечатление, что всё сделал сам.
На вопрос «зачем?» тоже ни слова: «Мне так сказали».
У Александра в сервисе было две фичи:
1. Анализ переписок за период
2. Если он не отвечал своей невесте 30 минут, система отвечала сама
Он: «всё работало по достижение какого-то количества сообщений». В ответе я ждал что-то про cron, а лучше сервис очередей. Эти фичи не работали
В v3 Александр настроил бота так, что тот делал рекомендации по отношениям и иногда сам отвечал на сообщения. Всё работало так хорошо, что Нейро-Казанова «не отличал, где написал он, а где Chatgpt». Для этого нужно анализировать огромную переписку и хранить её в векторной базе.
Но, по словам Александра, всё хранилось в обычной базе. Сообщения самморайзились и клались в контекст запроса в API OpenAI. GPT-4 теряет половину фактов уже при 16k токенов. Это ~5k слов на русском. В переписке длинной тысячи сообщений это не работало.
Ещё слабое место: личные переписки в Tg. Чтобы писать через API Telegram в личке, нужно зарегистрироваться, как разработчик приложений. Все библиотеки, которые работают с API Telegram работают на асинхронном Python, а я напомню: Александр даже репозиторий не мог настроить сам.
На этом моменте Нейро-Казанова начал сыпаться, и отвечать, как будто он на собесе, максимально расплывчато. Но сказал, что при каждом рестарте бота вводил код из смс, что не нужно делать, так как библиотеки используют временный токен. А бота ему приходилось рестартить часто.
Я попросил показать код, на что Александр сначала ответил, что ему запретили это делать какие-то юристы, потом сказал, что лэптоп с кодом в другой комнате, а затем — что в другой квартире. Потом снова заговорил про юристов.
Вывод: максимум, что сделал Александр — бот версии v1. Для этого он скопировал код из чужого видео. v2 и v3 не было, их он просто выдумал, чтобы похайпить и найти новую работу или проекты.
Гляньте подкаст, он там вертится, как уж на сковороде. (ссылка в описании профиля).
Предлагаю два лёгких варианта доказать, что решение действительно было.
1. Посмотрим github с историей коммитов, а также сам код со всеми фичами.
2. Либо посмотрим код локально. Но тогда гляну ещё твою базу.
В любом формате, хоть публично.
Если техническое решение было, я принесу извинения и, если Александр пожелает, удалю и тред, и подкаст.
https://twitter.com/digital_ninjaaa/status/1760564832216981684#m
