(бонус: добавить модульные тесты)
Предпосылки
- Установите NodeJS и NPM на свой компьютер
- Знание Джаваскрипта
- Иметь Аккаунт разработчика Amazon
Цель
В нескольких строках кода мы создадим диалог для Alexa. Вот увидите, это очень просто и быстро!
Совместимость
Amazon Alexa, а также другие платформы (Google Assistant, Messenger и т. д. и даже на вашем веб-сайте!)
Превыше всего
Установите NewBot CLI, чтобы воспользоваться преимуществами командной строки
npm install -g newbot-cli
Создать проект
newbot new <your directory name>
Перейти в сгенерированную папку
Вы можете протестировать чат-бот с помощью команды newbot serve.См. ниже
Создать навык Alexa
- Перейдите в консоль разработчика 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.
- Добавить конечную точку: ‹ngrok url›/emulator/alexa
2. Вариант : Моя конечная точка разработки – это поддомен домена, имеющего подстановочный сертификат от центра сертификации.
и нажмите кнопку Сохранить конечные точки.
Перейдите в меню Тест в консоли разработчика Amazon.
Идеально!
Во второй части мы увидим, как запустить нашего чат-бота в производство!
Дополнительная документация
Бонус, добавьте модульный тест
Юнит-тест позволяет проверить, хорошо ли идет разговор. К счастью, NewBot Framework может создавать модульные тесты!
Модульные тесты используют mocha. Вы должны знать эту структуру в первую очередь
Добавьте файл bot/main.spec.js :
Модульный тест используется для проверки навыка
- ConverseTesting проверяет навык. Указываем путь модели НЛП для проверки естественного языка
Если модель не существует, введите команду newbot train
- Создаем тестового пользователя методом createUser()
- В модульном тесте мы моделируем разговор с помощью метода conversation()
Запустите модульные тесты с помощью следующей команды:
newbot test
Наслаждаться! :)