Microsoft Bot Framework Composer, czyli łatwiejsze tworzenie botów

Microsoft Bot Framework Composer

Witajcie w Nowym Roku! Dzisiejszy wpis poświęcony będzie nowemu narzędziu, jakie udostępnił Microsoft – Microsoft Bot Framework Composer. Kto zajmuje się tworzeniem chatbotów ten z pewnością kojarzy Bot Framework. Framework, stworzony przez Microsoft, który pozwala tworzyć i integrować boty z wieloma platformami w prosty sposób. Kilka słów napisałem o nim w artykule poświęconym platformom do tworzenia botów, na które warto zwrócić uwagę, który znajdziecie TUTAJ. Tytułowe narzędzie to interfejs graficzny, który pomaga tworzyć boty we Frameworku w sposób mniej programistyczny, a bardziej projektowy.

Bot Framework to zestaw narzędzi i biblitotek stworzonych i wspieranych przez Microsoft, które umożliwiają kompleksowe tworzenie botów. Framework pozwala stworzyć bota raz, a udostępnić go na wiele platform, tj. Messenger, Slack, Teams, KIK, Cortana czy Skype.

Ktoś, kto do miał już styczność z Bot Frameworkiem wie, że jedyną metodą tworzenia botów za jego pomocą była implementacja w ulubionym IDE w C# lub w NodeJs. O ile umiejętności programowania przy tym frameworku nie unikniemy, o tyle nowe narzędzie pozwala nam zwizualizować naszego bota i tworzyć go za pomocą metody Drag&Drop. Dodać należy, że Microsoft Bot Framework Composer jest póki co w wersji Preview (niezalecanej do użycia na produkcji), a jedyna możliwość uruchomienia to lokalna wersja (w przyszłości planowana jest możliwość hostowanie Composera na serwerze).

Jak uruchomić i jak działa?

Póki co, tak jak wspomniałem wcześniej, narzędzie jest jeszcze w fazie rozwoju i jedyną opcją jest ręczne skonfigurowanie i instalacja na swojej maszynie. Cały proces instalacji, a także dodatkową dokumentację znajdziecie na githubie w TYM miejscu. W skrócie należy ściągnąć lokalnie repozytorium, zbudować, konfigurując odpowiednio środowisko i cieszyć się nowym narzędziem. Narzędzie okazuje się nakładką na dotychczasowe projekty tworzone w C# – po dodaniu nowego bota, Composer tworzy nam w wybranej lokalizacji solucję i nanosi na nią dokonane zmiany.

A co nam daje Microsoft Bot Framework Composer?

  • wizualizacja ścieżek bota
  • zarządzanie NLU (rozpoznawanie języka naturalnego)
  • zaawansowane generowanie odpowiedzi
  • zunifikowanie narzędzi do tworzenia botów

Microsoft Bot Framework Composer

Wizualizacja ścieżek bota

Pierwszą rzeczą, jaka rzuca się w oczy po odpaleniu Composer’a to edytor botów. Do tej pory jedyną opcją budowania botów, było składanie ścieżek w kodzie, co nie zawsze pozwalało spojrzeć na całość „z góry”. Teraz sytuacja się zmieniła, po odpaleniu aplikacji mamy wizualizację wszystkich dostępnych ścieżek bota i w łatwy sposób możemy je modyfikować, dodawać nowe elementy i usuwać istniejące.

Korzystając z edytora mamy możliwość:

  • wysłać zwykłą odpowiedź
  • pobrać informacje od użytkownika
  • zastosować instrukcje warunkowe
  • przekierowywać do innych wątków
  • zintegrować się z zewnętrznymi systemami

Ww. opcja to coś czego mi brakowało w dotychczasowym frameworku Microsoftu. Prostymi, kilkuścieżkowymi botami da się zarządzam za pomocą kodu, ale w przypadku bardziej skomplikowanych botów, wg. mnie jest to prawie niemożliwe. Ruch z narzędziem do wizualizacji stworzonych chatbotów może przekonać wielu twórców i miłośników do użycia tej technologi. Ja na pewno dam jej drugą szansę.

Zarządzanie NLU

Kolejna funkcjonalność jaka dostępna jest w narzędziu to moduł wspomagający rozumienie języka naturalnego. Bot Framework podczas rozpoznawania intencji używa tzw. Recognizer’ów, czyli komponentów odpowiedzialnych za przyporządkowanie wiadomości do intencji i encji. W chwili obecnej dostępne mamy 2 Recognizer’y:

  • oparty na wyrażeniach warunkowych
  • oparty na LUIS (silnik Microsoftu do NLP)

Pierwszego sposobu to stare dobre wyrażenia regularne – przyporządkowujemy wyrażenie do intencji:

NLU - wyrażenia regularne

Drugi sposób to integracja z LUIS’em, silnikiem NLP stworzonym przez Microsoft. „Nauczyć” bota intencji i encji możemy za pomocą specjalnie sformatowanego pliku .lu. Plik Lu to format stworzony i rozumiany przez LUIS, a więcej o nim możecie poczytać TUTAJ.

Pierwszy krok integracji z LUIS to zdefiniowanie encji i intencji za pomocą specjalnej składni, a następnie opublikowanie naszej pracy w LUIS (musimy stworzyć konto, aby było to możliwe). Po opublikowaniu i uruchomieniu bota, będzie próbował on rozpoznać intencje, odpytując agenta, które wcześniej wdrożyliśmy.

NLU - Luis

Integracja bota za pomocą pliku oraz UI to kolejna rzecz, która pozwala pracować nad botami bez przełączania się do zewnętrznych narzędzi. Minusem jest fakt, że jest to tylko LUIS, a nie np. dodatkowo Dialogflow (LUIS nie wspiera języka polskiego), ale pozostaje mieć nadzieje, że Microsoft pozwoli dodawać własne Recognizer’y.

Zaawansowane generowanie odpowiedzi

Kolejną ciekawą funkcjonalnością jest tworzenie szablonów odpowiedzi. W łatwy sposób za pomocą UI możemy stworzyć odpowiedzi, zawierające zarówno zwykły tekst, jak i elementy interaktywne, zawierające dynamiczne treści (np. atrybuty czy zmienne).

Microsoft Bot Framework Composer

Zunifikowanie narzędzi do tworzenia botów

Podsumowując, Microsoft postanowił ułatwić pracę twórcom chatbotów i podjął próbę unifikacji narzędzi wchodzących w skład Bot Framework. Możemy np. poza wymienionymi wcześniej funkcjonalnościami przetestować łatwo bota, dzięki integracji z Emulatorem – bez konieczności odpalania go w osobnym oknie. Narzędzie jest póki co w wersji Preview, co oznacza, że Microsoft nie zaleca go do zastosowań produkcyjnych, ale myślę, że warto je już zacząć sprawdzać – szczególnie Ci, którzy zaznajomieni są z Frameworkiem od Microsoftu. Widząc ciągły rozwój Bot Framework’a można założyć, że taki sam los będzie czekał Composer’a – Microsoft nadal widzi korzyść w tej technologii, a stworzenie narzędzie potwierdza tylko tę tezę.