Введення у DialogFlow: сутності та параметри
Продовжуємо покращувати наш чат-бот, реалізований на платформі Dialogflow. Раніше ми створили кілька правил, познайомилися з режимом тренування і чат-бот навчився давати більш-менш адекватну реакцію на фрази користувача.
Наступний досить важливий блок функціоналу Dialogflow - це сутності (entities). По суті, сутності — це різні форми написання однієї й тієї фрази чи слова. Синоніми. У моєму прикладі чат-бота, я в сутності можу описати синоніми екскурсії. Наприклад, "тур", "поїздка", "дивитися місця" і так далі.

Як агент використовує сутності?
Припустимо, у запиті користувача є слово чи фраза з множини, визначеної в сутності. Агент позначає такий підрядок, як параметр.
У процесі формування правил ви напевно звертали увагу, деякі слова автоматично позначаються іншим кольором. Це параметри. Як параметр Dialogflow виділяє міста та інші локації, дати, числа, а також все, що описано в сутності.

Далі, ці параметри можна використовувати в розділі "Action and parameters" при створенні правил. Намагаюся пояснити.
Наприклад, ми запитуємо користувача: "У якому місті або готелі ви проживаєте?"
Користувач відповідає: "Я у готелі Hilton".
Слово "Hilton" виділяється в окремий параметр і ми зможемо звертатися до значення цього параметра у будь-якому місці діалогу. У моєму прикладі, після того, як користувач замовить екскурсію, чат-бот може написати щось на кшталт: "Автобус вас забере з Hilton завтра, о 07:00".
Контексти та їх використання
Давайте відкриємо будь-яке правило з розділу "Intents" і зупинимо увагу на першому блоці, під назвою "Contexts".

Контексти — це якась сесія, де зберігається інформація з попередньої розмови користувача та бота. Спробую пояснити. Ви маєте кілька правил (intent). Правила реагують на певні фрази. Якщо вам важлива послідовність запуску правил, то в цьому випадку потрібно використовувати контексти.

Уявіть, що ваш чат-бот продає квитки на екскурсію. Ви ж не можете спочатку запропонувати користувачеві купити квиток, а потім розповісти про екскурсію і взяти у нього контактні дані. Потрібна послідовність. Для дотримання цієї послідовності можна використати контексти.
Події (Events)

Наступний блок у правилах - "Events". За допомогою цього блоку можна зробити так, щоб правило виконувалося тільки при потрібній нам події.
Наприклад, якщо вибрати "Telegram Welcome", правило виконається при першому спілкуванні користувача з ботом, коли користувач вводить команду /start.
Розширені відповіді

А як бути, якщо хочеться надіслати користувачеві не просто текст, а картинку або навіть кнопки? У Dialogflow це можливо, хоча і трохи складніше ніж у деяких інших платформах.
Подивимося уважніше на блок Responses, де можна налаштувати реакцію (відповіді) бота на повідомлення користувача. Майте на увазі, якщо ви налаштовуєте Dialogflow на інтеграцію з декількома месенджерами, то можливості цих месенджерів можуть відрізнятися один від одного.
Fulfillment

Цей блок використовується для підключення Dialogflow до інших сервісів та обміну даними з ними. Наприклад, агент може прийняти запит від користувача, надіслати запит на сторонній сервер (наприклад, до бази даних) та отримати вибірку звідти.
Звісно, без програмування не обійтися. Не хвилюйтеся, до "Fulfillment" ми повернемося в наступних уроках і розберемося докладніше.