Написать пост

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

Аватар Тарас Сереванн

Очевидно, разработка технологий искусственного интеллекта становится одним из приоритетных направлений в деятельности 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:

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

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

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К открытий13К показов