Создайте чат-бота с помощью Amazon Lex

Amazon выпустила Lex, сервис AWS для создания диалоговых интерфейсов, также известных как чат-боты, с использованием голоса и текста. Lex — это тот же диалоговый движок, на котором работает Amazon Alexa, и теперь он доступен разработчикам для создания чат-ботов. Создать чат-бота с Lex легко и быстро, и не требуется глубокого обучения.

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

Намерение: намерение представляет собой действие, которое пользователь хочет выполнить. У бота будет одно или несколько связанных намерений. Например, бот электронной коммерции будет иметь намерение разместить заказ и проверить его статус. Каждое намерение будет иметь описательное имя, такое как PlaceOrder, CheckOrderStatus и т. д.

высказывания: высказывания — это образцы фраз, которые пользователь обычно использует для передачи намерения. Например, пользователь может сказать «Проверьте статус моего заказа» или «Каков статус моего заказа» и т. д. С намерением может быть связано одно или несколько высказываний. Чем больше высказываний связано с намерением, тем оно лучше.
Когда пользователь произносит любое высказывание, связанное с намерением, или подобные фразы, Лекс понимает намерение пользователя. В приведенном выше примере, когда пользователь говорит: «Пожалуйста, дайте мне статус моего заказа», Лекс может понять намерение пользователя, хотя фраза, используемая пользователем, не является точно настроенным произнесением. Понимание похожих фраз — это прелесть чат-бота, и это возможно благодаря его возможностям NLU, которые являются ядром Lex.

Слот: Слот — это параметр, связанный с намерением, которое требуется для выполнения запроса пользователя. У намерения может быть ноль или более слотов. В намерении CheckOrderStatus orderId будет одним из слотов. Во время выполнения Lex запрашивает у пользователя определенные значения слотов. Слот можно настроить по необходимости или по желанию. Пользователь должен указать значения для всех необходимых слотов перед выполнением намерения. Высказывания также настраиваются с помощью слота, который представляет собой фразы, которые пользователи используют для предоставления значений слота.

Тип слота: Каждый слот имеет тип. Существуют встроенные типы слотов, которые можно использовать или создать собственный тип слота, если это необходимо. Встроенный тип слота AMAZON.NUMBER можно использовать для слота orderId. При создании пользовательского типа слота необходимо перечислить список значений для слота.

Быстрый: Подсказка — это фраза, используемая Lex во время выполнения для получения значений слотов для намерения. С каждым слотом может быть связано одно или несколько приглашений. Лекс случайным образом берет одну из них. В слоте orderId могут быть такие подсказки, как «Пожалуйста, укажите идентификатор вашего заказа», «Какой идентификатор вашего заказа» и т. д.

Картинка1.png

Выше приведен пример диалога между пользователем и ботом для CheckOrderStatusIntent. Пользователь начинает разговор с фразы «Привет, каков статус моего заказа?». На основе высказываний, связанных с намерением, Lex распознает намерение пользователя и запрашивает у пользователя идентификатор заказа. OrderId — это обязательное поле слота для этого намерения. «Могу ли я узнать ваш orderId» — это одно из приглашений, связанных со слотом идентификатора заказа, а «Мой идентификатор заказа — {orderId}» — одно из высказываний, связанных со слотом.

Лямбда-инициализация, проверка, выполнение: В то время как Lex заботится о NLU и потоке диалогов, нам нужны функции Lambda для бизнес-логики. Lex обеспечивает встроенную интеграцию с Lambda. Лямбда-функцию можно использовать для инициализации, проверки и выполнения. Одна и та же функция может использоваться для обеих функций или может иметь разные функции в зависимости от сложности.

Пошаговая процедура создания чат-бота:

Давайте посмотрим, как создать чат-бота из Консоли управления AWS. Бот также может быть создан из интерфейса командной строки AWS. Обратитесь к Lex Guide, чтобы узнать, как создать бота из CLI. Учетная запись AWS необходима для создания бота с помощью Lex. Создайте учетную запись, если у вас ее нет.

Давайте сначала создадим лямбда-функцию.
Войдите в Консоль управления AWS и откройте консоль AWS Lambda по адресу https:// console.aws.amazon.com/lambda/. Выберите «Создать функцию», а на странице «Создать функцию» выберите «Автор с нуля», так как мы создаем пользовательскую лямбда-функцию.

Картинка1.png

Укажите уникальное имя для функции и выберите Runtime. Я выбрал Питон. Для роли создайте новую роль из шаблона(ов) и введите имя новой роли. В зависимости от других сервисов AWS лямбда-функция должна получить доступ, выбрать один или несколько шаблонов политик.
Картинка1.png
На странице функций выберите «Редактировать встроенный код» в разделе «Код функции» и напишите код Python для обработки запросов от Lex и сохраните его. Ознакомьтесь с руководством Lex по форматам запросов и ответов. В приведенном выше примере для простоты логика проверки отсутствует, и он просто отвечает сообщением о выполнении без фактического изменения какого-либо внутреннего состояния системы.
Следующий шаг — создание чат-бота Lex.

Войдите в консоль управления AWS и перейдите в Amazon Lex в разделе «Машинное обучение». На странице Amazon Lex по умолчанию будут выбраны боты. Нажмите «Создать», чтобы начать создание бота.

Картинка1.png

Lex предоставляет несколько готовых шаблонов ботов. В этом руководстве давайте создадим собственного бота. Заполните все необходимые данные для пользовательского бота и нажмите «Создать».

Картинка1.png

Я указал имя бота как «MyStore». Выходной голос будет использоваться при взаимодействии с чат-ботом посредством голоса. Тайм-аут сеанса — это время, в течение которого сеанс длится, когда бот остается бездействующим. Роль IAM будет создана по умолчанию. Я выбрал Нет для COPPA.

Следующий шаг — создание намерения. Нажмите «Создать намерение». Дайте уникальное имя намерению и нажмите «Добавить».

Картинка1.png

Я дал PlaceOrder в качестве имени моего намерения и предоставил несколько высказываний. Связанный productId как требуемый слот со встроенным типом слота AMAZON.NUMBER. И слот productId имеет одно подсказку – «Предоставить идентификатор продукта». Предоставлена ​​функция Lambda, которую я создал в предыдущем разделе в качестве ловушки кода выполнения. Дополнительные подсказки для слота можно настроить, щелкнув значок «Настройки» слота.

Картинка1.png

Я создал еще одно намерение для проверки статуса заказа.

Картинка1.png

Следующим шагом будет создание и тестирование чат-бота. Создайте чат-бота, нажав кнопку «Создать» в правом верхнем углу. После успешной сборки он будет готов к тестированию. Бот можно протестировать из консоли, щелкнув раздел «Проверить бота» на правой панели.
Картинка1.png

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *