chatme.ai
Search…
Создание Агента на платформе
Создание Сценария Агента
ДЛЯ РАЗРАБОТЧИКОВ
Проверка формата введенных собеседником данных | Слот Regular Expression и под-слот Result

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

Слот Regular Expression – слот, позволяющий проверить содержимое переменной client_message на соответствие заданному посредством регулярного выражения формату. В зависимости от соответствия выполняется переход в соответствующую ветку Сценария.
Слот Regular Expression является комплексным слотом и не может существовать без дочерних под-слотов Result. Под-слоты Result начинают собственные ветки, в которые осуществляется переход после проверки сообщения на соответствие регулярному выражению.
Слот Regular Expression обрабатывает содержимое системной контекстной переменной client_message, приведенное к нижнему регистру.

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

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

NAME – название слота, которое будет отображено в Сценарии. Максимальная длина значения поля — 40 символов.
EXPRESSION ー регулярное выражение.
Статья о регулярных выражениях: https://tproger.ru/translations/regular-expression-python/

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

Слот должен содержать регулярное выражение на языке Python. Примеры часто используемых в ботах регулярных выражений:
  • Только цифры
^[\d]+$
  • Только латинские буквы, числа, знаки переноса
^([A-Za-z0-9-]+)$
  • Адрес электронной почты
[a-zA-Z0-9_.+-][email protected][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\.)?[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,6}\b([[email protected]:%_\+.~#?&\/\/=]*)
  • Поиск одной из подстрок в строке
.*(подстрока1|подстрока2).*

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

VALUE — строка, с которой будет сравниваться значение переменной client_message. Это значение также приводится к нижнему регистру при сравнении с ним содержимого переменной client_message.

Подслоты Result

  • При создании слота Regular Expression автоматически генерируются два подслота Result со значениями true и false.
  • Эти подслоты не подлежат изменению и их можно удалить только с родительским слотом Regular Expression.
  • Расположение подслотов определяется автоматически, перемещать подслоты нельзя:
    • Подслот Result со значением false всегда является самым верхним подслотом в слоте Regular Expression (если строка не соответствует регулярному выражению, то нет смысла дальше проверять, осуществляется выход в ветку данного под-слота – см. Назначение и общая информация).
    • Подслот Result со значением true всегда является самым нижним подслотом в слоте Regular Expression.
  • Также можно провести проверку переменной client_message на соответствие конкретной строке. Для этого необходимо создать новый под-слот Result и прописать в нем это значение. Это может быть любая строка, состоящая из чисел, букв и символов.
  • Новые подслоты Result, содержащие точное значение, будут располагаться между под-слотами true и false сверху вниз в порядке их создания.
  • При проверке на точное значение символы и \ в подслоте Result должны быть экранированы: им должен предшествовать символ \. В противном случае Бот не обучится.

Работа слота

  1. 1.
    Агент делает копию содержимого переменной client_message.
  2. 2.
    Данное значение приводится к нижнему регистру.
  3. 3.
    Полученное значение проверяется на соответствие регулярному выражению, прописанному в слоте Regular Expression. Результат проверки может быть:
    1. 1.
      false (ложь) — значение client_message в нижнем регистре не соответствует регулярному выражению,
      • при этом будет создана Системные контекстные переменные error, содержащая текст ошибки;
      • переменная error существует в Контексте Чата до:
        1. 1.
          следующего выполнения этого же или другого слота Regular Expression;
        2. 2.
          выполнения слота NLU;
        3. 3.
          выполнения слота External Request.
    2. 2.
      true (истина) — значение client_message в нижнем регистре соответствует регулярному выражению
      • при этом будет создана Системная контекстная переменная parse_result, куда будет записана соответствующая регулярному выражению часть client_message в нижнем регистре, в т.ч. это может быть содержимое client_message полностью;
      • в случае если в client_message есть несколько подстрок, соответствующих регулярному выражению, в parse_result будет записана первая соответствующая подстрока;
      • переменная parse_result существует в Контексте Чата до следующего выполнения этого же или другого слота Regular Expression в данном Чате.
  4. 4.
    Выход из комплексного слота Regular Expression+result: результат проверки последовательно сверху вниз сравнивается со значениями в подслотах result и осуществляется переход в соответствующую Ветку сценария, по очереди выполняются следующие проверки:
    1. 1.
      Несоответствие регулярному выражению: если результат проверки — false (ложь), то будет осуществлен переход в Ветку сценария подслота result со значением “false”;
    2. 2.
      Соответствие точному значению: если результат проверки — true (истина) — и есть созданные пользователем подслоты result для проверки на точное соответствие, то будет осуществлен переход в Ветку сценария первого подслота, значение которого совпадет с client_message в нижнем регистре. Значение подслота также приводится к нижнему регистру при сравнении;
    3. 3.
      Соответствие регулярному выражению: если результат проверки — true (истина) — и нет подслотов result для проверки на точное соответствие, или значения в них не совпадают с client_message в нижнем регистре, то будет осуществлен переход в Ветку сценария подслота result со значением “true”.
Copy link
On this page
Назначение и общая информация
Создание и настройки комплексного слота Regular Expression
Атрибуты слота Regular Expression
Содержание слота Regular Expression
Атрибуты под-слота Result
Подслоты Result
Работа слота