[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfk" } } }, { "id": 6, "disable": true, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "disable": true, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "cndo", "p2": "flvn" } } } ] { "gtm": "GTM-NDH47H" }
{ "author_name": "Даня ", "author_type": "self", "tags": [], "comments": 19, "likes": 36, "favorites": 15, "is_advertisement": false, "section": "club" }
8 618
Клуб

Как поздравить девушку с помощью нейронных сетей, чат-бота и фрилансеров

Telegram, китайский онлайн-магазин, расстояние в 6800 километров и срыв дедлайнов.

Поделиться

В избранное

В избранном

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

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

Раньше у меня уже был опыт поздравления друзей с помощью привычной для себя диджитал-среды. Например, одного друга я поздравил при помощи таргетированной рекламы во «ВКонтакте» — это было задолго до истории парня, который таким же образом пригласил девушку на свидание. В другой раз я создал паблик во «ВКонтакте», нагнал туда небольшое количество подписчиков и сделал там конкурс с розыгрышем фитнес-браслета, который и хотел подарить другу. Естественно, этот друг сделал репост и стал победителем конкурса: позже я с фейковой страницы назначил дату и время встречи, где и вручил ему подарок.

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

Мне пришла идея сделать некий квест, в результате которого она получит подарок. Чтобы система была полностью автономной от меня, я решил написать для этой цели Telegram-бота. Давно хотел разобраться с Telegram Bot API, так что квест стал отличным плацдармом для освоения новой технологии.

Изначальный алгоритм работы был прост: подарок можно забрать из условной точки А, координату которой бот отдаёт в виде ключа из шести цифр. Каждую цифру получаешь, если правильно выполняешь задание. Но в ходе работы алгоритм успел немного измениться.

Самое сложное — придумать задания для бота. Изначально я хотел сделать строгую привязку к геолокации: чтобы получить код, вы должны прийти в кафе, отослать локацию или ответить на вопрос, какого цвета фартук у официанта. Но это была серьёзная работа с контентом, плюс я не был уверен, что информация, которую я найду в интернете, будет идентична оригинальной. К тому же Шанхай — город немаленький, да и девушке есть чем заняться, кроме как ездить по каким-то непонятным местам, которые присылает ей бот.

В итоге я сократил количество заданий до трёх и сделал только одно с привязкой к геолокации. Как в итоге всё работало:

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

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

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

3. За пару дней до поздравления я нарисовал у девушки на стене во «ВКонтакте» граффити, где было скрыто число. Естественно, это выглядело очень странно и вызвало у девушки некоторые вопросы, на которые я никак не отвечал. Возможно, это даже подогревало интерес. На третьем шаге бог просил ввести это число.

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

Описывать все задание сразу я не хотел, но мне надо было среди всех кандидатов найти человека с хорошим английским, адекватного и живущего в Шанхае. На популярном сайте для поиска фрилансеров я создал объявление о поиске человека для разовой работы с оплатой в 25 долларов.

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

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

Я думал, что мне не составит труда заказать подарок на Taobao: оказывается, этот сайт никак не локализован. К сожалению, проблему нельзя было решить при помощи Google Translate. После того, как я добавил товар в корзину и приступил к оплате, сайт завис, JS-скрипт никак не мог получить информацию от сервера. Не знаю, как такое возможно, но на одном из самых крупных проектов e-commerce в мире могли быть технические неполадки. Я даже попытался зайти через китайский VPN, но всё было тщетно.

Тогда я решил сделать заказ через мобильное приложение. Тут опять проблема — оно полностью на китайском. Однако в этот момент я понял, какую роль играет дизайн в e-commerce. Я смог без труда по фотографии найти товар, нажать на какую-то самую яркую кнопку, перейти по иконке с корзинкой и ввести данные карточки в нужном поле. Мой опыт мог бы стать отличным тестом на качество UX приложения или сайта: «Даже если ваш сайт перевести на китайский язык, пользователь всё равно должен понимать, как купить товар». Единственные трудности у меня возникли при вводе адреса.

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

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

Встреча должна была состояться в корейском ресторане неподалеку от общежития моей подруги.

Я почему-то был уверен, что проблем не возникнет, в указанное время китаянка и моя подруга встретят друг друга, и мой план завершится успехом.
Но оказалось, что я не просчитал риски. Моя подруга немного опоздала, а китаянка пришла пораньше и решила поесть. В итоге они не увидели друг друга: девушке надо было идти в банк, а китаянка названивала мне, не понимая, что ей следует делать.

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

На подарке был написан последний ключ, который, если отправить боту, то он отдавал PDF-документ с текстом поздравления. Туда же я вложил подарочный сертификат на билет на самолёт, который купил у одной российской компании.

Всё получилось в итоге не так, как я изначально задумывал, но главное, что цель была выполнена. Единственный минус — с этим поздравлением я опоздал почти на четыре недели.

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

Популярные материалы
Показать еще
{ "is_needs_advanced_access": true }

Лучшие комментарии

Дискуссии по теме
доступны только владельцам клубного аккаунта

Купить за 75₽
Авторизоваться

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность писать комментарии и статьи
  • общение с членами клуба
Подробнее

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность читать и писать комментарии
  • общение с членами клуба
  • возможность создавать записи

Сколько это стоит?

Членство в клубе стоит всего 75₽ в месяц. Или даже дешевле при оплате за год.

Что такое клуб?

Клуб ТЖ это сообщество единомышленников. Мы любим читать новости, любим писать статьи, любим общаться друг с другом.

Вступить в клуб

Комментарии Комм.

Популярные

По порядку

Прямой эфир

Вы не против подписаться на важные новости от TJ?

Нет, не против