Создание навыка Алисы
В качестве примера будет создан навык Попугай
, который повторяет все, что ему написал или сказал пользователь. Пример реализован на двух языках программирования: Python и Node.js.
Чтобы добавить навык Алисы на основе функции:
- Подготовьте облако к работе.
- Подготовьте код навыка.
- Создайте функцию.
- Создайте версию функции.
- Добавьте ссылку на функцию в навык Алисы.
- Протестируйте работу навыка.
Если созданные ресурсы больше не нужны, удалите их.
Подробнее о разработке навыка Алисы
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Подготовьте код для навыка Алисы
Для создания версии функции вы можете воспользоваться одним из форматов загрузки кода. Для примера код будет загружен в формате ZIP-архива.
- Скачайте с GitHub файл с примером: parrot.py
. - Создайте ZIP-архив
parrot-py.zip
с файломparrot.py
.
- Скачайте с GitHub файл с примером: index.js
. - Создайте ZIP-архив
parrot-js.zip
с файломindex.js
.
Создайте функцию
После создания функция будет содержать только информацию о себе: имя, описание, уникальный идентификатор и т. д. Непосредственно код навыка будет добавлен в функцию на шаге создания версии.
-
В консоли управления
выберите каталог, в котором будет создана функция. -
Нажмите кнопку Создать ресурс.
-
Выберите Функция.
-
Введите имя функции. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Нажмите кнопку Создать.
Создайте версию функции
Выберите язык программирования и создайте версию функции.
- В консоли управления
откройте Cloud Functions в каталоге, где вы хотите создать версию функции. - Выберите функцию, для которой необходимо создать версию.
- В разделе Последняя версия нажмите кнопку Создать в редакторе.
- Задайте параметры версии:
- Среда выполнения:
python37
. - Таймаут, c:
2
. - Память:
128 МБ
. - Сервисный аккаунт:
Не выбрано
.
- Среда выполнения:
- Подготовьте код функции:
- Способ:
ZIP-архив
. - Файл:
parrot-py.zip
. - Точка входа:
parrot.handler
.
- Способ:
- Нажмите кнопку Сохранить изменения.
- В консоли управления
откройте Cloud Functions в каталоге, где вы хотите создать версию функции. - Выберите функцию, для которой необходимо создать версию.
- В разделе Последняя версия нажмите кнопку Создать в редакторе.
- Задайте параметры версии:
- Среда выполнения:
nodejs12
. - Таймаут, c:
2
. - Память:
128 МБ
. - Сервисный аккаунт:
Не выбрано
.
- Среда выполнения:
- Подготовьте код функции:
- Способ:
ZIP-архив
. - Файл:
parrot-js.zip
. - Точка входа:
index.handler
.
- Способ:
- Нажмите кнопку Сохранить изменения.
Добавьте ссылку на функцию в навык Алисы
-
Перейдите на страницу навыка Алисы в личном кабинете
. -
Нажмите Создать диалог. В открывшемся окне выберите Навык в Алисе.
-
На вкладке Настройки, в поле Backend, выберите вариант Функция в Yandex Cloud. В выпадающем списке выберите нужную функцию.
Важно
В списке отображаются функции, которые вы имеете право просматривать. Чтобы прикрепить функцию к навыку, вам необходимо разрешение на запуск функции. Это разрешение входит в роли functions.functionInvoker, editor и выше.
-
Нажмите кнопку Сохранить внизу страницы и сохраните изменения.
Протестируйте работу навыка
- Откройте вкладку Тестирование на странице навыка в личном кабинете
. - Если все настроено правильно, в разделе Чат будет сообщение с приглашением начать беседу:
Hello! I'll repeat anything you say to me.
. - Отправьте сообщение с любым текстом и убедитесь, что вам пришел ответ с таким же содержанием.
Как удалить созданные ресурсы
Чтобы прекратить работу навыка, удалите функцию.