Платформа Microsoft Power включає в себе кілька дуже цікавих сервісів для налаштування автоматизації різного рівня складності. Серед сервісів Microsoft Power Platform є Power Apps для створення додатків, Power Automate для налаштування потоків автоматизації, Power BI для налаштування звітів, безліч додаткових сервісів, таких як:

  1. Microsoft Dataverse для створення структури таблиць баз даних.
  2. Моделі штучного інтелекту Microsoft AI Builder.
  3. Движок Dataflows для створення потоків оновлення даних з різних джерел.
  4. Користувацькі сполучні лінії.
  5. Шлюзи для інтеграції з локальним середовищем.
  6. Connectors for integration with Azure services (Azure Data Lake, Azure Tables, Azure Logic Apps, Azure SQL,…)
  7. Автоматична міграція даних до Azure Synapse.
  8. Багато інших корисних функцій.

Усі ці служби допомагають створювати програми, процеси та звіти за допомогою різноманітних допоміжних функцій без написання коду. Винятком можуть бути різні формули, які можна використовувати для досягнення певних цілей, але це не програмування в чистому вигляді.

Однак, незважаючи на всю різноманітність сервісів лінійки Microsoft Power Platform для створення додатків, сьогодні хотілося б торкнутися теми чат-ботів і подивитися, які є можливості для створення ботів без програмування або з мінімальним програмуванням на технологіях Microsoft за межами Power Platform. І сьогодні ми маємо бот-фреймворк композитора на лінії.

Ми вже розглянули з вами в одній з попередніх статей способи створення ботів на базі Azure Bot Service і досить добре знаємо, які можливості мають такі сервіси. В основному, ці конструктори пропонують мінімально необхідний набір функцій для побудови простих, але функціональних діалогів. Запустіть тему, авторизуйте, задайте текстове питання, дочекайтеся відповіді, перейдіть в іншу гілку діалогового вікна. Це мінімально необхідний набір функцій для чат-бота, і, в цілому, в деяких випадках цього набору функцій достатньо для закриття певних завдань. Однак, крім Azure Bot Service, ви можете створювати чат-ботів на основі технології Bot Framework. Що це за технологія?

Bot Framework and Azure Bot Service

Так, Bot Framework – це комплексна технологія, яка дозволяє створювати інтелектуальні чат-боти з підтримкою баз знань виробника QnA, підтримкою сервісу LUIS (Language Understanding) для розпізнавання намірів користувачів, а також підтримкою мовних сервісів. Також можна додатково використовувати функціонал адаптивних карт, комп’ютерний зір і різні пов’язані навички. За допомогою Bot Framework розробники мають можливість створювати чат-ботів, які працюють за певними шаблонами, а також постійно навчаються і можуть шукати інформацію в базах знань не за точною відповідністю символів, а за відсотком збігу з тим, що шукає користувач. В результаті користувачеві надається інформація з великим значенням ймовірності збігу. Разом з механізмом адаптивної карти, який спрощує діалогову систему, мінімізуючи довгий діалог на одну карту, де користувач вводить багато даних, ми отримуємо досить потужний набір можливостей для створення чат-ботів з підтримкою публікації бота на ресурсах Microsoft Azure і виведення чат-бота на різні канали, в тому числі Microsoft Teams. Однак весь цей об’ємний набір технологій доступний при розробці ботів з використанням коду. Тобто потрібно відкрити Visual Studio, створити проект і почати створювати чат-бот за допомогою мови програмування. Чи є спосіб створити бота на базі Bot Framework з підтримкою QnA, вести розмови з підтримкою адаптивних карток і HTTP-запитів, публікувати бота на ресурсах Azure і виводити в Microsoft Teams без програмування? Цей метод називається bot framework composer.

Bot Framework Composer

