(бонус: добавить модульные тесты)

Предпосылки

Цель

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

Совместимость

Amazon Alexa, а также другие платформы (Google Assistant, Messenger и т. д. и даже на вашем веб-сайте!)

Превыше всего

Установите NewBot CLI, чтобы воспользоваться преимуществами командной строки

npm install -g newbot-cli

Создать проект

newbot new <your directory name>

Перейти в сгенерированную папку

Вы можете протестировать чат-бот с помощью команды newbot serve.См. ниже

Создать навык Alexa

  1. Перейдите в консоль разработчика Amazon.

2. Нажмите кнопку "Создать навык".

3. В редакторе JSON добавьте следующее содержимое:

4. Нажмите кнопку «Сохранить модель».

Этот JSON позволяет вам запускать одно намерение и использовать преимущества любой системы НЛП и диалогового сценария, найденных в NewBot.

5. Добавьте имя вызова:

Создайте простое взаимодействие с NewBot Framework

bot/main.converse — это диалоговый сценарий основного навыка. Это просто сообщение об отбытии:

Используемый язык специфичен для NewBot. Он называется ConverseScript и позволяет создавать диалоговые скрипты с синтаксисом, близким к Javascript

Подробнее: https://newbot.io/docs/syntax/variables.html

  • $name — это глобальная переменная, относящаяся к пользователю.
  • start() – это функция, представляющая диалоговое окно.
  • @Event(‘start’) – это декоратор, указывающий, как должна запускаться функция. Здесь событие «start» указывает на то, что функция запускается, как только происходит первое взаимодействие с чат-ботом.
  • Prompt() – это встроенная функция, ожидающая ввода пользователем
  • :text волшебная переменная. Его создала система. Он содержит запись пользователя. Мы сохраняем значение в глобальной переменной $name.
  • @Event(‘on’, ‘AMAZON.StopIntent’) запускает диалог, если пользователь останавливает разговор. AMAZON.StopIntent — это заранее спланированное намерение Alexa. Вот более подробный список: https://developer.amazon.com/fr/docs/custom-skills/standard-built-in-intents.html

AMAZON.StopIntent не входит в движок NewBot Framework. Это событие обсуждается сторонним модулем (newbot-express), присутствующим в эмуляторе. Если вы хотите создать свой собственный коннектор Amazon Alexa, вам нужно подумать о том, чтобы самостоятельно инициировать события в диалоговом сценарии. Если не хотите заморачиваться с этим развитием, воспользуйтесь модулем newbot-express

  • @Intent() — это декоратор, определяющий намерение. Первый параметр: название намерения. Второй параметр: массив обучающих фраз

Код Javascript очень прост:

Настройте newbot.config.js

Добавьте alexa в свойство platforms в файле newbot.config.js. Это позволит вам напрямую проверить ваш разговор!

Мы помещаем пустой объект в качестве значения, потому что мы просто хотим активировать Alexa без добавления каких-либо дополнительных настроек.

Тест!

Запустите эмулятор. он создаст адрес ngrok, позволяющий создать туннель между Alexa и localhost:

newbot serve

Скопируйте URL-адрес Ngrok и перейдите в Конечную точку в консоли разработчика Amazon.

  1. Добавить конечную точку: ‹ngrok url›/emulator/alexa

2. Вариант : Моя конечная точка разработки – это поддомен домена, имеющего подстановочный сертификат от центра сертификации.

и нажмите кнопку Сохранить конечные точки.

Перейдите в меню Тест в консоли разработчика Amazon.

Идеально!

Во второй части мы увидим, как запустить нашего чат-бота в производство!

Дополнительная документация



Бонус, добавьте модульный тест

Юнит-тест позволяет проверить, хорошо ли идет разговор. К счастью, NewBot Framework может создавать модульные тесты!

Модульные тесты используют mocha. Вы должны знать эту структуру в первую очередь

https://mochajs.org

Добавьте файл bot/main.spec.js :

Модульный тест используется для проверки навыка

  • ConverseTesting проверяет навык. Указываем путь модели НЛП для проверки естественного языка

Если модель не существует, введите команду newbot train

  • Создаем тестового пользователя методом createUser()
  • В модульном тесте мы моделируем разговор с помощью метода conversation()

Запустите модульные тесты с помощью следующей команды:

newbot test

Наслаждаться! :)