Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Witaj, Habro! Dzisiaj pokażemy, jak używać platformy Azure do rozwiązywania problemów, które zazwyczaj wymagają interwencji człowieka. Agenci spędzają dużo czasu odpowiadając na te same pytania, obsługując połączenia telefoniczne i SMS-y. Chatboty automatyzują komunikację i rozpoznawanie oraz zmniejszają obciążenie ludzi. Boty wykorzystywane są także w Azure DevOps, gdzie pozwalają np. zatwierdzać wydania, zarządzać kompilacjami – przeglądać, uruchamiać i zatrzymywać – bezpośrednio ze Slacka czy Microsoft Teams. W istocie chatbot przypomina nieco CLI, jest tylko interaktywny i pozwala programiście pozostać w kontekście dyskusji na czacie.

W tym artykule opowiemy o narzędziach do tworzenia chatbotów, pokażemy jak można je ulepszyć za pomocą usług kognitywnych oraz opiszemy jak przyspieszyć rozwój dzięki gotowym usługom na Azure.

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Chatboty i usługi kognitywne: jakie są podobieństwa, a jakie różnice?

Aby tworzyć boty na platformie Microsoft Azure, korzystasz z usługi Azure Bot Service i Bot Framework. Razem stanowią zestaw oprogramowania do budowy, testowania, wdrażania i administrowania botami, który pozwala na tworzenie z gotowych modułów zarówno prostych, jak i zaawansowanych systemów komunikacji ze wsparciem mowy, rozpoznawaniem języka naturalnego i innymi możliwościami.

Załóżmy, że potrzebujesz wdrożyć prostego bota w oparciu o korporacyjną usługę Q&A lub odwrotnie, stworzyć funkcjonalnego bota ze złożonym, rozgałęzionym systemem komunikacji. Można w tym celu skorzystać z szeregu narzędzi, podzielonych na trzy grupy: 

  1. Usługi szybkiego rozwoju interfejsów dialogowych (botów).
  2. Gotowe usługi kognitywne AI do różnych zastosowań (rozpoznawanie wzorców, rozpoznawanie mowy, baza wiedzy i wyszukiwanie).
  3. Usługi tworzenia i szkolenia modeli AI.

Zazwyczaj ludzie intuicyjnie mylą „boty” z „usługami kognitywnymi”, ponieważ oba pojęcia opierają się na zasadzie komunikacji, a przypadkiem użycia botów i usług są dialogi. Ale chatboty działają ze słowami kluczowymi i wyzwalaczami, a usługi kognitywne działają z dowolnymi żądaniami, które zwykle są przetwarzane przez ludzi: 

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Kolejnym sposobem komunikacji z użytkownikiem są usługi kognitywne, które pozwalają zamienić dowolne żądanie w czytelną komendę i przekazać ją botowi. 

Chatboty to zatem aplikacje do pracy z żądaniami, a usługi kognitywne to narzędzia do inteligentnej analizy żądań, które są uruchamiane osobno, ale do których chatbot ma dostęp, stając się „inteligentnymi”. 

Tworzenie chatbotów

Zalecany schemat projektu bota na platformie Azure jest następujący: 

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Aby projektować i programować boty na platformie Azure, użyj Framework botów. Dostępne na GitHubie przykłady botów, możliwości frameworka zmieniają się, dlatego konieczne jest uwzględnienie wersji SDK, która jest używana w botach.

Framework udostępnia kilka opcji tworzenia botów: przy użyciu klasycznego kodu, narzędzi wiersza poleceń lub schematów blokowych. Ostatnia opcja wizualizuje okna dialogowe, w tym celu można skorzystać z menedżera Kompozytor frameworku botów. Został zbudowany na zestawie SDK Bot Framework jako narzędzie do tworzenia wizualizacji, którego interdyscyplinarne zespoły mogą używać do tworzenia botów.

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Bot Framework Composer umożliwia wykorzystanie bloków do stworzenia struktury dialogowej, z którą bot będzie współpracował. Dodatkowo możesz stworzyć wyzwalacze, czyli słowa kluczowe, na które bot będzie reagował w trakcie dialogu. Na przykład słowa „operator”, „kradzież” lub „stop” i „dość”.

W Bot Framework Composer możesz tworzyć złożone systemy dialogowe za pomocą Adaptacyjne okna dialogowe. W dialogach można używać zarówno usług poznawczych, jak i kart wydarzeń (kart adaptacyjnych):

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Po utworzeniu możesz wdrożyć chatbota w subskrypcji, a automatycznie przygotowany skrypt utworzy wszystkie niezbędne zasoby: usługi kognitywne, plan aplikacji, Application Insights, bazę danych i tak dalej.

