Работа с проектами SmartApp Graph

SmartApp Code позволяет работать с проектами, созданными в визуальном конструкторе SmartApp Graph.

Работа с кодом из SmartApp Graph усложняется тем, что в нем есть вспомогательные конструкции, которые нужны визуальному редактору, но не нужны в SmartApp Code.

В этом разделе приведен список вспомогательных конструкций, которые можно встретить в сценарии, если открыть в SmartApp Code проект из SmartApp Graph.

Мета-теги

Мета-теги необходимы SmartApp Graph для построения некоторых блоков.

Описание блока в сценарии включает мета-тег и содержание блока в фигурных скобках:

@InputText
        {
          "boundsTo" : "/newNode_0",
          "actions" : [
            {
              "type" : "buttons",
              "buttons" : [
                {
                  "name" : "Акции",
                  "transition" : ""
                },
                {
                  "name" : "Перейти на сайт",
                  "transition" : "",
                  "url" : "https://mysite.com/home"
                }
              ]
            }
          ],
          "prompt" : "Введите текст",
          "varName" : "text",
          "then" : "/newNode_13"
        }

Удалите мета-теги из сценария, если планируете продолжать работу только в SmartApp Code.

Мета-теги описывают:

  • @InputText — блок ввода текста;
  • @InputNumber — блок ввода чисел;
  • @InputPhoneNumber — блок ввода телефонного номера;
  • @IntentGroup — блок интенты;
  • @EndSession — блок завершения сценария;
  • @HttpRequest — блок HTTP-запроса;
  • @Transition — блок переход.

Системыe интенты

SmartApp Graph использует вспомогательный набор системных интентов, в основе которых лежат заранее подготовленные шаблоны.

Интенты SmartApp Graph определены в библиотеке zfl-common, которую можно использовать в любом проекте.

Чтобы подключить библиотеку zfl-common в проект, откройте файл сценария и укажите следующее:

require: zenflow.sc
  module = sys.zfl-common

Список системных интентов библиотеки zfl-common:

  • $TEXT — срабатывает на любой текстовый ответ пользователя и сохраняет его в переменную;
  • $NUMBER — срабатывает, если пользователь указал число, и сохраняет его в переменную;
  • $CITY — распознает город из сообщения пользователя. Распознание городов работает на основе системного справочника;
  • $NAME — распознает имя из сообщения пользователя. Распознание имен работает на основе системного справочника;
  • $COUNTRY — распознает страну из сообщения пользователя. Распознание стран работает на основе системного справочника;
  • $WHERE — срабатывает при вводе страны или города;
  • $EMAIL — распознает почтовый адрес, который указал пользователь;
  • $PHONE — распознает введенный пользователем мобильный телефонный номер для России;
  • $AGREEMENT — распознает согласие пользователя. Например, если сообщение пользователя содержит «да», «ок» или «хорошо»;
  • $NEGATION — распознает отрицательный ответ. Например, если сообщение пользователя содержит «нет», «не надо» или «отменить»;
  • $HELLO — распознает приветствие. Например, если сообщение пользователя содержит фразы вида «добрый день» или «привет»;
  • $PARTING — распознает прощание. Например, если сообщение пользователя содержит фразы вида «пока», «прощай» или «увидимся»;
  • $THANKS — распознает благодарность пользователя. Например, если сообщение пользователя содержит фразы вида «спасибо» или «благодарю»;
  • $UNCERTAINTY — распознает сомнение пользователя. Например, если сообщение пользователя содержит фразы вида «может быть» или «вроде бы»;
  • $INSULTS — распознает нецензурную лексику или оскорбления. Например, если сообщение пользователя содержит мат или слова вроде «дурак»;
  • $APPROVAL — распознает одобрение от пользователя. Например, если сообщение пользователя содержит слова вида «хорошо» или «нравится»;
  • $NEGATIVE — распознает негативную оценку пользователя. Например, если сообщение пользователя содержит слова вида «плохо» или «не очень»;
  • $NORMAL — распознает нейтральную оценку пользователя. Например, если сообщение пользователя содержит слова вида «нормально» или «сойдет»;
  • $GENDER — распознает пол пользователя. Этот интент принимает значения вида «мужчина», «женщина», «девочка» и другие.

Пример использования в сценарии:

state: Подтверждение
    q: $AGREEMENT
    a: Ваш заказ оформлен! Спасибо!

Ассистент проверит реплику пользователя на наличие выражающих согласие слов и оформит заказ, если они есть.