Статьи

Настройка вашего помощника Api.ai с намерением и контекстом

Если вы хотите больше узнать об искусственном интеллекте, посмотрите наши скринкасты Microsoft Cognitive Services и API Text Analytics , чтобы узнать настроения AI в своем боте.

Настройка вашего помощника Api.ai с намерением и контекстом

Api.ai — это действительно простой сервис, который позволяет разработчикам создавать своих собственных базовых персональных AI-помощников / чат-ботов, которые работают как Siri и Alexa Alexa. Недавно я рассказал о том, как создать свой собственный помощник по искусственному интеллекту с помощью Api.ai , где я показал основы настройки помощника по искусственному интеллекту и научил его некоторым небольшим разговорам. В этой статье я хотел бы пойти дальше и представить «намерения» и «контексты», способ научить наших помощников по искусственному интеллекту более конкретным действиям, которые соответствуют нашим собственным потребностям. Здесь вещи могут стать действительно захватывающими.

Примечание: эта статья была обновлена ​​в 2017 году, чтобы отразить последние изменения в Api.ai.

Создание помощника AI с помощью Api.ai

Этот пост является одной из серии статей, направленных на то, чтобы помочь вам запустить простого личного помощника с Api.ai:

  1. Как создать свой собственный AI AI Assistant с помощью Api.ai
  2. Настройка вашего помощника Api.ai с намерением и контекстом (это!)
  3. Расширение возможностей вашего помощника Api.ai с сущностями
  4. Как подключить вашего помощника Api.ai к IoT

Что такое Намерение?

Намерение — это концепция, которую ваш помощник может научить понимать и реагировать определенным действием. Намерение содержит диапазон контекстов, которые мы можем ввести как предложения, которые пользователь может сказать нашему помощнику. Вот несколько примеров: «Закажите мне ланч», «Покажите мне сегодняшние ежедневные комиксы о Гарфилде», «Отправьте случайный GIF-файл команде SitePoint в Slack», «Подними меня настроение» и так далее. Каждый из них будет обычаем, который мы могли бы научить нашего помощника.

Создание намерения

Чтобы создать намерение, войдите в агент, к которому вы хотите добавить новую функциональность, на странице консоли Api.ai и нажмите либо кнопку «Создать намерение» рядом с заголовком «Содержание» в верхней части страницы, либо значок «Intents» в левом меню:

Создание нового намерения в Api.ai

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

Настройка нашего первого намерения

Как правило, мы можем сказать одно и то же. Чтобы учесть это, добавьте ряд утверждений, которые представляют различные способы, которыми пользователь может указать, что они хотели бы поднять настроение, такие как «Заставь меня улыбаться» и «Мне грустно»:

Подбодрить предложения

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

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

Создание действия

Вы также можете добавить параметры в свои действия, но я подробно расскажу об этом в нашей следующей статье на Api.ai!

Управление через речевой ответ

После того, как ваш пользователь сказал агенту, что он хотел бы подбодрить вас, вы хотите направить разговор к пользователю, рассказав агенту больше о том, что ему бы хотелось. Это помогает создать иллюзию интеллекта, одновременно ограничивая объем работы чат-бота. Для этого вы предоставляете речевые ответы в форме вопросов в разделе «Речевой ответ». Например, «Давайте подбодрим вас! Хотите шутку или цитату из фильма?

Наши речевые ответы

Наконец, нажмите кнопку «Сохранить» рядом с именем вашего намерения, чтобы сохранить ваш прогресс.

Тестирование вашего агента

Вы можете проверить свое новое намерение, введя тестовый оператор в тестовую консоль справа. Проверьте это, сказав «подбодри меня»:

Наш первый тест

Агент отвечает одним из ваших обученных ответов, как и предполагалось. После того, как вы предоставили фразу один раз, Api.ai узнает! Это позволит вам иметь варианты формулировки утверждения. Например, «заставь меня улыбнуться, пожалуйста», «скажи что-нибудь, что заставит меня улыбнуться» или «мне грустно сейчас», это также приведет к твоему намерению бежать:

Второй тестовый вариант

Эти вариации, похоже, сработали только после того, как я впервые использовал оригинальную фразу с ботом. Я не уверен, если это просто задержка в том, сколько времени нужно для того, чтобы выработать понимание похожих фраз, но если вариант не работает, попробуйте сначала спросить его об исходном утверждении. Если ваш вариант слишком отличается, вам нужно добавить его в операторы контекста. Чем больше заявлений вы добавите здесь, тем лучше наш агент сможет ответить.

Одна вещь, которую вы могли бы заметить, если бы вы использовали утверждение типа «Мне жаль это слышать! Как я могу помочь вам чувствовать себя лучше? »- это то, что он не достаточно конкретен, чтобы направлять пользователя. Если они не знают о вариантах «цитата из фильма» или «шутка», то они могут попросить что-то, что вы не охвачены! Со временем вы сможете обучить своего агента понимать многие другие концепции. Тем не менее, на данный момент я бы рекомендовал быть конкретным с вашими вопросами!

