Намерение – одна из центральных концепций при разработке Чат-ботов (Chatbot), совокупность алгоритмов, осуществляемых системой, распознавшей потребность пользователя.
Структура
В зависимости от платформы-конструктора или API структура намерения разнится. Однако с практикой сформировались характерные компоненты. Рассмотрим их на примере DialogFlow – популярного продукта Google.
- Контексты (Contexts): позволяют настроить сложную многоуровневую связь между намерениями. Например, создав контекстом awaitingPhone связку между намерением "Запрос имени" и "Запрос телефона" мы обяжем систему воспринимать числовой ввод как телефон. Вкупе с Последующими намерениями (Follow-up Intents), позволяет реализовывать сложную логику диалога с множеством похожих точек ветвления.
- События (Events): создаваемое разработчиком на бэкенде событие checkPhone (к примеру, проверка телефона на наличие в базе компании), позволяет исполнить стороннюю логику с использованием номера телефона. Термин тесно связан с понятием Вебхук (Webhook).
- Тренировочные фразы (Training Phrases): раздел, принимающий примеры пользовательского ввода и позволяющий непосредственно использовать Машинное обучение (ML) для поиска закономерностей. Достойно работает на больших объемах обучающих данных.
- Действия и параметры (Action and parameters): поле 'Enter action name' значение задается пользователем вручную или генерируется с помощью названий контекстов. Позволяет реализовывать кастомную логику с помощью встроенного редактора Inline Editor в разделе Fulfillment.
- Ответы (Responses): ответы виртуального ассистента в случае успешного распознавания пользовательского ввода.
- Исполнение (Fulfillment): свитчер 'Enable webhook call for this intent' позволяет обратиться к кастомной логике разработчика и заполнить другой параметр определенным значением помимо телефона (к примеру, статус активности номера).