Kreator pytań i odpowiedzi

Do tworzenia prostych botów w oparciu o korporacyjne bazy pytań i odpowiedzi można skorzystać z usługi kognitywnej QnA Maker. Zaimplementowany jako prosty kreator sieciowy, umożliwia wprowadzenie łącza do korporacyjnej bazy wiedzy (adresy URL FAQ) lub wykorzystanie bazy danych dokumentów w formacie *.doc lub *.pdf. Po utworzeniu indeksu bot automatycznie wybierze najbardziej odpowiednie odpowiedzi na pytania użytkownika.

Za pomocą QnAMaker możesz także tworzyć łańcuchy pytań wyjaśniających z automatycznym tworzeniem przycisków, uzupełniać bazę wiedzy o metadane i dodatkowo szkolić usługę w trakcie użytkowania.

Usługa może zostać wykorzystana jako chatbot realizujący tylko tę jedną funkcję lub jako część złożonego chatbota korzystającego w zależności od żądania z innych usług AI lub elementów Bot Framework.

Praca z innymi usługami poznawczymi

Na platformie Azure dostępnych jest wiele różnych usług poznawczych. Technicznie rzecz biorąc, są to niezależne usługi internetowe, które można wywołać z kodu. W odpowiedzi usługa wysyła json o określonym formacie, który można wykorzystać w chatbocie.

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy
Najczęstsze zastosowania chatbotów to:

  1. Rozpoznawanie tekstu.
  2. Rozpoznawanie kategorii obrazów zdefiniowanych przez programistę w ramach usługi Custom Vision Service (przypadek produkcyjny: rozpoznanie, czy pracownik nosi kask, okulary lub maskę).
  3. Rozpoznawanie twarzy (doskonałym przypadkiem użycia jest sprawdzenie, czy badana osoba umieściła swoją twarz, czy np. zdjęcie psa lub zdjęcie osoby odmiennej płci).
  4. Rozpoznawanie mowy.
  5. Analiza obrazu.
  6. Tłumaczenie (wszyscy pamiętamy, ile hałasu powodowało tłumaczenie symultaniczne na Skype).
  7. Sprawdzanie pisowni i sugestie dotyczące poprawiania błędów.

LUIS

Ponadto do tworzenia botów możesz potrzebować LUIS (Inteligentna usługa rozumienia języka). Cele usługi:

  • Ustal, czy wypowiedź użytkownika ma sens i czy reakcja bota jest konieczna.
  • Zmniejsz wysiłek związany z transkrypcją mowy użytkownika (tekstu) na polecenia zrozumiałe dla bota.
  • Przewiduj prawdziwe cele/intencje użytkowników i wydobywaj kluczowe spostrzeżenia z wyrażeń w dialogu.
  • Pozwól programiście uruchomić bota na podstawie zaledwie kilku przykładów rozpoznawania znaczeń i późniejszego dodatkowego szkolenia bota podczas pracy.
  • Pozwól programiście na wykorzystanie wizualizacji do oceny jakości transkrypcji poleceń.
  • Pomagaj w stopniowych ulepszeniach prawdziwego rozpoznawania celów.

W rzeczywistości głównym celem LUIS jest zrozumienie z pewnym prawdopodobieństwem, co użytkownik miał na myśli i przekształcenie naturalnego żądania w harmonijne polecenie. Do rozpoznawania wartości zapytań LUIS wykorzystuje zestaw intencji (znaczeń, intencji) i encji (albo wstępnie skonfigurowanych przez programistów, albo pobranych i wstępnie utworzonych „domen” - gotowych bibliotek standardowych fraz przygotowanych przez Microsoft). 

Prosty przykład: masz bota, który podaje prognozę pogody. Dla niego intencją będzie przełożenie naturalnej prośby na „akcję” – prośbę o prognozę pogody, a podmiotami będzie czas i miejsce. Oto schemat działania intencji CheckWeather dla takiego bota.

Zamiar
Esencja
Przykład zapytania naturalnego

SprawdźPogodę
{"type": "lokalizacja", "jednostka": "moskwa"}
{"type": "builtin.datetimeV2.date", "entity": "przyszłość", "rozdzielczość": "2020-05-30"}
Jaka pogoda będzie jutro w Moskwie?

SprawdźPogodę
{ "type": "zakres daty", "jednostka": "w ten weekend" }
Pokaż mi prognozę na ten weekend

