Чат-бот. Создай себе друга


МАСТЕР-КЛАСС
Создадим бота, который будет распознавать текстовые команды и общаться близко к "мыслящей" речи
О чем мастер-класс?
Сегодня существует множество разных голосовых виртуальных ассистентов (Google Ассистент, Алиса, Сири и др.). Их задача - помогать человеку, выполняя его голосовые команды, или разговаривать с ним, если нет другой компании.

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

Для кого этот мастер-класс?
Этот мастер-класс предназначен для родителей и детей, которые хотели бы научиться создавать чат-ботов, но не знают ни одного языка программирования
Для работы над мастер-классом понадобится:
Компьютер с доступом в интернет
Полезные материалы (ссылки и ресурсы):
Ссылка на образец чат-бота

Итак, начнем работать!



Подготовка к работе.



Прежде чем начать программировать, нужно познакомиться с программой и настроить ее
Для начала откроем сайт. Зарегистрируемся на сайте, нажав кнопку «Присоединяйся» в правом верхнем углу
1
Акцентные
2
После заполнения формы регистрации вам на E-mail придет ссылка – перейдите по ней, чтобы подтвердить регистрацию
Теперь на главной странице нажмите кнопку «Вход» и введите придуманные логин и пароль
3
Акцентные
4
Далее в левом верхнем углу нажмем кнопку «Создавай»
Открылось окно программирования Scratch. Посмотрите внимательно, на каком языке у вас все элементы – если на английском, то поменяйте его на русский: «Settings – Language – Русский»
5
Акцентные
6
Теперь давайте разберемся, из чего состоит среда программирования. Самостоятельно изучите схему
Удалим кота, нажав на значок мусорки, и выберем нового персонажа – он будет задавать вопросы. Нажмем «Выбрать спрайт» и выберем готового из библиотеки
7
Содержание ответов.



Пропишем ответы, которые будет давать чат-бот
Чат-бот будет по-разному реагировать в зависимости от того, что мы ему скажем. Разговор с ним должен напоминать диалог друзей:
  • Приветствие (бот будет отвечать разными способами)
  • Вопрос «Как дела?» (бот будет менять настроение)
  • Вопрос «Что делаешь?» (бот будет выбирать разные занятия)
  • Вопрос с ответом «да/нет» (бот будет уметь отвечать на простые вопросы)
  • Рассказ о чем-либо (остальную речь бот будет воспринимать как рассказ)
1
Создадим списки. Для этого нажмем кнопку «Создать список» во вкладке «Переменные»
2
Акцентные
3
В открывшемся окне напишем название списка и нажмем «ОК». Всего нам надо создать 5 списков (названия можно взять из предыдущего шага)
Добавим в списки содержание. Для добавления строчки, нужно в окошке списка нажать «+». Чтобы изменить размер окошка, можно нажать на «=» и потянуть
4
В содержании пишем то, что будет отвечать чат-бот – хотя бы по 3-5 ответов
5
Акцентные
6
Спрячем списки, чтобы заранее не было видно ответы – для этого снимем галочки напротив названий списков
Программирование приветствия.



Бот будет приветствовать нас один раз при старте программы
Ставим блок «Когда флажок нажат»
1
Акцентные
2
Сделаем так, чтобы бот выдавал случайные фразы из списка «Приветствие». Для этого возьмем следующие блоки
Соединим эти блоки: зеленый ставим в окошко оранжевого, а потом их вместе – в фиолетовый вместо слова «Привет»
3
Теперь фиолетовый блок будет случайным образом выбирать строчку из списка, прописанного в оранжевом блоке.
Важно: во второе окошко в зеленом блоке вписываем число, равное количеству строчек в списке
4
Программирование ответов на вопрос «Как дела?».



Эта схема ляжет в основу программирования остальных вопросов
Поставим блок «Повторять всегда», внутрь него добавим блок «Спросить и ждать». Этот блок будет запоминать то, что мы впишем и сохранять в блоке «Ответ»
1
Далее поставим блок «Если, то, иначе» (он похож на вилку)
2
Акцентные
3
Добавим условие в окошко внутри вилки. Возьмем блок «Яблоко содержит а» и в него поставим блок «Ответ». Вместо «а» впишем «как дела»
Заполняем вилку содержимым: в верхней части вставляем конструкцию, собранную по аналогии с пунктами 2 - 3, нижнюю оставляем пустой
4
Программирование ответов на вопрос «Что делаешь?».



Программа выглядит точно так же, как и для вопроса «Как дела?»
Продублируем блок «Если, то, иначе». Для этого нажмем на нем правой кнопкой мыши и выберем «Дублировать»
1
Акцентные
2
Скопированную часть поставим в пустую строчку «Иначе»
Заменим содержимое в скопированной части. Получим следующее
3
Программирование ответов на прочие вопросы.



Программируется так же, как и предыдущие вопросы
Повторяем действия из шагов 5.1-5.3. В окошке блока «Содержит» пропишем вопросительный знак. Так программа поймет, что мы задаем вопрос
1
Программирование реакций.



Во всех случаях «по умолчанию» бот будет воспринимать нашу речь как рассказ
Соберем последнюю конструкцию и поставим ее в пустую строчку «Иначе». В итоге программа будет выглядеть так
1
Важно! Программа выполняет блоки в той последовательности, в которой мы их располагаем. Поэтому сначала идут конкретные вопросы (их бот распознает по кодовым словам), потом остальные вопросы (их бот распознает по наличию вопросительного знака), потом все остальное (это бот воспринимает как рассказ)
2
Добавление дополнительных функций.



Проговорим основной порядок
Акцентные
1
Чтобы добавить чат-боту дополнительные функции, нужно следовать следующей инструкции
  • Убираем из скрипта блок про реакции (из шага 7)
  • Дублируем и подставляем на его место очередной «Если, то, иначе»
  • В зеленом блоке меняем кодовое слово
  • В свободной строке прописываем, что именно должно произойти
  • В «Иначе» возвращаем блок про реакции
Пример дополнительной команды
2
Публикация проекта.



Опубликуем бота в свободном доступе, чтобы им можно было делиться
Акцентные
1
Нажмем кнопку «Поделиться»
Теперь вы можете скопировать ссылку в открывшемся окне и отправить ее любому знакомому
2
Итоговый результат
Не удалять! Скругляет углы у галереи
Результат мастер-класса – это чат-бот, который может отвечать на текстовые запросы и поддерживать простейшую беседу. Функционал бота можно расширить, добавив команды или продлив списки ответов. Пример того, что может получиться, по ссылке
Вопросы для обсуждения:
Чему вы научились из данного мастер-класса?

Обсудите в семье, как можно усовершенствовать чат-бота?

Есть ли у вас варианты, как можно сделать ответы чат-бота более похожими на человеческие?

Хотели бы вы протестировать получившегося чат-бота на друзьях?

Как вы думаете, где еще можно применить умение создавать чат-бота?



Контакты
Методист:
Костюченко Тамара Георгиевна
https://vk.com/id249141719