- Приветственное сообщение при первом обращении.
Для того, чтобы поприветствовать пользователя при первом его обращении, мы можем проверять на старте, был ли диалог ранее или нет. Если вы используете Телеграм-коннектор, то сделать это можно проверкой, что переменная client_message равна «/start».
- Использование ранее полученной информации.
Если пользователь ранее говорил, как его зовут, или оставлял, например, свой номер телефона, то не рекомендуется запрашивать у него повторно эту информацию. В этом случае мы также используем правила и проверяем, есть ли такие переменные в контексте, если же их нет, то, следовательно, пользователь ранее не оставлял своих данных.
- Повторное попадание в Fallback NLU.
С помощью контекстной переменной и правил мы можем задать, сколько раз подряд пользователь может попасть в Fallback. Для это мы создаём переменную, некоторый счётчик, и каждый раз, когда ассистент нас не понимает, увеличиваем счётчик на 1. Если, например, при последующем попадании в Fallback счетчик равен 3, а правило у нас установлено такое, что переменная должна быть равна 3 и более, то в таком случае можно, например, переводить на оператора.
- Использование одной стратегии в разных каналах связи.
Не всегда получается использовать одну стратегию в разных каналах связи, так как у каждого канала есть свои особенности (например, по-разному задается оформление текста для разных каналов). В таких случаях в тех частях, которые отличаются – например, вывод текста – делается проверка на канал.
- Использование данных Телеграма для предоставления доступа к диалоговому ассистенту.
При общении через Телеграм-коннектор в системную переменную messenger_data сохраняются данные о пользователе.
В слоте Memory можно получить значение переменной user_name следующим образом – задать для нее значение {{ @messenger_data }}[‘user_name’], тогда при прохождении через этот слот Memory переменная приобретет то значение, которое имеет user_name в messenger_data.
Затем можно сделать условие на user_name, равно ли оно, например, вашему имени в Телеграме. Если условие истинно, то продолжать диалоговую стратегию, если нет – то у пользователя нет доступа к ассистенту.