Использование контекстов

Направляя беседу с помощью вашего речевого ответа, вашему агенту нужен способ следить за тем, о чем был разговор, когда пользователь в следующий раз говорит с ним. Если пользователь произносит слова «шутка» или даже «любой» без какого-либо предварительного разговора, вне контекста это предложение может быть не слишком ясным для ответа агента. Как бы вы ответили, если бы я поговорил с вами и сказал: «Шутка»? Это было бы то, что ваш ассистент получил бы в данный момент, так как он не может вспомнить, куда вёл разговор ранее.

Именно здесь и происходит настройка контекстов в Api.ai. Мы создаем контексты для отслеживания того, о чем говорили пользователь и агент. Без контекста каждое предложение будет полностью отделено от предыдущего.

Чтобы создать контекст, нажмите ссылку «Определить контексты» в верхней части консоли Api.ai для своего намерения:

Открытие параметров контекста

Здесь у вас будет раздел для входных контекстов и раздел для выходного контекста. Входные контексты сообщают агенту, в каком контексте должно выполняться намерение. Для вашего первого намерения вы хотите, чтобы он запускался в любое время, поэтому оставьте входные контексты пустыми. Выходные контексты — это то, что устанавливает намерение, которое должно быть обнаружено в будущих сообщениях. Это тот, который вы хотите:

Входной и выходной контексты

Теперь создайте выходной контекст под названием «подбадривание». При именовании контекста Api.ai предлагает буквенно-цифровые имена без пробелов. Введите свой контекст и нажмите клавишу Enter, чтобы добавить его. Затем нажмите «Сохранить», чтобы сохранить изменения:

Создание нашего выходного контекста

Если вы затем протестируете своего агента, попросив его еще раз «подбодрить меня», результат покажет, что ваш контекст теперь тоже появляется:

Наш контекст в действии

Фильтрация содержимого с помощью контекстов

Ваш агент теперь понимает, что существует контекст разговора «поднять настроение». Теперь вы можете настроить намерение на запуск только в том случае, если этот контекст произошел. Например, создайте один возможный ответ на вопрос вашего агента — «Цитата из фильма». Вернитесь в меню слева и щелкните значок «плюс», чтобы создать новое намерение:

Создание нашего второго намерения

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

Ваше собственное намерение цитаты фильма

Затем прокрутите вниз и в своем ответе включите ряд цитат из фильмов (не стесняйтесь включать ваши собственные избранное):

Добавление цитат из ваших фильмов

Нажмите «Сохранить» рядом с именем вашего намерения еще раз, чтобы создать ваше намерение цитаты фильма. Затем в тестовой консоли рядом с ним, попробуйте ввести «подбодрить меня» и следуйте за ним с «Цитата фильма». Агент должен теперь сказать вам цитату из фильма!

Ваша цитата из фильма намерение в действии

Затем вы можете выполнить тот же процесс, чтобы добавить ответ для намерения «Шутка».

Вам также не обязательно ограничиваться предоставлением вашему агенту списка жестко закодированных ответов. Вместо этого вы можете установить имя действия для каждого намерения и ответить на это действие в своем веб-приложении. Это еще одна концепция, о которой я расскажу в следующей статье! Вы можете быть готовы к будущим добавлениям, указав в намерении «Цитата из фильма» действие, называемое «cheermeup.moviequote» (точка помогает вам убедиться, что действие не перепутается с какими-либо будущими общими действиями «цитата из фильма», которые вы добавляете).

В бою

Если вы добавили эти намерения в тот же персональный помощник, который использовался для вашего веб-приложения в предыдущей статье, новые функции должны появиться автоматически! Если вы создали новый, вам необходимо сначала обновить ключи API в вашем веб-приложении. Откройте веб-приложение для личного помощника в своем веб-браузере и попробуйте, попросив помощника подбодрить вас:

Просить Барри подбодрить меня

Затем скажите, что вам нужна цитата из фильма, и посмотрите, что произойдет:

Вслед за этим с просьбой о цитате фильма

Вывод

Существует множество способов использовать концепции намерений и контекстов для персонализации вашего помощника. Скорее всего, у вас уже есть несколько идей! Еще больше мы можем сделать, чтобы обучить нашего помощника Api.ai, научив его распознавать понятия (известные как сущности) в рамках ваших пользовательских намерений, о которых мы расскажем в следующей статье этой серии !

Если вы следите за тем, как строите своего личного помощника, используя Api.ai, я бы хотел услышать об этом! Какие обычаи у тебя есть? Дайте мне знать в комментариях ниже или свяжитесь со мной в Твиттере по адресу @thatpatrickguy .

Дайте вашему ИИ человеческое прикосновение с помощью инструмента чувств. Посмотрите наши скринкасты в Microsoft Cognitive Services и API Text Analytics .