Backend

Tworzenie chatbotów na Facebook Messengera z wykorzystaniem pakietu BotMan

Według badania przeprowadzonego przez Oracle, aż 80% międzynarodowych firm deklaruje wprowadzenie chatbota do końca 2020 roku. Także w Polsce coraz więcej biznesów w różnych branż decyduje się wykorzystać chatboty do usprawnienia obsługi klienta. Ma to szereg zalet: nie dość, że chatbot jest dostępny dla klientów 24h/7, to także dzięki niemu zespół obsługi klienta będzie mógł poświęcić więcej czasu konsumentom, którzy wymagają więcej atencji, a wszystkie typowe przypadki użycia mogą zostać zautomatyzowane, ku zadowoleniu obu stron.

Adam Matysiak. Właściciel, CTO i lider software house HighSolutions. Programista z ponad 15-letnim doświadczeniem. Przedsiębiorca od ponad 7 lat. Entuzjasta turkusowych organizacji – jego celem jest tworzenie miejsc, gdzie ludzie są szczęśliwi, szanowani i dumni ze swojej pracy. Członek Turkusowego Poznania. W międzyczasie prowadzi videoblog jako Turkusowy Prezes.


Istnieje kilka możliwości tworzenia chatbotów pod platformę Facebook Messenger. Można je podzielić na dwie kategorie: DIY oraz programowalne. Podejście „Do It Yourself” do prostych chatbotów nadaje się perfekcyjnie, gdyż jesteśmy w stanie „wyklikać” wszystkie pożądane scenariusze i nie potrzebujemy do tego wiedzy programistycznej. Także świetnie nadają się one do przygotowywania prostych demo czy proof of concept. Najpopularniejsze serwisy tego typu to chatfuel.com, botfuel.com i botsociety.io.

W tym artykule chciałbym zająć się drugą opcją z dwóch powodów: pozwala ona na znacznie więcej, a także dlatego, że się w niej specjalizujemy.

Jak programuje się chatboty?

Najprościej chatbota można porównać do systemu IVR, czyli szeroko stosowanych infolinii. Podłączamy nasz program do komunikatora. Nasłuchuje on wiadomości, które otrzymujemy i jeśli rozpozna wiadomość, do której obsługi został zaprojektowany, to odpowiednio odpowie. Jest to oczywiście znacznie bardziej zaawansowany sposób komunikacji od infolinii, gdyż nie przyciskamy jedynie numerów, ale komunikujemy się słowem pisanym.

Programowanie chatbota polega na pisaniu funkcji rozpoznawania konkretnych intencji użytkownika i następnie odpowiedzi adekwatnie do tego. Żeby jednak komunikacja nie działała na zasadzie ping-ponga, lecz można było przeprowadzać bardziej złożone procesy komunikacyjne (np. złożenie zamówienia), stosuje się mechanizm konwersacji, czyli zawierania obsługi konkretnych intencji użytkownika w scenariusze. Dzięki temu podejściu jesteśmy w stanie reagować na te same zwroty użytkownika inaczej, zależnie od tego w jakim scenariuszu się znajdujemy.

Ostatnia faza tworzenia chatbota to jego podłączenie do komunikatora, by nasłuchiwał wiadomości od użytkowników i na nie odpowiadał. Cała procedura nie trwa dłużej niż 15 minut.

W czym napisać swojego chatbota?

Języków programowania i narzędzi, które pozwalają tworzyć chatboty, jest bardzo dużo i w zasadzie wszystkie popularne języki programowania to umożliwiają – C#, PHP, JS, Python, Ruby, Swift czy Go. Na co dzień zajmujemy się tworzeniem rozwiązań internetowych w PHP, dlatego też naturalne było dla nas wykorzystanie rozwiązań stworzonych dla tego języka. I o jednym szczególnym chcę tu napisać.

Czym jest BotMan?

Pakiet BotMan został stworzony na początku 2017 roku przez Marcela Pociota, jednego z najbardziej aktywnych twórców Open Source dla frameworka Laravel. Obecnie ten pakiet jest najbardziej popularnym rozwiązaniem do tworzenia chatbotów w PHP.

Pakiet Botman do tworzenia chatbotów we frameworku Laravel

