Условия
В этом разделе мы рассмотрим, как создавать условия и делать ветвления в Smartbot
Last updated
В этом разделе мы рассмотрим, как создавать условия и делать ветвления в Smartbot
Last updated
Перед прочтением мы рекомендуем ознакомиться со статьей Цепочка диалога
Условия - важный элемент работы бота. Благодаря условиям вы можете разветвить логику выполнения бота. По условиям бот находит подходящий ответ или цепочку для запуска.
При создании любого вопроса или цепочки, нужно задать условие запуска:
Условие состоит из 3 элементов: ключ, тип сравнения, значение.
Для проверки условия бот берет значение ключа и сверяет его в соответствии с указанным типом сравнения. В примере выше ключом является последнее сообщение пользователя, оно сравнивается со словом "привет" типом сравнения "равно".
Все условия состоят из 3 групп: условия на сообщение, условия на переменные и сложные условия. Каждая из этих групп объединяется по И (должны быть выполнены все условия) или по ИЛИ (должно быть выполнено хотя бы одно условие). Например: сообщение равно "привет" ИЛИ сообщение равно "добрый день" ИЛИ сообщение равно "здравствуйте". В этом случае должно быть выполнено хотя бы одно из условий: или первое, или второе, или третье.
Чем больше уточняющих условий вы добавите, тем выше вероятность, что бот ответит на вопрос пользователя правильно и запустит нужную команду!
Чтобы изменить режим проверки, нажмите на "должно быть выполнено хотя бы одно из условий". Тогда режим изменится на "должны быть выполнены все условия":
Обращаем ваше внимание, что такое условие бессмысленно, потому что никогда не сработает, так как сообщение не может быть одновременно и "привет", и "добрый день", и "здравствуйте" 😄 Но для примера мы переключили режим сравнения.
Основное условие - это условие на сообщение. Такое условие проверяет последнее сообщение пользователя.
Сообщение можно проверить с помощью следующих типов сравнения:
Рассмотрим некоторые из них.
Типы сравнения равно и не равно проверяют четкое равенство или неравенство сообщения заданному тексту. Например, сообщение "привет" будет соответствовать только такому тексту.
Эти типы сравнения проверяют, что сообщение содержит заданные слова. Сообщение может содержать эти слова последовательно в любом месте сообщения.
В этом режиме бот проверяет, что сообщение пользователя начинается или заканчивается на заданный в условии текст.
Данное условие сравнивает тексты с помощью умного алгоритма, использующего машинное обучение. Данный режим лучше всего подходит для сравнения небольших фраз.
Например, если задать условие, что сообщение должно быть похоже на "адрес доставки", то бот будет реагировать на похожие фразы: 😱
Условия на переменные существенно расширяют функционал условий! Например, вы можете проверять данные о пользователе или специальные переменные.
Чтобы добавить условие на переменные, нажмите "+ условие на переменную":
Группа условий на сообщение проверяется ВМЕСТЕ с группой условий на переменные. Таким образом, чтобы было выполнено общее условие, обе группы должны выполняться 🤓
В примере выше условие выполнится только если сообщение будет равно "привет" (или другие указанные варианты) И если пол пользователя = мужской.
В условиях на переменные можно указать свои переменные, созданные в разделе Пользовательские переменные и изменить их с помощью шага "установить переменные".
Сложные условия пишутся на языке SmartQuery.
С их помощью можно, например, проверить наличие элемента в Массиве, или объединить несколько условий через И и ИЛИ, например:
Тут можно ознакомится с применением регулярных выражений для проверки сообщения на наличие чисел/номеров телефона/email и прочих паттернов.
Кнопка «Проверить код» выполняет указанный в поле ввода код и, в случае отсутствия ошибок, показывает значение полученного выражения.
Следует учитывать, что проверка кода выполняется от имени текущего пользователя (админа). То есть будут использоваться его локальные и специальные переменные. Значением переменной %сообщение% является строка «Test».
Также отметим, что при проверке синтаксиса, значения изменившихся переменных НЕ сохраняются.