Bot Framework Composer – це настільний додаток, який надає графічний інтерфейс для створення чат-бота на основі технології Bot Framework. Тобто це інтегроване середовище розробки, яке дозволяє розробникам створювати, тестувати, налаштовувати діалоги чат-ботів за допомогою готових блоків фрагментів, кожен з яких після додавання на полотно повинен бути налаштований в редакторі. Тільки якщо раніше для створення бота на Bot Framework потрібно було писати код, то тепер можна створити того ж бота, але без коду. Готові блоки відповідають за фрагменти коду, з яких ви будуєте свого бота і створюєте набір діалогів. Бот, який ви створюєте та тестуєте, так само публікується на ресурсах Microsoft Azure, як якщо б ви написали його в коді. Створити бота на Bot Composer трохи складніше, ніж на найпростіших Power Virtual Agents, однак переваги тут очевидні:

  1. Розширені можливості чат-бота з підтримкою баз знань QnA, функціональності LUIS, вбудованих (а не додатково ліцензованих) HTTP-запитів.
  2. Ліцензії користувача не потрібні. Ви платите лише за azure споживання ресурсів. Там, де Power Virtual Agents коштує 1000 доларів за 2000 сеансів на місяць, ваш чат-бот Bot Composer ледве може з’їсти 100 доларів на місяць за значно більшу кількість сеансів.
  3. Впровадження чат-бота в будь-яких каналах.
  4. Розширюйте свій чат-бот за допомогою пов’язаних навичок з галереї навичок. Підтримується також зв’язок саморозвинених навичок.
  5. Тісна інтеграція з усіма службами Microsoft Azure і Microsoft 365 без придбання преміальних ліцензій.
  6. Вбудована підтримка адаптивних карток.
  7. Зручний механізм налагодження бота в бот-емуляторі.
  8. Можливість розширення power virtual agents чат-ботів за допомогою діалогових вікон Редактора фреймворків ботів.

Це звучить чудово, але я скажу, що насправді це дійсно так. Давайте подивимося, як можна створити чат-бот на Bot Framework Composer.

Інсталяція Bot Framework Composer

Перед установкою Bot Framework Composer необхідно встановити Node.js і .Net Core. Потім ви можете приступити до установки Bot Framework Composer. Всі посилання на останні дистрибутиви можна знайти тут. Зверніть увагу, що Node.js є вимогою для роботи редактора рамки ботів.

До речі, після першого запуску рекомендую зайти в розділ Composer Settings і включити режим ранніх усиновлювачів. Це дозволить отримувати свіжі оновлення, які ще не потрапили в офіційний реліз. Часто в ньому міститься безліч корисних виправлень і нововведень, які в офіційному релізі будуть випущені набагато пізніше.

Створення чат-бота Bot Framework Composer

При створенні бота можна відразу вибрати готовий шаблон бота. Це вплине на комплекс основних діалогів і дій, які вже будуть розміщені в діалогах. Наприклад, ви можете відразу створити бота за допомогою шаблону виробника QnA і прив’язати його до бази знань. У вас буде готове діалогове вікно пошуку бази знань. Або візьміть шаблон помічника бота.

Однак ніхто не заважає створити чат-бот без шаблону і почати налаштовувати його з нуля. Після створення бота з’являється інтерфейс для налаштування діалогів і дій всередині діалогових вікон.

Як бачите, концепція побудови діалогів у Bot Framework Composer приблизно схожа на Power Virtual Agents. Але є набагато більше блоків дій для налаштування.

Існує також блок дій для виклику зовнішніх ресурсів безпосередньо з діалогового вікна бота, без запуску потоків Power Automate.

Створення діалога Bot Framework Composer

При створенні діалогового вікна, перш за все, вкажіть тригер. Спусковим гачком може бути:

  • Намір користувача. Вирази, які можуть викликати розмову.
  • Запит на базу знань QnA.
  • Подія на рівні діалогу. Запуск діалогового вікна, скасування діалогового вікна, помилка у діалоговому вікні.
  • Діяльності. Це може бути відповідь на повідомлення, натискання кнопки в адаптивній карті і так далі.
  • Користувацькі події.
  • Незнайомі наміри. У тому випадку, якщо для інших типів тригерів нічого не було знайдено, чат-бот переходить до відділення Невідомий намір.
  • Дії в microsoft Teams.

Всі ці тригери можуть викликати певну послідовність дій у розмові.

Давайте зробимо діалогове вікно призначення за допомогою адаптивної картки, а потім перенесемо дані до списку SharePoint Online.

Давайте створимо тригер, який буде спровокований певними фразами:

Далі, після спрацювання тригера, ми відправимо адаптивну карту в діалог з користувачем. Щоб побудувати адаптивну карту, перейдіть на портал adaptivecards.io і перейдіть в розділ Designer. Створіть просту адаптивну карту з готових блоків і скопіюйте її JSON.