Aby połączyć QnA Maker i LUIS, możesz użyć Dyspozytor

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Kiedy pracujesz z QnA Maker i otrzymujesz żądanie od użytkownika, system określa, jaki procent prawdopodobieństwa odpowiedź z QnA pasuje do żądania. Jeśli prawdopodobieństwo jest wysokie, użytkownik otrzymuje po prostu odpowiedź z korporacyjnej bazy wiedzy; jeśli jest niskie, żądanie można wysłać do LUIS w celu wyjaśnienia. Korzystanie z Dispatchera pozwala nie programować tej logiki, ale automatycznie określić tę krawędź separacji żądań i szybko je rozesłać.

Testowanie i publikowanie bota

Do testów wykorzystywana jest inna aplikacja lokalna, Emulator frameworku bota. Za pomocą emulatora możesz komunikować się z botem i sprawdzać, jakie wiadomości wysyła i odbiera. Emulator wyświetla wiadomości tak, jak wyglądałyby w interfejsie czatu internetowego i rejestruje żądania i odpowiedzi JSON podczas wysyłania wiadomości do bota.

Przykład wykorzystania emulatora przedstawiono w tym demo, które pokazuje utworzenie wirtualnego asystenta dla BMW. W filmie mowa jest także o nowych akceleratorach do tworzenia chatbotów – szablonach:

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy
https://youtu.be/u7Gql-ClcVA?t=564

Szablonów możesz także używać podczas tworzenia chatbotów. 
Szablony pozwalają nie pisać od nowa standardowych funkcji bota, ale dodać gotowy kod w ramach „umiejętności”. Przykładem może być praca z kalendarzem, umawianie spotkań itp. Kod gotowych umiejętności opublikowany na githubie.

Testy wypadły pomyślnie, bot jest gotowy, teraz pozostaje go opublikować i połączyć kanały. Publikacja odbywa się za pomocą Azure, a jako kanały można wykorzystać komunikatory lub sieci społecznościowe. Jeśli nie masz wymaganego kanału do wprowadzania danych, możesz go wyszukać w odpowiedniej społeczności na GitHab. 

Ponadto, aby stworzyć pełnoprawnego chatbota jako interfejs do komunikacji z użytkownikiem i usługami kognitywnymi, potrzebne będą oczywiście dodatkowe usługi Azure, takie jak bazy danych, bezserwerowe (Azure Functions), a także usługi LogicApp i ewentualnie , Siatka zdarzeń.

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Ocena i analityka

Aby ocenić interakcję użytkownika, możesz skorzystać zarówno z wbudowanej analityki usługi Azure Bot, jak i specjalnej usługi Application Insights.

Dzięki temu możesz zbierać informacje w oparciu o następujące kryteria:

  • Ilu użytkowników uzyskało dostęp do bota z różnych kanałów w wybranym okresie.
  • Ilu użytkowników, którzy wysłali jedną wiadomość, wróciło później i wysłało kolejną.
  • Ile akcji zostało wysłanych i odebranych przy użyciu każdego kanału w określonym przedziale czasu.

Korzystając z Application Insights możesz monitorować dowolną aplikację na platformie Azure, a w szczególności chatboty, pozyskując dodatkowe dane o zachowaniach użytkowników, obciążeniach i reakcjach chatbotów. Warto zaznaczyć, że usługa Application Insights posiada własny interfejs w Azure Portal.

Dane zebrane za pośrednictwem tej usługi możesz także wykorzystać do tworzenia dodatkowych wizualizacji i raportów analitycznych w PowerBI. Można wziąć przykład takiego raportu i szablonu dla PowerBI tutaj.

Przyspieszamy rozwój korzystając z usług Azure: tworzymy chatboty i usługi kognitywne korzystając z platformy

Dziękuję wszystkim za uwagę! W tym artykule użyliśmy tworzywo z webinaru prowadzonego przez architektkę Microsoft Azure Annę Fenyushinę „Kiedy ludzie nie mają czasu. Jak w 100% wykorzystać chatboty i usługi kognitywne do automatyzacji rutynowych procesów”, gdzie w przejrzysty sposób pokazaliśmy, czym są chatboty na Azure i jakie są scenariusze ich wykorzystania, a także pokazaliśmy, jak stworzyć bota w QnA Maker w 15 minut i jak struktura zapytania jest odszyfrowana w LUIS. 

Zrobiliśmy to webinarium w ramach maratonu online dla programistów Dev Bootcamp. Chodziło o produkty, które przyspieszają rozwój i odciążają część rutynowych obowiązków pracowników firmy, korzystając z narzędzi automatyzacji i gotowych, wstępnie skonfigurowanych modułów Azure. Nagrania pozostałych webinarów wchodzących w skład maratonu dostępne są pod poniższymi linkami:

Źródło: www.habr.com

Dodaj komentarz