СЛОТЫ

icon picker
Проверка формата введенных собеседником данных | Слот Regular Expression и под-слот Result

Назначение и общая информация

@Слот
Regular Expression
@Слот
, позволяющий проверить содержимое
@Контекстная переменная
на соответствие формату, заданному посредством регулярного выражения, и в зависимости от соответствия выполнить переход в соответствующую
@Ветка сценария
.
image.png
Слот Regular Expression является
@Комплексный слот
и не может существовать без
@Дочерний слот
@button
, которые начинают собственные
@Ветка сценария
, в которые будет осуществлен переход после проверки сообщения на соответствие регулярному выражению.
image.png
Слот Regular Expression обрабатывает содержимое переменной
@Контекстная переменная
, приведенной к нижнему регистру.

Создание и настройки комплексного слота Regular Expression

Атрибуты слота

image.png
NAME* название
@Слот
а, которое будет отображено в
@Дерево сценария
. Максимальная длина значения поля — 40 символов.
EXPRESSION* ー Регулярное выражение. Статья о регулярных выражениях:
Обрезка пробелов: по нажатию кнопки CREATE (при создании слота) или SAVE (при редактировании слота) обрезаются пробелы и переносы строк в начале и в конце поля EXPRESSION.

Атрибуты подслота Result

image.png
Name — название
@Слот
а, которое будет отображено в
@Дерево сценария
. Максимальная длина значения поля — 40 символов. Если название не введено, на
@Подслот
е в
@Дерево сценария
будут отображаться первые 34 символа из поля Value.
Value* — строка, с которой будет сравниваться значение
@Контекстная переменная
. Это значение также приводится к нижнему регистру при сравнении с ним содержимого
@Контекстная переменная
.

Содержание слота

Слот должен содержать регулярное выражение на языке Python. Примеры часто используемых в
@Агент
ах регулярных выражений:
Только цифры:
^[\d]+$
Только латинские буквы, числа, знаки переноса
^([A-Za-z0-9-]+)$
Адрес электронной почты
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+
Номер телефона РФ
(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$
URL
(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)
Поиск одной из подстрок в строке
.*(подстрока1|подстрока2).*
Важно: использование масок в слоте Regular Expression не поддерживается.

Подслоты Result

Автоматическая генерация подслотов при создании слота Regular Expression

При создании
@Слот
а Regular Expression автоматически генерируются два
@Подслот
а
@button
со значениями “true” и “false”.
image.png
Эти
@Подслот
ы не подлежат изменению и их можно удалить только с родительским слотом Regular Expression.
Расположение
@Подслот
ов определяется автоматически, перемещать подслоты нельзя:
@Подслот
@result
со значением “false” всегда является самым верхним подслотом в данном комплексном слоте Regular Expression (если строка не соответствует регулярному выражению, то нет смысла дальше проверять, будет осуществлен выход в ветку данного подслота - см. );
@Подслот
@result
со значением “true” всегда является самым нижним подслотом в данном комплексном слоте Regular Expression.

Добавление подслотов Result

Для создания нового
@Подслот
а
@result
необходимо нажать на кнопку +;
новая рег.png
В
@Подслот
е необходимо прописать необходимое значение. Это может быть любая строка, состоящая из чисел, букв и символов.
image.png
При создании пользователем новых
@Подслот
ов
@result
, содержащих точное значение, они будут располагаться между
@Подслот
ами “true” и “false” сверху вниз в порядке их создания.
image.png
При проверке на точное значение символы и \ в
@Подслот
е
@result
должны быть экранированы: им должен предшествовать символ \, в противном случае
@Агент
не обучится. Подробнее: .
image.png

Удаление подслотов Result

Чтобы удалить
@Подслот
@result
, необходимо кликнуть по нему правой кнопкой мыши и нажать кнопку Remove Branch, затем нажать OK во всплывшем диалоговом окне.
image.png
image.png
Возможно удалить только созданные вручную
@Подслот
ы
@result
.
Удаление автоматически сгенерированных
@Подслот
ов
@result
со значениями true и false невозможно. При попытке это сделать появится следующая ошибка по центру внизу:
image.png

Работа слота

@Агент
делает копию содержимого
@Контекстная переменная
.
Данное значение приводится к нижнему регистру.
Полученное значение проверяется на соответствие регулярному выражению, прописанному в слоте Regular Expression. Результат проверки может быть:
false (ложь) — значение
в нижнем регистре не соответствует регулярному выражению,
при этом будет создана
@Системные контекстные переменные
, содержащая текст ошибки;
@Системные контекстные переменные
существует в
@Контекст Чата
до:
следующего выполнения этого же или другого слота Regular Expression;
выполнения слота
@NLU
;
выполнения слота
@External Request
.
true (истина) — значение
@Контекстная переменная
в нижнем регистре соответствует регулярному выражению
при этом будет создана
@Контекстная переменная
, куда будет записана соответствующая регулярному выражению часть
в нижнем регистре, в т.ч. это может быть содержимое
полностью;
в случае если в
есть несколько подстрок, соответствующих регулярному выражению, в
@Контекстная переменная
будет записана первая соответствующая подстрока;
@Контекстная переменная
существует в
@Контекст Чата
до следующего выполнения этого же или другого
@Слот
а Regular Expression в данном
@Агент
е.
Выход из
@Комплексный слот
Regular Expression+result: Результат проверки последовательно сверху вниз сравнивается со значениями в
@Подслот
ах
@result
и осуществляется переход в соответствующую
@Ветка сценария
, по очереди выполняются следующие проверки:
Несоответствие регулярному выражению: Если Результат проверки false (ложь), то будет осуществлен переход в
@Ветка сценария
самого верхнего
@Подслот
а
@result
со значением “false”
Соответствие точному значению: Если Результат проверки true (истина) и есть созданные пользователем
@Подслот
ы
@result
для проверки на точное соответствие, то будет осуществлен переход в
@Ветка сценария
первого
@Подслот
а, значение которого совпадет с
в нижнем регистре. Значение
@Подслот
атакже приводится к нижнему регистру при сравнении.
Соответствие регулярному выражению: Если Результат проверки true (истина) — и нет
@Подслот
ов
@result
для проверки на точное соответствие, или значения в них не совпадают с
в нижнем регистре, то будет осуществлен переход в
@Ветка сценария
самого нижнего
@Подслот
а
@result
со значением “true”
image.png
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.