Najwyższa pora przejść do „dania głównego” czyli zagłębić się w sam proces tworzenia chatbotów w oparciu o MS Bot Framework. W pierwszej części – Bot Connector – zapraszam!
Architektura rozwiązań opartych o MS Bot Framework składa się z kilku części:
- po pierwsze mamy nasz kod w postaci webserwisu obsługującego HTTP POST – to tutaj siedzi cała logika biznesowa i opis zachowania bota, jego funkcje etc.
- nasz kod jest wywoływany przez komponent o nazwie Bot Connector – jest to element oferowany jako usługa przez Microsoft, a jego głównym zadaniem jest umożliwienie jednolitej komunikacji z naszym botem przez różne kanały (patrz niżej), więcej o Bot Connectorze poniżej.
- wreszcie mamy implementację poszczególnych kanałów – gdzie przez kanał rozumiemy dane medium komunikacyjne, np. Skype, Facebook Messenger, Slack, a także SMS, mail oraz chaty osadzane na stronach internetowych (oczywiście to nie wszystkie kanały, wymieniłem tylko główne).
Całość prezentuje się następująco (za dokumentacją Microsoftu):
Co potrafi Bot Connector?
Tak jak wspomniałem wyżej, głównym zadaniem jest pośredniczenie w komunikacji i abstrakcja poszczególnych kanałów, tak aby nasz kod działał niezależnie od kanału. Do podstawowych zastosowań abstrakcja ta działa całkiem sprawnie, gdy się zechcemy wgłębić to pojawiają się lekkie zgrzyty (np. nulle w niektórych polach, z racji, że dany kanał nie obsługuje danego pola), można sobie z tym łatwo poradzić, niemniej jednak trzeba uwzględniać różnice w implementacji poszczególnych kanałów w swoim kodzie.
Pośredniczenie w komunikacji odbywa się oczywiście w obie strony, a więc nasz kod nigdy nie ma bezpośredniego dostępu do danego kanału, w ramach naszego kodu nie ustawiamy także np. API Keys dla kanałów – jedyne co ustawiamy po stronie naszego kodu to dane do uwierzytelnienia w Bot Connectorze. Sama integracja z poszczególnymi kanałami to natomiast odpowiedzialność Bot Connectora i to w jego ustawieniach definiujemy callbacki i API Keys do poszczególnych kanałów.
Bot Connector oferuje także usługi persystencji stanu w formie usługi key-value storage – dzięki nim możemy zapisać potrzebne nam informacje w kontekście danego użytkownika lub danej konwersacji. Jest to wygodne rozwiązanie jeśli potrzebujemy przechować małe ilości informacji lub nie chcemy angażować dodatkowej bazy danych. Dodatkowo zaleca się tworzenie botów jako usług stateless, aby możliwe było ich łatwe skalowanie. Usługa persystencji stanu z pewnością w tym pomaga.
Na bazie usługi persystencji stanu opiera się także system dialogów w Bot Builderze – jest to drugi komponent MS Bot Framework, o którym opowiem w jednym z najbliższych wpisów.
Trzeba takżę wsponieć, iż na potrzeby tworzenia botów oferowany jest lokalny emulator, który oferuje kanał testowy a także usługi persystencji – analogicznie jak to ma miejsce w wersji produkcyjnej.
W ramach usługi Bot Connectora Microsoft oferuje także katalog botów – możemy tak zarejestrować naszego bota, aby był wyszukiwalny w katalogu.
W następnych częściach…
…przyjrzymy się przykładowej templatce bota opartej o ASP.NET MVC, po czym przejdziemy do BotBuildera i przyjrzenia się ficzerom jakie oferuje.
Aby nie przegapić kolejnych wpisów zapraszam do śledzenia tego bloga, czy to przez kanał RSS, czy też poprzez stronę na Facebooku.
Dodaj komentarz