Пишем чат-бот викторину с помощью Microsoft Bot Framework |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-04-23 21:32 У нас есть традиция – каждой весной мы участвуем в Днях карьеры любимого Новосибирского госуниверситета, главной кузницы наших кадров. И каждый год мы придумываем для студентов что-нибудь любопытное. В этом году сделали мастер-класс о том, как написать чат-бота. Для регистрации на мастер-класс запустили в Telegram собственного бота «Академик» @academic_quiz_bot. Его же все вместе и собирали на мастер-классе. Если вы еще не завели себе симпатичного бота, сейчас расскажем, как выбирать тему, и, собственно, делать бота. Шаг 1. Чат-бот и Дни карьеры, где связь? Придумать интересную тему для мастер-класса было непросто, ведь конкурировать приходится уже и с самими собой. 2 года назад мы за полтора часа мастер-класса на глазах студентов написали мобильное приложение для айфона, которое показывает погоду около их альма-матер НГУ (более 5000 загрузок, и продолжает скачиваться). Год назад мы за 1,5 часа сделали IoT-решение и научились зажигать лампочку со смартфона. В этом году нужно было сделать что-то не менее зажигательное, и мы решили научить студентов делать чат-ботов, ведь эти виртуальные собеседники сейчас переживают взрывной рост популярности. Идея делать чат-бот традиционно взялась у нас не с потолка – для одного из наших заказчиков, мы как раз разработали чат-бот в Telegram, который позволяет территориальным менеджерам компании без доступа к стационарному компьютеру и быстрому интернету, оперативно управлять проектами – назначать, делегировать задачи и следить за статусом их исполнения.
Шаг 2. О чем будем чатиться? Бота мы обязательно хотели сделать полезным, чтобы он продолжал жить и радовать всех и после Дней карьеры. После долгих раздумий и споров, такую тему нашли! В основу положили популярную в нашем городе онлайн-анкету Алексея Козионова на знание Новосибирского Академгородка. И за неделю до мастер-класса мы запустили в Telegram нашего чат-бота «Академик» @academic_quiz_bot. «Академик» задает любопытные вопросы (всего 101 вопрос) с вариантами ответов о жизни любимого района, вроде: «Что в Академгородке называют "Поганкой"?», «Какой американский президент посещал Академгородок?», «Почему микрорайон называется "Щ"?», «Сколько ступенек имеет лестница, ведущая от центрального пляжа до моста?», «Кто из лауреатов Нобелевской премии жил в Академгородке?» и так далее.
«Академика» мы дополнили стикерпаком с подбадривающими фразочками от нашего талисмана – ebtman’а.
Скачать стикерпак можно тут. В первую неделю жизни бот также работал регистратором на мастер-класс и тщательно собирал контакты участников. А сейчас это просто развлекательный тест. Все, кто знает Академгородок, вэлкам проходить викторину. Шаг. 3. Рецепт чат-бота викторины Про создание чат бота с помощью Microsoft Bot Framework на Хабре писалось уже много. А вот туториалов – единицы. Поэтому для всех, кто ещё не запилил себе виртуального «болтуна», рассказываем наш рецепт.
Для начала создаём проект в Visual Studio с использованием Bot Application Template.
После создания мы сразу получаем готового «Эхо» бота, который повторяет отправленное ему сообщение в ответе. Мы можем запустить проект кнопочкой F5. В браузере откроется дефолтная страница вот такого вида:
Копируем адрес и запускаем эмулятор.
Куда вставляем скопированный адрес и дописываем api/messages. Проверяем что всё работает.
Этот класс при создании будет загружать вопросы с сервера и при необходимости возвращать следующий вопрос исключая те, на которые пользователь уже ответил. Создадим новый класс в Visual Studio под названием QuizDialog. И реализуем в нём интерфейс IDialog<string>.
Реализуем функцию ShowQuestion. Сначала загрузим список уже пройденных вопросов из хранилища.
И запросим следующий вопрос
Если вопросов нет, то считаем квиз пройден и возвращаем управление в родительский диалог.
Также картинки можно передавать не через url (хотя я считаю, что в telegram надёжнее именно так), а через Attachment.
Код функции BoldString:
Текст форматируем в «xml» чтобы разделить текст по строчкам и выделить строчку с номеров вопроса жирным цветом. Тут стоит учитывать, что не все мессенджеры поддерживают одинаковые форматы, тут стоит читать документацию. Далее нам нужно вывести список ответов. Будем выводить двумя способами. Так как у нас бывают ответы с длинным текстом. Такие мы будем выводить просто под номерами и кнопочки с номерами ответов после. А если ответы короткие (до 30 символов), то будем выводить их сразу в виде кнопочек.
Собственно, функция PromptDialog.Choice показывает диалог с кнопочками. Далее нам понадобятся две функции для обработки выбора пользователя.
В случае если пользователь написал что-то некорректное считаем его ответ неправильным. Вот такие мы злодеи. Далее, нужно показать правильный ответ и статистику. И небольшим бонусов если пользователь общается с ботом через «telegram» подбодрить его стикером.
Далее в MessagesController нужно вызвать наш диалог.
После отладки в эмуляторе можно опубликовать бота. Вот тут это уже описано. А наш проект целиком лежит вот тут. Шаг 4. Подводим итоги Этой студенческой весной мы научили молодежь писать собственных чат-ботов и собрали рекордное для нас количество участников на мастер-классе. Снова повстречались с фанатами ? У нас есть ребята, в смысле парень и девушка, которые ходят к нам на мастер-классы уже третий год подряд и, наконец, доросли, до 4 курса. Говорят, напишут диплом и сразу к нам (мы раньше 4-го курса студентов все равно не берем). А еще, сами получили большое удовольствие от общения с молодежью и вдохновение для новых проектов! Ну и викторину нашу очень любим и рекомендуем всем, кто знаком с Академом — @academic_quiz_bot.
Источник: habrahabr.ru Комментарии: |
|