Бот для Telegram за 48 часов на Perl или как купить кошачий корм не выходя из чата |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-07-18 14:39 Давно поглядывая в сторону темы ботов для Telegram и Facebook всё не находил времени взглянуть что же это за звери. А главное — не было внятной идеи зачем может понадобиться такой бот в реальной жизни, учитывая что ни Tg ни Fb Messanger в жизни я активно не пользуюсь.
И совершенно случайно представилась возможность немного погрузиться в эту область и решить вполне себе прикладную задачу. Например, купить корм для кота не выходя из чата ) Тихим субботним утром совершенно случайно наткнулся на заметку что проводится международная(!) онлайн-олимпиада(!!) по языку Perl(!!!). Несмотря на сюрреализм события (о котором не было анонсов ни на одном профильном ресурсе включая Хабр) я записался и в 10.15 утра понедельника получил задание — разработать за 48 часов бот для одного из мессенджеров, реализующий взаимодействие с каким-либо интернет-магазином. Решив что это отличный шанс погрузиться в тему я взялся за задачу. Выбор интернет-магазина был прост — в Юлмарт я покупаю даже корм для кота. Да и узнать текущую цену на какую-нибудь железку не ставя приложение на телефон бывает иногда нужно. Задание было получено в понедельник утром и рабочие дела никто не отменял, так что основная часть разработки шла вечером и ночью. Ночь первая Первая ночь была посвящена написанию парсера мобильной выдачи интернет-магазина и реализации всех необходимых операций с корзиной и оформлением заказа (самовывоз, без регистрации). Юлмарт представлен в разных городах и для полноты картины необходимо было реализовать и выбор текущего города и пункта самовывоза. Так как извращенные парсеры это моя специализация, то особых сложностей с этим не возникло. Единственная засада — пришлось потратить пару часов на понимание почему возникает ошибка при итоговом оформлении заказа. Оказалось, что я слишком быстро требую ответа от интернет-магазина и он не успевает провести заказ по своей внутренней учетной системе. Пятисекундная задержка проблему решила и к утру модуль реализующий API с сайтом Юлмарт был готов. Псевдо-API умеет:
Фильтры в каталоге я не успел реализовать из-за ограничений по времени. Но базовый функционал есть и его можно попытаться перенести на бот-платформу Telegram о которой к этому моменту я знал лишь то что она существует ) Спойлер: теперь можно купить корм коту прямо из Телеграма Ночь вторая Теперь пришло время познакомиться с бот-возможностями Telegram API. Так как до того времени Телеграмом я не пользовался это было ускоренное погружение в тему )) Детали расписывать не буду — статей на эту тему достаточно. Отмечу лишь те особенности, на которые я обратил внимание в контексте решения моей задачи. Как оказалось, создать более-менее удобный интерфейс для чат-бота интернет-магазина это та еще задача…
А так в целом простой и приятный API платформы позволил за ночь сделать чат-бота который умеет все то что было ранее реализовано в псевдо-API. Включая управление корзиной: Выбор пункта самовывоза: И окончательное оформление заказа: К утру бот был закончен и запущен на тестовом сервере! Где можно его потрогать Бот называется @ecom_ulmart_bot и до сих пор работает на тестовом стенде, принимая и обрабатывая запросы в режиме long pool в один(!!!) поток. Так как это скорее прототип чат-бота, то его есть куда развивать:
И если у кого-нибудь до этого дойдут руки, то можно сделать это взяв исходники с github'а и зарегистрировав своего бота (другой api-токен) под эту задачу. А что же с международной олимпиадой? А ничего ) Ответа на свое решение я так и не получил. Напомнив о себе через неделю я получил ответ что «результаты будут вот-вот подведены», а дальше тишина. Думаю я единственный кто случайно увидел это объявление и отправил какое-то решение. Так что комментарий Ларри Уолла на свой кривой код я так и не получил )) Это был забавный опыт и следующая целевая платформа — Facebook Messenger. Идея для нового чат-бота уже есть! Источник: habrahabr.ru Комментарии: |
|