[Devman] Чат-боты на Python (Игорь Перепилицын)
Модуль из 7 уроков
Компании всё крепче хватаются за соцсети, ведь в них сидят миллионы людей. Каждой нужен свой чатбот: «Медуза» репостит свои статьи в telegram, Pikabu предлагает посмотреть свежие посты. Техподдержка тоже автоматизируется: если написать в авиакомпанию UTair, вам сперва ответит бот. Он выяснит, какая у вас проблема, а только потом передаст ваш вопрос оператору.
Компаниям нужны чатботы, а значит и люди, умеющие их писать. В этом модуле вы получите все самые боевые навыки по созданию таких ботов: научитесь разворачивать их на серверах, работать с базами данных и заглянете «под капот» к популярным библиотекам.
- Telegram боты
- Facebook боты
- VK боты
Урок 1: Отправляем уведомления о проверке работ
На Девмане работы учеников проверяют в течение суток. Этот бот напишет вам, как только работа будет проверена.
Пишите умных ботов
Многие сайты предлагают вам создать бота без навыков программирования. Но это глупые боты: они лишь отвечают заранее подготовленными фразами. Ваши боты будут куда умнее: можно будет работать с данными, API и все такое.
Изучите Long Polling изнутри
Как боты узнают, что им пришло сообщение от пользователя? Один из механизмов для этого — Long Polling. В этом уроке вы напишете Long Polling сами.
Урок 2: Запускаем бота на сервере
В прошлом уроке мы написали бота, который работает пока включен компьютер. Теперь вы перенесете бота на сервер, и он не будет останавливаться. Никогда.
Сервер — новый лучший друг
Вы сможете запускать на сервере не только ботов. Любую программу так же можно запустить на сервере. Это развязывает руки для кучи новых идей и проектов.
Вы в ответе за тех, кого задеплоили
Что если однажды бот сломается? Пользователи будут недовольны, а вы в растерянности: что случилось, где ошибка? Крутые разработчики настраивают логгирование, чтобы моментально реагировать в такой ситуации. В этом уроке вы тоже поработаете с логами.
У всех крупных компаний есть отделы поддержки. Они просто ломятся от заявок клиентов, хотя на самом деле вопросы им задают одинаковые. В этом уроке вы будете распознавать вольную речь и отвечать клиенту вместо оператора.
Используйте глубокое обучение
В этом уроке вы используете machine learning. Тема непростая, но у Google уже есть готовое решение — DialogFlow. Бот от Google быстро научится понимать о чём говорит человек — о стоимости билетов или просто о погоде.
Первый проект в резюме
У авиакомпаний, банков и других крупных компаний есть похожие боты для тех. поддержки клиентов. Такой проект в портфолио вам пригодится, когда пойдёте собеседоваться на разработчика ботов.
Урок 4: Проводим викторину
Компании часто проводят опросы, чтобы узнать ситуацию на рынке. Для этого они пишут ботов, которые задают много вопросов и анализируют ответы. В этой задаче вы напишете бота-викторину: он тоже будет задавать вопросы и собирать ответы.
Делайте деньги с ВКонтакте
ВКонтакте — весьма популярная соцсеть в России. Если уметь работать не только с Telegram, но и с ВК, то вы сможете брать заказы сразу на две соцсети.
Храним данные как профи: Базы Данных
До сих пор мы обходились JSON-файликами, но больше так продолжаться не может. Ни один бывалый программист не хранит свои данные так небрежно. Покупки — это серьёзно, и хранить такие данные тоже нужно с умом.
Урок 5: Продаём рыбу в Telegram
В этом уроке вы напишете бота-магазин. В магазине можно выбрать рыбу, а затем оставить свой номер. Номер и заказ отправятся менеджеру, который перезвонит клиентам.
Интегрируемся с CMS
Сделать интернет-магазин очень сложно. Нужно предусмотреть скидки, акции, дать заказчику удобный способ менять цены и товары. Куда более правильное решение — интегрироваться с уже написанным интернет-магазином по API. В этом уроке вы попробуете свою первую интеграцию.
Своя стейт-машина
Бот должен помнить, где находится пользователь: в меню, корзине или каталоге товаров. В такой ситауации новички часто пишут какие-то костыли. В этом уроке мы расскажем о стейт-машинах, а вы напишете свою.
Урок 6: Принимаем платежи за пиццу
Вы напишете бота для продажи и доставки пиццы. Совсем крутого, с настоящей оплатой через карточку. Человек скинет своё местонахождение на карте, ему скажут примерное время доставки, а курьер получит заказ: какую пиццу и куда везти.
Работа с JobQueue
Курьера нужно спросить, успевает ли он доставить пиццу, а клиенту — напомнить, что пицца скоро приедет. Для этого пригодится JobQueue — «очередь задач». С ней можно создать отложенные задачи, которые запустятся через какое-то время.
Без бутафории и подсказок
Если вы переживаете, что мы будем вести вас за ручку, то всё в порядке: в нашем курсе код вы пишете сами. Мы даём направление: куда копать, что читать, как не делать. Код мы не даём, это будет ваш и только ваш опыт.
Урок 7: Расширяем пиццерию
В этом уроке вы расширите код из предыдущего урока. Добавим поддержку ВК и Facebook. Причём, нужно постараться так, чтобы одним кодом с логикой пользовались все три соцсети.
Пишите многоликих ботов
В разработке ботов часто звучит одна и та же фраза: сделайте нам в Telegram, а потом такого же в Facebook и ВКонтакте. Копипаста не поможет: если решите что-то поменять, придётся менять одно и то же в трёх местах. В этом уроке вы сделаете как профи: одна логика, несколько фасадов.
Подготовьтесь к собеседованию
К этому уроку вы освоитесь в ВК и Telegram и Facebook, поработаете с кнопочками и геолокацией. У вас будет 2 интернет-магазина, 1 бот техподдержки и бот для сбора фидбека. После этого урока вы с легкостью пройдёте собеседование на разработчика ботов.
Навыки и технологии:
Мы продаём навыки, а не знания. В задачах модуля вы отработаете:
- API для ботов ВК и Telegram
- приём платежей в Telegram
- запуск на Heroku
- конечные автоматы
- хранение данных в Redis
Минимальные требования:
- Владение Python: написать программу в 200 строк кода, структурировать и отладить.
- Умение работать с API с помощью requests
- Запуск программ из командной строки: cmd.exe на Windows или bash на Mac / Linux
- Размещение кода на GitHub
- Чтение документации на английском со словарем
Игорь Перепилицын
Игорь разрабатывает сложных коммерческих ботов для Telegram и Facebook, технических ботов для автоматизации внутренних процессов компаний. Был старшим разработчиком в студии веб-разработки ITCanFly, работал с иностранными заказчиками (Корея и США).
Еще Игорь умеет учить. Он составлял программу и вёл дополнительные курсы в ВШЭ. Два года тренировал учеников Learn Python. Сейчас проверяет работы и составляет задачи в нескольких модулях «Девмана».
Уроки мини-курса основаны на реальных работающих кейсах Игоря. Это интернет-магазины, боты, которые собирают данные для отдела продаж и не только. С такими знаниями вы сможете уверенно выполнять подобные заказы. А еще можно украсить своё портфолио боевыми задачами.
Что вы получите
7 уроков
Теория и практические советы. Кратко и по делу.
Пошаговые инструкции
Покажем, как подступиться к решению задач из реального мира.
Кодревью
Преподаватель подскажет, как повысить качество кода.