ym88659208ym87991671
Использование сущностей для смартапов | Документация SmartMarket
Skip to main content

Использование сущностей

Вы можете использовать сущности:

  • в сценарии;
  • в слотах интентов;
  • в паттернах;
  • в тренировочных фразах для STS-классификатора.

Использование в сценарии

Все сущности, найденные во фразе пользователя, доступны в сценарии с помощью переменной $jsapi.context().entities или $entites.

Пример:

state:
q!: Информация по продукту *
a: Информация по продукту: {{ $entities[0].value }}
caution

Объект entities создается при распознавании запроса пользователя. В других случаях, например при получении event!, возвращается значение undefined.

Создание слотов в интентах

При активации интента данные по соответствующему слоту попадут в переменную $parseTree._<имя слота>.

В этой переменной сохраняется исходный текст, по которому найдено совпадение, либо данные DATA, заданные для данной сущности в редакторе сущностей.

Пример:

    state:
intent: /купить
a: Action: {{ $parseTree._Action }}, Product: {{ $parseTree._Product }}

state:
intent: /продать
a: Action: {{ $parseTree._Action }}, Product: {{ $parseTree._Product }}

Использование в паттернах

Сущности можно использовать в паттернах, ссылаясь на них как @<имя сущности> или @<имя сущности>::<имя слота>.

Для сущности, указанной в паттерне, автоматически создается слот и она попадает в дерево разбора parseTree.

Значение сущности будет доступно в сценарии как $parseTree._<имя слота>.

Например:

    state:
q!: * @Product::p1 *
a: Информация по продукту: {{ $parseTree._p1 }}

Вы также можете использовать конвертеры в сущностях. Для этого необходимо задать сущность через именованный паттерн с помощью тега patterns, а затем объявить в нем конвертер.

Пример:

patterns:
$four = @four || converter = function() {return 4}

В примере объявлена сущность @four, для которой задан конвертер converter. Функция конвертера вернет значение 4.

Использование в фразах STS

Сущности можно использовать в примерах фраз классификатора STS, ссылаясь на них как @<имя сущности> или @<имя сущности>::<имя слота>.

Для сущности, указанной в примере, автоматически создается слот и она попадает в дерево разбора parseTree.

Значение сущности будет доступно в сценарии как $parseTree._<имя слота>.

Например:

    state:
e!: @Pizza::p2
a: Информация о пицце: {{ $parseTree._p2 }}
Обновлено 21 июня 2022

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

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