Od początku projektowany był jako rozwiązanie uniwersalne – można z niego korzystać również bez frameworka Laravel. Jest też uniwersalny w kontekście integracji, gdyż obsługuje – oprócz Messengera — różne komunikatory, m.in. Skype, WeChat, Telegram, Amazon Alexa. A co ciekawe – pozwala również na posiadanie chatbota na swojej własnej stronie – przypomina to wtedy widget live-chatu.

BotMan Widget do tworzenia chatbotów na stronie www

Oczywiście istnieją inne podobne rozwiązania, ale BotMan wygląda na to najbardziej kompleksowe. Jest on stale utrzymywany i dzięki takim dodatkom jak Web Widget czy Playground (o którym wspomnę zaraz) tworzenie chatbotów stało się szybsze i łatwiejsze.

Napiszmy trochę kodu

BotMan ma bardzo dobrą dokumentację, która opisuje wszystkie jego możliwości i zastosowania, dlatego nie chciałbym za bardzo jej powielać. Pokażę w skrócie jak stworzyć nowy projekt i zaimplementować pierwszą prostą funkcjonalność.

composer global require "botman/installer"
composer create-project --prefer-dist botman/studio <directory>
php artisan serve

I już. Nasz chatbot działa. Mamy możliwość przetestowania go na stronie, a także jest gotowy by podłączyć go pod Messengera.

Dla nas najważniejszy jest plik routes/botman.php, który wygląda tak:

<?php


        $botman = resolve('botman');


        $botman->hears('Hi', function ($bot) {
            $bot->reply('Hello!');
        });

        $botman->hears('Start conversation', 
        AppHttpControllersBotManController::class.'@startConversation');

Najpierw tworzona jest instancja obsługująca chatbota. Potem prosimy BotMana, by nasłuchiwał na słowo „Hi” i jeśli ono wystąpi, by odpisał „Hello”. Natomiast jeśli usłyszymy „Start conversation” – BotMan uruchomi konkretną metodę w podanym kontrolerze. W BotManie kontrolery służą do logicznego grupowania scenariuszy i odpowiedzi.

Skąd czerpać wiedzę o chatbotach?

Bardzo dużo można się dowiedzieć z dokumentacji. BotMan posiada też swój kanał na Slacku (#BotMan), gdzie programiści wymieniają się wiedzą i rozwiązywane są ich problemy. Dostępne są również kursy w postaci screencastów oraz ebooki, np. ten i ten. Za wykupienie kursu w postaci screencastów (autorstwa Marcela, twórcy BotMana) dostaje się dostęp do interaktywnego edytora kodu online, który pozwoli na testowanie chatbota natychmiast w przeglądarce.

Botman: testowanie bezpośrednio w przeglądarce

Polecam również moje wystąpienie na Laravel Poznań Meetup o tworzeniu chatbotów w BotManie, na którym opowiedziałem znacznie więcej szczegółów dotyczących tworzenia chatbotów w tym rozwiązaniu, uwzględniając również specyfikę Messengera i oferowane kontrolki. Zachęcam również do zapoznania się w wystąpieniem Marcela z PHP UK Conference w 2018 roku:

Czy warto tworzyć chatboty w BotManie?

Jeśli dotarłeś do tego miejsca, to chyba wiesz już że tak. Ale na poważnie – jeśli jesteś programistą PHP, jest to świetne rozwiązanie, oferujące te same możliwości co alternatywne rozwiązania w Pythonie, node.js czy Go. Dodatkowo rozwiązanie jest cały czas rozwijane i wspierane, co jest ważne w kontekście tworzenia chatbotów w celach komercyjnych.

My na co dzień korzystamy z tego rozwiązania do tworzenia chatbotów dla nas i naszych klientów. Przewagą tego podejścia również w stosunku do DIY jest to, że możemy bez problemu informować za pomocą chatbota o dynamicznych danych (np. prognoza pogody, stan zamówienia czy o innych danych, które przechowujemy w bazie danych lub jesteśmy w stanie wyliczyć).

Mam nadzieję, że zachęciłem Cię zainteresować się chatbotami, a szczególnie BotManem, bo tworzenie chatbotów w nim jest naprawdę proste i przyjemne.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://geek.justjoin.it/tworzenie-chatbotow-facebook-messengera-wykorzystaniem-pakietu-botman/" order_type="social" width="100%" count_of_comments="8" ]