ym88659208ym87991671
Базовые элементы паттернов для смартапов | Документация для разработчиков

Базовые элементы паттернов в Code

Обновлено 15 декабря 2023

*

* — любая последовательность символов произвольной длины, возможно пустое поле.

* - воспринимает любое значение произвольной длины, возможно пустое поле. В примере ниже тег q: * ожидает любое значение от пользователя (буква, цифра или пустое сообщение и т.д), которое поступит в сценарий приложения и предоставит ответ из тега a:.

Пример

state: catchAll
q!: *
a: Я Вас не понял.
state: start
q!: *
a: Начинаем работу!
go!: /SecondStep

слово

слово — указанное слово. Проверяет полное посимвольное соответствие слова и его позицию во фразе.

Пример

state:
q!: привет
a: Привет! Как дела?

корень 

*корень* — стемма. Проверяет наличие в слове заданной основы. Не обязательно совпадает с морфологическим корнем слова.

Положение звездочки определяет какие слова попадут в паттерн:

  • Звездочка в начале обозначает вариативный префикс. В этом случае, в паттерн *ход попадут слова вход, выход, ход.
  • Звездочка в конце обозначает вариативный суффикс. В этом случае в паттерн ход* попадут слова ходить, ходунки, ход.
  • Звездочка в начале и конце, обозначает вариативные префикс и суффикс. В этом случае в паттерн *ход* попадут слова выходить, ход.

Пример

 state:
q: *подроб* //паттерн позволит определелить слова «поподробнее», «подробности», «подробнее»
a: Подробнее на сайте example.cn

(слово1|слово2|или целая фраза)

(слово1|слово2|или целая фраза) — альтернативы. Паттерн проверяет наличие одного из альтернативных вариантов правила.

Варианты разделяются с помощью символа | или /. Каждый вариант может содержать любые другие вложенные элементы паттерна.

Пример

state:
q: (привет | добр* (утро/день/вечер) | здравствуй* )
a: Привет-привет!

[опциональное слово|или другая фраза]

[опциональное слово|или другая фраза] — опции: приведенные в квадратных скобках элементы не являются обязательными.

Если правило сработало, вес паттерна увеличивается.

В опциях можно задавать альтернативы.

Пример

state: How many players
q: * {(сколько|как много|насколько много) (игроков|плееров|человек) [могут] [играть]} *
q: * [игра] для одного * [или] [нескольких] *
q: * {([игра]|в игре) [есть] (мультиплеер*|многопользовательск* [режим]|для нескольких пользовател*)} *
a: Это приключение для одного.

{слово1 слово2 (1|2)}

{слово1 слово2 (1|2)} — перестановки: проверяется соответствие заданных правил в любой последовательности.

Правила, которые могут быть перемешаны, разделяются пробелом.

Каждое правило может быть любым другим элементом паттерна с любой степенью вложенности.

Использование в перестановках более 5 правил снижает производительность смартапа.

Пример

state: How much gameplay
q: * {(сколько|(как|насколько) много|много) геймпле*} *
q: * {[насколько] (большая|велика) [ли] [эта] [игра]} *
a: Сюжет игры занял 2 тысячи страниц сценария!
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.