Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



29.10.2021

Veritas po raz 16. liderem...

Firma Veritas Technologies, producent uznanych rozwiązań backup klasy enterprise,...
21.10.2021

Zarządzanie IT

We wrześniu BTC Sp. z o.o. zaprezentowała premierową wersję systemu eAuditor V8 AI.
21.10.2021

Konferencja VMworld

Imagine That. Pod takim hasłem w dniach 5–7 października 2021 r. odbyła się jedna z...
21.10.2021

Darmowy deszyfrator

Bitdefender wspólnie z organami ścigania opracował i wydał narzędzie, które pozwala...
21.10.2021

Dell C1422H

Dell Technologies wprowadza do oferty przenośny monitor do zwiększenia wydajności pracy w...
21.10.2021

Dysk dla cyfrowych twórców

Western Digital zaprezentowało nowy dysk – WD Blue SN750 NVMe SSD.
21.10.2021

Projektory laserowe

Optoma wprowadza serię projektorów laserowych Ultra Bright ZU1700, ZU1900, ZU2200 z...
21.10.2021

Orzeł wśród routerów

D-Link wprowadza na rynek smart router EAGLE PRO AI AX1500 R15.
21.10.2021

Nowe generacje Ryzen i Epyc

AMD 3D V-Cache. AMD zapowiada procesory Ryzen i Epyc z nowym rozwiązaniem.

Bot Framework Composer

Data publikacji: 23-09-2021 Autor: Marcin Szeliga

Wirtualni asystenci, tacy jak czatboty, to jedne z najpopularniejszych zastosowań sztucznej inteligencji. Typowy czatbot umożliwia komunikację z użytkownikami za pośrednictwem różnych kanałów – stron internetowych, aplikacji mobilnych, komunikatorów, głosu czy poczty elektronicznej. W zaprojektowaniu bota pomoże nam narzędzie Bot Framework Composer.

 

Do stworzenia wirtualnego asystenta konieczne jest spełnienie kilku wymogów. Po pierwsze, czatbot powinien – przynajmniej w określonym zakresie – komunikować się z użyciem języka naturalnego. To zadanie realizuje moduł przetwarzania języka naturalnego (NLP). Czatbot musi przeprowadzać dialogi ukierunkowane na rozwiązanie problemów użytkowników. Do tego konieczne jest zaprojektowanie struktury rozmów i zintegrowania czatbota z zewnętrznymi systemami, takimi jak usługi WWW czy bazy danych. W tym artykule przedstawiony zostanie edytor Bot Framework Composer pozwalający projektować dialogi, integrować czatboty z zewnętrznymi zasobami (w tym usługami NLP), testować ich działanie i publikować gotowe czatboty za pomocą graficznego kreatora.

> Azure Bot Service

Azure Bot Service to kompleksowe środowisko programistyczne służące do projektowania, tworzenia i wdrażania wirtualnych asystentów. Odpowiada ono za uruchomienie czatbotów (jako aplikacji WWW lub funkcji Azure), wzbogacenie ich o funkcje związane z przetwarzaniem języka naturalnego, mowy i przetwarzania obrazu (poprzez integrację z pozostałymi usługami Azure, takimi jak usługa QnA, LUIS czy usługi poznawcze) oraz ich udostępnianie użytkownikom poprzez kanały, np. interaktywny system odpowiedzi głosowych (IVR) oraz kanały cyfrowe: witryny internetowe, aplikacje mobilne czy komunikatory Microsoft Teams, Facebook Messenger lub Slack. Choć edytor Bot Framework Composer jest elementem usługi Azure Bot Service, ograniczyliśmy się do przedstawienia procesu projektowania samego wirtualnego asystenta, pomijając kwestie jego integracji z usługami językowymi i publikacji w Azure.