Кожен об’єкт в карті повинен мати свій ідентифікатор, а також важливий момент – в схемі JSON необхідно зробити розділ даних для кнопок і поставити в нього ключі, які в майбутньому нам дійсно знадобляться.

Тепер скопіюйте схему картки та перейдіть до редактора Bot Framework Composer. У діалоговому вікні виберіть дію Send a response, додайте вкладення типу Adaptive Card, а потім вставте туди наш JSON.

Нарешті, залишилося зробити другу частину бота, а саме обробку відповіді користувача. Після того, як користувач введе всі дані в адаптивну карту і натисне кнопку підтвердження, чат-бот повинен зловити цю подію і виконати подальші кроки по створенню елемента в списку SharePoint Online.

Для цього додайте тригер “Message Received” з розділу “Activities”. Але цей тригер буде спровокований на будь-якому отриманому повідомленні. Тому ми детально описаємо цей тригер, використовуючи умову нижче.

Де  turn – попередній крок, activity – це дія попереднього кроку, value – це дані з дії даних попереднього кроку data, а valuetype – наш атрибут в адаптивній карті, в якій користувач натискає кнопку. У цьому випадку цей тригер буде спровокований тільки натисканням кнопки з певної адаптивної карти.

Все, що залишилося, це виконати операцію створення елемента. Для цього давайте скористаємося потоком Logic Apps. Перейдіть на портал Microsoft Azure і створіть потік логічних програм із тригером запиту HTTP. Нагадаю, що Azure Logic Apps аналогічна Power Automate, тільки в хмарі Azure і без необхідності купувати преміальні ліцензії. Всі дії доступні відразу. Оплата йде тільки за заповнені потоки. Сам потік виглядає приблизно так.

При вході з HTTP-запиту чекаємо даних з адаптивної карти. Далі створіть пункт в списку і поверніть відповідь боту з ідентифікатором створеного запису. Залишається лише викликати цей потік за допомогою HTTP-запиту з діалогового вікна чат-бота за допомогою дії Надіслати ЗАПИТ HTTP.

У URL-адресі вкажіть Кінцеву точку тригера з потоку Logic Apps, а в Тілі передаємо дані з адаптивної карти. А в кінці тригера виводимо відповідь з HTTP-запиту у вигляді повідомлення з ідентифікатором згенерованого елемента в SharePoint Online.

Запустіть бота локально та натисніть Тест в Емуляторі. Краще завантажити і встановити Бот-емулятор заздалегідь, набагато зручніше налагоджувати бота в ньому, ніж просто в веб-чаті.

Давайте виключимо наш діалог.

Перевірте, чи виконано потік логічних програм.

Перевірте, чи створено завдання в службі SharePoint Online.

Бот готовий, залишилося опублікувати його в Microsoft Azure і вивести в Teams. Перейдіть до розділу Bot Framework Composer, Publishing profile і створіть профіль публікації. Укажіть підписку Azure, до якої планується опублікувати групу ресурсів, і створіть ресурси Azure, необхідні для функціонування бота.

Після створення всіх ресурсів поверніться до розділу Опублікувати та опублікуйте бота в Azure. Це займає кілька хвилин.
Далі після публікації відкрийте портал Microsoft Azure, перейдіть на ресурс Azure Bot і перейдіть в розділ Канали. Налаштуйте канал Microsoft Teams і додайте маніфест бота до магазину програм Teams.

Тепер ви можете працювати зі своїм ботом у Teams.

На закінчення хотілося б сказати, що технологія Bot Framework разом з додатком Composer надасть широкий спектр можливостей для створення різних чат-ботів. Це можуть бути боти-консультанти з пошуком в базі знань, боти для супроводу співробітників в процесі онбордингу, боти для створення додатків, помічники ботів. А створення таких ботів на базі Bot Framework Composer не вимагає написання коду, вся конфігурація робиться в графічному редакторі з подальшою публікацією створеного бота на ресурси Microsoft Azure. Вам також не потрібно купувати ліцензії користувачів Power Platform Premium. У наступній статті ми спробуємо створити бота QnA Maker Knowledge Base Advisor. Дякуємо всім за увагу і гарного дня!.