title: "Создание навыка Алисы" description: "Пример создания навыка Алисы на двух языках программирования: Python и Node.js. В качестве примера будет создан навык Алисы — <q>Попугай</q>, который повторяет все, что ему написал или сказал пользователь." keywords:
- создание навыка алисы
- навык алисы
- пример создания навыка алисы
Создание навыка Алисы
В качестве примера будет создан навык <q>Попугай</q>, который повторяет все, что ему написал или сказал пользователь. Пример реализован на двух языках программирования: Python и Node.js.
Чтобы добавить навык Алисы на основе функции:
- Подготовьте облако к работе.
- Подготовьте код навыка.
- Создайте функцию.
- Создайте версию функции.
- Добавьте ссылку на функцию в навык Алисы.
- Протестируйте работу навыка.
Если созданные ресурсы больше не нужны, удалите их.
Подробнее о разработке навыка Алисы.
Перед началом работы {#before-you-begin}
{% include before-you-begin %}
Подготовьте код для навыка Алисы {#prepare-code}
Для создания версии функции вы можете воспользоваться одним из форматов загрузки кода. Для примера код будет загружен в формате ZIP-архива.
{% list tabs %}
-
Python
- Скачайте с GitHub файл с примером: parrot.py.
- Создайте ZIP-архив
parrot-py.zipс файломparrot.py.
-
Node.js
- Скачайте с GitHub файл с примером: index.js.
- Создайте ZIP-архив
parrot-js.zipс файломindex.js.
{% endlist %}
Создайте функцию {#create-function}
После создания функция будет содержать только информацию о себе: имя, описание, уникальный идентификатор и т. д. Непосредственно код навыка будет добавлен в функцию на шаге создания версии.
-
В [консоли управления]({{ link-console-main }}) выберите каталог, в котором будет создана функция.
-
Нажмите кнопку {{ ui-key.yacloud.iam.folder.dashboard.button_add }}.
-
Выберите {{ ui-key.yacloud.iam.folder.dashboard.value_serverless-functions }}.
-
Введите имя функции. Требования к нему:
{% include name-format %}
-
Нажмите кнопку {{ ui-key.yacloud.common.create }}.
Создайте версию функции {#create-version}
Выберите язык программирования и создайте версию функции.
{% list tabs %}
-
Python
- В [консоли управления]({{ link-console-main }}) откройте {{ ui-key.yacloud.iam.folder.dashboard.label_serverless-functions }} в каталоге, где вы хотите создать версию функции.
- Выберите функцию, для которой необходимо создать версию.
- В разделе {{ ui-key.yacloud.serverless-functions.item.overview.label_title-latest-version }} нажмите кнопку {{ ui-key.yacloud.serverless-functions.item.overview.button_editor-create }}.
- Задайте параметры версии:
- {{ ui-key.yacloud.serverless-functions.item.editor.field_runtime }}:
python37. - {{ ui-key.yacloud.serverless-functions.item.editor.field_timeout }}:
2. - {{ ui-key.yacloud.serverless-functions.item.editor.field_resources-memory }}:
128 {{ ui-key.yacloud_portal.common.units.label_megabyte }}. - {{ ui-key.yacloud.forms.label_service-account-select }}:
{{ ui-key.yacloud.component.service-account-select.label_no-service-account }}.
- {{ ui-key.yacloud.serverless-functions.item.editor.field_runtime }}:
- Подготовьте код функции:
- {{ ui-key.yacloud.serverless-functions.item.editor.field_method }}:
{{ ui-key.yacloud.serverless-functions.item.editor.value_method-zip-file }}. - {{ ui-key.yacloud.serverless-functions.item.editor.field_file }}:
parrot-py.zip. - {{ ui-key.yacloud.serverless-functions.item.editor.field_entry }}:
parrot.handler.
- {{ ui-key.yacloud.serverless-functions.item.editor.field_method }}:
- Нажмите кнопку {{ ui-key.yacloud.serverless-functions.item.editor.button_deploy-version }}.
-
Node.js
- В [консоли управления]({{ link-console-main }}) откройте {{ sf-name }} в каталоге, где вы хотите создать версию функции.
- Выберите функцию, для которой необходимо создать версию.
- В разделе Последняя версия нажмите кнопку Создать в редакторе.
- Задайте параметры версии:
- {{ ui-key.yacloud.serverless-functions.item.editor.field_runtime }}:
nodejs12. - {{ ui-key.yacloud.serverless-functions.item.editor.field_timeout }}:
2. - {{ ui-key.yacloud.serverless-functions.item.editor.field_resources-memory }}:
128 {{ ui-key.yacloud_portal.common.units.label_megabyte }}. - {{ ui-key.yacloud.forms.label_service-account-select }}:
{{ ui-key.yacloud.component.service-account-select.label_no-service-account }}.
- {{ ui-key.yacloud.serverless-functions.item.editor.field_runtime }}:
- Подготовьте код функции:
- {{ ui-key.yacloud.serverless-functions.item.editor.field_method }}:
{{ ui-key.yacloud.serverless-functions.item.editor.value_method-zip-file }}. - {{ ui-key.yacloud.serverless-functions.item.editor.field_file }}:
parrot-js.zip. - {{ ui-key.yacloud.serverless-functions.item.editor.field_entry }}:
index.handler.
- {{ ui-key.yacloud.serverless-functions.item.editor.field_method }}:
- Нажмите кнопку {{ ui-key.yacloud.serverless-functions.item.editor.button_deploy-version }}.
{% endlist %}
Добавьте ссылку на функцию в навык Алисы {#add-link}
-
Перейдите на страницу навыка Алисы в личном кабинете.
-
Нажмите Создать диалог. В открывшемся окне выберите Навык в Алисе.
-
На вкладке Настройки, в поле Backend, выберите вариант Функция в {{ yandex-cloud }}. В выпадающем списке выберите нужную функцию.
{% note warning %}
В списке отображаются функции, которые вы имеете право просматривать. Чтобы прикрепить функцию к навыку, вам необходимо разрешение на запуск функции. Это разрешение входит в роли {{ roles-functions-invoker }}, {{ roles-editor}} и выше.
{% endnote %}
-
Нажмите кнопку Сохранить внизу страницы и сохраните изменения.
Протестируйте работу навыка {#test}
- Откройте вкладку Тестирование на странице навыка в личном кабинете.
- Если все настроено правильно, в разделе Чат будет сообщение с приглашением начать беседу:
Hello! I'll repeat anything you say to me.. - Отправьте сообщение с любым текстом и убедитесь, что вам пришел ответ с таким же содержанием.
Как удалить созданные ресурсы {#clear-out}
Чтобы прекратить работу навыка, удалите функцию.