Do tworzenia wirtualnych agentów służy środowisko Microsoft Bot Framework (dev.botframework.com). Zawiera ono między innymi biblioteki SDK dla kilku języków i frameworków (C#, Python, Node.js) oraz szablony projektów ułatwiające budowanie własnych czatbotów. Bot Framework Composer wchodzi w skład Microsoft Bot Framework i pełni rolę pośrednika pomiędzy platformą programistyczną a usługą Azure Bot Service. Odpowiada on także m.in za udostępnianie czatbotów za pośrednictwem interfejsów REST API.

 

> Komunikacja z wirtualnym asystentem

Podstawową jednostkę komunikacji pomiędzy użytkownikiem a czatbotem nazywamy aktywnością. Aktywnością może być dołączenie użytkownika do kanału komunikacyjnego albo wysłanie pojedynczego komunikatu, np. przywitanie się z wirtualnym asystentem. Odbiorca komunikatu (czatbot albo użytkownik) odpowiada na niego, wysyłając własny komunikat, np. przedstawiając się. Warto w tym miejscu podkreślić, że aktywności nie muszą sprowadzać się do wymiany tekstu – komunikaty mogą też być głosowe lub graficzne.

Wymiana pary komunikatów nazywa się turą. Zauważmy, że wiele rozmów i dyskusji pomiędzy osobami również odbywa się w taki sam sposób, tj. rozmówcy naprzemiennie mówią coś albo zadają sobie pytania, a następnie słuchają lub odpowiadają na pytania drugiej osoby. Turą będzie na przykład zapytanie o imię (aktywność czatbota) i odebranie odpowiedzi (aktywności użytkownika).

Tury składają się na dialogi. Każdy dialog służy jednemu, określonemu celowi. Przykładowym celem dialogu może być zamówienie pizzy, zarejestrowanie pobytu w hotelu bądź zgłoszenie usterki. Dialogi, czyli wymieniane w turach aktywności, mogą mieć z góry określoną strukturę lub być dynamiczne:

 

  • Statyczne dialogi polegają na wymianie komunikatów w określonej kolejności. Przykładem statycznego dialogu jest proces zamawiania pizzy – czatbot zadaje kolejne pytania o wielkość, rodzaj ciasta, typ pizzy i dodatki. Po zebraniu wszystkich potrzebnych danych informuje użytkownika o cenie i prosi o potwierdzenie zamówienia. Chociaż w ten sposób można zamówić dowolną pizzę, to sam dialog przeprowadzany jest zawsze według tego samego schematu. Definiując dialogi statyczne, możemy posługiwać się pętlami (np. jakieś pytania będą powtarzane tak długo, aż uzyskana zostanie satysfakcjonująca – tj. pasująca do schematu – odpowiedź), a także instrukcjami warunkowymi (np. kolejne pytanie będzie zależało od odpowiedzi na poprzednio zadane pytanie).
  • Dialogi dynamiczne są sterowane przez zdarzenia, np. wysłanie przez użytkownika określonego komunikatu lub uzyskanie określonej odpowiedzi od zewnętrznej usługi, takiej jak baza danych lub serwis internetowy. Użytkownik może w dowolnym momencie przerwać składanie zamówienia (aktywny dialog) i przejść do zapłaty, albo poprosić o drugą pizzę. W takich sytuacjach czatbot powinien inteligentnie zareagować i przejść do podsumowania (w pierwszym przypadku) bądź zapytać, czy druga pizza ma być taka sama jak pierwsza, czy też inna.


Prości wirtualni asystenci potrafią prowadzić jeden lub kilka dialogów. Bardziej rozbudowani – kilkanaście, a nawet kilkadziesiąt różnych dialogów. Jeden dialog jest zawsze głównym dialogiem czatbota, wywoływanym po dołączeniu się użytkownika do kanału komunikacyjnego – każdy czatbot musi mieć zdefiniowany dialog główny. Pozostałe dialogi (jeśli zostały one zdefiniowane) mogą być wywoływane w reakcji na określone zdarzenie (przykładem może być dialog wywoływany w momencie, gdy czatbot nie zrozumie użytkownika) lub w określonych z góry miejscach innych dialogów (np. po zebraniu wszystkich potrzebnych danych czatbot może przejść z dialogu „Order” do dialogu „Checkout”).

Wirtualni asystenci działający w środowisku Azure Bot Service mogą wymieniać aktywności za pośrednictwem różnych kanałów komunikacyjnych. Przy rejestracji dodatkowych kanałów komunikacyjnych (np. facebookowego Messengera) powinniśmy pamiętać, że sposób działania niektórych komunikatów (szczególnie graficznych) zależy od specyfiki i możliwości kanału komunikacyjnego. Choć raz napisany czatbot może być udostępniony za pośrednictwem wielu różnych kanałów komunikacyjnych, to niektóre komunikaty mogą nie działać lub działać w różnoraki sposób, gdy użytkownicy będą łączyli się różnymi kanałami.

 

> Projektowanie czatbotów przy użyciu Bot Framework Composer

Bot Framework Composer jest darmowym, graficznym edytorem czatbotów działających w środowisku Azure Bot Service. Jest dostępny jako aplikacja
desktopowa w wersji na systemy Windows, macOS i Linux (bit.ly/2YoIxcx) oraz jako widget, który można umieścić na stronach WWW.

Po zainstalowaniu i uruchomieniu aplikacji warto włączyć opcję automatycznej aktualizacji – w tym celu należy kliknąć widoczny na dole umieszczonego po lewej stronie panelu nawigacyjnego przycisk Composer settings i włączyć opcję Auto Update. Warto wspomnieć, że podczas konfiguracji aplikacji możemy też zmienić język jej interfejsu. Bot Framework Composer jest regularnie aktualizowany – w artykule przedstawiona została wersja 2.1.0 działająca w środowisku Bot Framework SDK 4.12.

Czas na zaprojektowanie wirtualnego asystenta, który, oprócz przywitania, będzie potrafił odpowiedzieć na pytanie o pogodę w danym mieście. Projekt będzie się składał z trzech etapów:

 

  • Przygotowania klucza API serwisu OpenWeatherMap.
  • Modyfikacji głównego dialogu.
  • Dodania dialogu podrzędnego.

 

[...]

 

Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie, jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"