Создайте своего собственного чат-бота с помощью Amazon Lex и научите его говорить все, что хотите.

Это руководство проведет вас через весь процесс создания чат-бота с помощью Amazon Lex. Мы начнем с настройки простых ответов, а затем создадим более сложные.

Настраивать

Поскольку чат-бот построен на Amazon Web Services, вам необходимо создать учетную запись. Если у вас его нет, вы можете создать его здесь и нажать Создать бесплатную учетную запись.

После того, как вы настроите свою учетную запись, мы сможем настроить чат-бота. В Консоли управления AWS найдите Lex или щелкните раскрывающееся меню Службы в верхнем левом углу страницы, и вы найдете его в категории Машинное обучение.

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

Теперь вы можете назвать своего бота и выбрать выходной голос. Голос будет использоваться, если вы когда-нибудь захотите создать версию своего бота для голосового чата. Мы также установим тайм-аут сеанса на 5 минут и выберем «Нет» для COPPA (если вы не собираетесь включать ответы без PG).

Когда все настроено, вы можете нажать «Создать». Вы попадете на новую панель управления ниже. Я объясню, что все означает, по ходу дела.

Намерения

Чат-бот - это набор ответов, которые он дает на определенное сообщение. Они хранятся в намерениях, которые похожи на темы для разговора.

Как дать вашему боту имя

Мы сохраним простоту нашего первого намерения. Если кто-то спросит, как называется наш бот, мы ответим именем.

Создайте новое намерение, нажав «Создать намерение» или щелкнув значок «+» рядом с «Намерения» в меню слева на странице. Появится меню, и мы снова захотим выбрать «Создать намерение» . Нам нужно назвать намерение, поэтому назовите его примерно так: WhatAreYouCalled .

Это переводит нас на экран намерений. На данный момент важными разделами являются Образцы высказываний и Ответ . Остальные настройки мы рассмотрим позже.

Образцы высказываний

Высказывания - это фразы, на которые вы хотите, чтобы это намерение отвечало. Добавьте следующие фразы в качестве образцов высказываний:

  • "как тебя зовут"
  • "Как тебя зовут"
  • "Как ты хочешь, чтобы тебя называли"
  • "Что я должен позвонить вам".

Плюс Amazon Lex в том, что он использует Natural Language Understanding (NLU) для определения того, что пытается сказать пользователь. Если они скажут «Как тебя зовут?» Вместо «Как тебя зовут», Лекс все равно будет соответствовать фразам. Довольно умный!

Ответ

Нет, нам нужно отвечать на это сообщение. Нажмите кнопку « Добавить сообщение» в поле ответа. Это создает новое окно сообщения, которое мы должны заполнить.

Здесь вы можете ввести все, что хотите, чтобы бот ответил. Вы можете ввести несколько ответов, чтобы пользователь мог получать разнообразные и более естественные ответы.

Добавьте в качестве ответов следующее:

  • «Меня зовут SamBot».
  • «Можете называть меня SamBot»

Теперь нажмите «Сохранить намерение» внизу страницы, и вы создали свое первое намерение.

Сборка и тестирование бота

Чтобы ваш новый чат-бот заработал, нам сначала нужно его построить. Это позволяет Лексу взять ваши образцы высказываний и сложить их все вместе. Нажмите кнопку «Построить» в правом верхнем углу страницы (и нажмите «Построить» еще раз, если появится всплывающее окно). Завершение сборки бота может занять несколько минут, так что наберитесь терпения.

Когда все будет готово, вы увидите новую область справа под названием Test Bot (latest). Здесь вы можете попробовать поговорить со своим недавно созданным ботом и проверить его. Попробуйте спросить у нового бота, как его зовут.

Добавление большего количества намерений

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

Что скажет ваш бот, если пользователь скажет "Привет" или "Привет". Мы собираемся расширить это позже, поэтому убедитесь, что у вас все работает!

Вы также можете попытаться заставить своего бота ответить на следующие вопросы:

  • Кто тебя сделал?
  • Какой ваш любимый цвет?
  • Каково быть роботом?

На какие еще вопросы вы можете придумать, чтобы ваш бот ответил?

Быстрая подсказка

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

Улучшение намерения Hello

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

Новое намерение Hello

Это дизайн для нового намерения

Клиент - Привет,
Бот - Привет, как тебя зовут?
Клиент - меня зовут Дэйв
Бот - Привет, Дэйв, приятно познакомиться. Я могу вам чем-нибудь помочь сегодня?

Слоты

В Lex переменные хранятся в слотах, которые содержат следующее:

  • Имя свойства
  • тип слота
  • незамедлительный.

Есть несколько различных способов создания новых слотов, и я расскажу о некоторых из них ниже.

В разделе Слоты добавьте следующую информацию, чтобы создать новый слот.

  • Имя: «Имя»
  • Тип слота: «AMAZON.GB_FIRST_NAME»
  • Подсказка: «Привет, как тебя зовут?»

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

Пользователь может ответить просто ответом на вопрос, но что, если он скажет что-то вроде «Меня зовут Дэвид»? Лексу нужно знать, какой бит ответа является переменной, а какие слова-заполнители. Вы определяете переменную в фигурных скобках вокруг нее.

Последний бит - изменить окончательный ответ. Вы можете включить любую из переменных в окончательное сообщение, используя тот же синтаксис {variableName}, что и в подсказках.

После того, как все это обновлено, пришло время построить еще раз и попробовать!

Другой способ заполнения слотов

Пока что пользователь произносит фразу, которая заставляет бота отвечать, предлагая указать значение слота. Это здорово, но есть другой способ. Что, если пользователь говорит «Привет, это Клэр», а бот спрашивает его: «Как мне вам позвонить?»?

Это просто неправильно. Они назвали вам свое имя, а затем вы спрашиваете их имя. К счастью, мы можем разобраться в этом.

Мы можем добавить новое высказывание, включающее имя слота. Это то же самое, что и написание подсказки, включая {SlotName} в высказывание.

Теперь это заполняет слот их именем из первого сообщения. Слот заполнен, поэтому приглашение никогда не должно срабатывать, и последнее сообщение отправляется.

Написание собственных намерений

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

Попробуйте создать намерение, которое работает следующим образом:



Спасибо за то, что следуете этому руководству. Надеюсь, вам понравилось. Если да, то, пожалуйста, нажмите кнопку хлопка и следуйте за мной, чтобы увидеть больше руководств по ботам и материалов по JavaScript.