Python

Навык «Купи слона» предлагает совершить покупку пользователю, пока он не согласится.

Эта инструкция поможет вам подготовить исходный код на Python, развернуть веб-сервис и протестировать навык.

Внимание.

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

Если вы хотите запустить навык в условиях, приближенных к боевым, используйте функцию Яндекс.Облака, либо следуйте инструкции для Microsoft Azure или Amazon Web Services.

  1. Перед стартом
  2. Развертывание веб-сервиса
  3. Тестирование навыка
  4. Что дальше

Перед стартом

  1. Установите node.js.

  2. Подготовьте исходный код и конфигурацию навыка — скачайте или склонируйте код репозитория на GitHub.

    Как просто скачать файлы и не клонировать репозиторий

    Чтобы скачать файл из репозитория, перейдите в окно просмотра файла, нажав на него. В строке меню файла нажмите Raw. В открывшемся окне выполните команду Сохранить для вашего браузера или нажмите Ctrl+S. Файл сохранится автоматически с нужным расширением. Скопируйте скачанные файлы в папку вашего проекта.

    В результате у вас должна получиться папка (например, myskill-alice), в которой лежат файлы:
    • api.py,
    • now.json,
    • Dockerfile,
    • requirements.txt.
  3. Установите Vercel. В командной строке выполните команду npm i -g vercel.

    Примечание. Обратите внимание, что в бесплатном варианте Vercel ваш исходный код и логи приложений открыты для всех.

Развертывание веб-сервиса

Разверните приложение с помощью сервиса Vercel:

  1. Авторизуйтесь в Vercel. Для этого вам понадобится аккаунт одного из сервисов: Github, Gitlab или Bitbucket.

    Выполните консольную команду vercel. Введите адрес электронной почты, который вы использовали при регистрации. На этот адрес придет письмо от Vercel — откройте письмо и нажмите Verify.

    В результате вы должны увидеть в консоли сообщение «Email confirmed».

  2. Перейдите в папку проекта myskill-alice. Запустите сборку командой vercel. Дождитесь окончания процесса и скопируйте URL из строки Production: https://*******.vercel.app в поле с Webhook URL в консоли разработчика навыка.

Тестирование навыка

  1. Протестируйте работу черновика. По умолчанию навык выдает приветственную фразу «Привет! Купи слона!», предлагает подсказки и возвращает текст ответов пользователя.

  2. Попробуйте изменить код навыка. Откройте файл api.py в текстовом редакторе и отредактируйте предложенными ниже способами.

    Изменить приветственную фразу или ответ от навыка
    Найдите строку res['response']['text'] = 'Привет! Купи слона!' и измените текст в кавычках.
    Добавить варианты принимаемых ответов
    Придумайте новый вариант и добавьте его в массив с принимаемыми ответами.
    if req['request']['original_utterance'].lower() in [
            'ладно',
            'куплю',
            'покупаю',
            'хорошо',
        ]:
    Изменить текст подсказок
    Отредактируйте массив с подсказками, которые навык показывает пользователю.
    sessionStorage[user_id] = {
                'suggests': [
                    "Не хочу.",
                    "Не буду.",
                    "Отстань!",
                ]
            }

    Сохраните изменения. Затем обновите навык командой vercel --prod.

  3. Протестируйте новый черновик навыка. Если навык работает корректно, отправьте его на публикацию. Не забудьте установить в поле Тип доступа значение «Приватный».

  4. После публикации вам станет доступно тестирование с помощью голоса — убедитесь, что Алиса корректно распознает активационную фразу и навык правильно реагирует на реплики пользователя. Вы также сможете предоставить доступ к навыку вашим близким.

Что дальше

Попробуйте выполнить другие функции навыков. Они могут возвращать в ответ не только текст, но и изображения, а также проигрывать звуки. Чтобы узнать обо всех дополнительных возможностях, ознакомьтесь с протоколом работы Яндекс.Диалогов.