Создание смартапа

В общем случае разработку смартапа с помощью SmartApp Code можно описать с помощью четырех шагов:

  1. Создание проекта.
  2. Настройка файла конфигурации.
  3. Создание сценария смартапа.
  4. Написание тестов.

Шаг 1. Создание проекта

Чтобы создать проект смартапа:

  1. В кабинете разработчика нажмите Создать смартап.
  2. Укажите название смартапа.
  3. Выберите тип смартапа: Chat App или Canvas App.

    От типа смартапа зависит, на каких устройствах он будет использоваться.

  4. На этапе Выбор инструмента нажмите Создать с нуля > SmartApp Code.
  5. Выберите шаблон смартапа.
  6. Нажмите кнопку Создать смартап.

Откроется редактор сценариев смартапа, в котором отображается структура проекта.

Как правило проект смартапа включает:

  • файл конфигурации chatbot.yaml, который содержит описание проекта и лежит в корневой папке проекта;
  • папку src, которая содержит ресурсы смартапа: сценарии смартапа в формате .sc, словари в формате .csv и скрипты в формате .js;
  • папку test, которая содержит тесты сценариев смартапа в формате .xml.
Структура проекта зависит от выбранного шаблона.

Чтобы добавить в проект файлы и папки, переименовать или удалить их, нажмите правую кнопку мыши в блоке с ресурсами проекта и выберите необходимый пункт меню.

Шаг 2. Настройка файла конфигурации

Файл chatbot.yaml содержит описание конфигурации смартапа.

Для создания самого простого смартапа, укажите в файле имя проекта и основной сценарий:

## Имя проекта
name:
    - Hello world!

## Основной сценарий смартапа
entryPoint:
    - main.sc

Конфигурационный файл может содержать следующие параметры:

  • имя проекта;

    по умолчанию — название шаблона, на основе которого создан смартап.

  • сценарий, который выполняется при запуске смартапа;
  • информацию о подключаемых модулях;
  • параметры модуля NLU;
  • список тестов и другие параметры.

Шаг 3. Создание сценария смартапа

Сценарий, с которого начинается работа смартапа, указывается параметре entryPoint файла конфигурации.

Во всех новых проектах в качестве основного сценария по умолчанию задан файл main.sc.

Измените файл основного сценария следующим образом:

theme: /
    state: start
        q!: * *start
        a: Привет! Это было несложно, да?
        go: hello

    state: hello
        q: *
        a: Тогда предлагаю ознакомиться с другими разделами.

Сценарий описывает переходы смартапа из одного состояния (тег state) в другое с помощью тегов языка SmartApp DSL.

В приведенном примере внутри состояния показан запрос пользователя (тег q) и реакция смартапа: ответная реплика ассистента (тег a) и переход в следующее состояние (тег go).

Время ожидания ответа смартапа после запроса пользователя — 7 секунд. За это время в смартап может переходить к разным состояниям, выполнять скрипты и запросы, пока не произошел переход в состояние, в котором формируется ответ. Ответом считаются теги реакций (a, image и другие) или ответы, заданные помощью переменной $response.

При запуске смартапа в тестовом виджете первым запросом будет команда /start.

В приведенном примере команда запуска обрабатывается с помощью состояния start. Если отдельное состояние, обрабатывающее команду /start, отсутствует, ассистент найдет следующее состояние, реагирующее на любой ввод, либо выведет ошибку обработки запроса.

Отправку команды /start при голосовом запуске смартапа необходимо включать отдельно в параметрах проекта.

Шаг 4. Написание тестов

Тесты описываются с помощью тестовых тегов SmartApp DSL и хранятся в файле test.xml, в папке test.

Добавьте следующий тест в файл:

<test>
    <test-case>
        <q>/start</q>
        <a state = "/start"/>
        <q>Ок</q>
        <a state = "/hello"/>
    </test-case>
</test>

Тестовые сценарии проверяют соответствие реального ответа ассистента ожидаемому и задаются с помощью тега test-case.

В приведенном примере реплика пользователя обозначена тегом <q>, а реакция ассистента тегом <a>.

Обычно в качестве ответа указывается состояние, в которое попадает смартап. Таким образом, при изменении ответа ассистента в сценарии не нужно будет менять его в тестах.

Показанный в примере тест проверяет, действительно ли смартап при запуске попадает в состояние start, а по фразе пользователя «Ок» переходит в состояние hello.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней