Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS

Отредактировано

Гайд, как создать погодного бота с помощью инструмента Microsoft Bot Framework и искусственного интеллекта LUIS, который будет понимать человеческий язык и выдавать ответ о погоде

13К открытий14К показов

Очевидно, разработка технологий искусственного интеллекта становится одним из приоритетных направлений в деятельности Microsoft. В ходе пленарного выступления на конференции Build 2016 был анонсирован новый набор инструментов для разработки ботов — Microsoft Bot Framework.

Для создания ботов даже не потребуется глубокое знание программирования: основные возможности для обучения искусственного интеллекта новым словам и фразам, определенным сценариям и событиям доступны через наглядный интерфейс.

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 1

В этой статье мы создадим тестового бота с использованием Microsoft Bot Framework, обучим и протестируем его с помощью встроенного эмулятора. Идея бота проста — он должен понимать человеческий язык и отвечать, когда его спросят о погоде в каком-то городе.

Архитектура проекта

Итак, вот как будет выглядеть схема работы нашего бота:

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 2

Как можно понять, после получения сообщения оно сначала отправляется в «умное» API Microsoft Cognitive Services — Language Understanding Intelligent Service, сокращенно «LUIS». Именно с использованием LUIS мы сможем обучить бота понимать естественный язык и отвечать прогнозом погоды. В ответ на каждое такое сообщение LUIS возвращает всю содержащуюся в нем информацию в JSON.

Для краткости мы не будем рассказывать о процессе регистрации в Bot Framework и LUIS, так как никаких трудностей с этим возникнуть не должно. Также просим обратить внимание, что на данный момент Microsoft Bot Framework не поддерживает русский язык.

Используем LUIS

Видео, кратко объясняющее принцип работы LUIS, можно посмотреть здесь.

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

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 3

LUIS разбивает приложения на действия, на этом скриншоте их три: погода (weather), состояние (condition) и место (location). Подробнее о действиях (intents) рассказано в официальном видео выше.

LUIS в действии

Выполнив базовое обучение, попробуем сделать HTTP запрос к LUIS и получить ответ в JSON. Давайте спросим его: «Is it cloudy in Seattle?» («В Сиэтле сейчас облачно?») — и вот что он нам вернет:

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 4

Теперь попытаемся использовать это в реальном боте.

Создание бота

В качестве платформы будем использовать ASP.NET. Для начала необходимо добавить шаблон Bot Framework в Visual Studio. Подробную инструкцию по этому найдете в официальной документации.

Теперь создадим новый проект с его использованием:

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 5

По сути, это простое приложение всего с одним контроллером, который и занимается обработкой сообщений от пользователей. Давайте напишем простой код, который на любое сообщение будет отвечать «Welcome to Streamcode»:

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 6

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

Подробная инструкция по установке и настройке эмулятора.

Запустив эмулятор, попробуем пообщаться с новосозданным ботом:

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 7

Как и ожидалось, на все сообщения он отвечает одной фразой.

Интеграция с LUIS

Так как эта статья является вводом в Microsoft Bot Framework, то мы не будем публиковать тут все исходные коды, приведем лишь самые важные. Остальные мы разместили в GitHub-репозитории.

1. Передаем сообщение в LUIS, получаем ответ и на основе наиболее релевантного «действия» (intent) выдаем ответ.

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 8

Прогнозы погоды получаем через API OpenWeatherMap.com.

2. Заготовленные шаблоны ответов.

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 9

Финальный результат:

Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS 10

Материалы для дальнейшего обучения

  1. Документация по Bot Framework
  2. Channel9: создаем чат-бота
  3. Документация по LUIS
  4. Microsoft Cognitive Services 
Следите за новыми постами
Следите за новыми постами по любимым темам
13К открытий14К показов