Zastanawialiście się kiedyś jak to jest, że bot umie rozpoznać, że się z nim witacie i odpowiednio odpowiada? Bez względu na to, czy napiszecie „Hi”, „Hello” czy „Good morning”? W tym poście pokażę, co się dzieje w środku.
qnamaker.ai – portal
Microsoft stworzył serwis NPL (Natural Language Processing) qnamaker.ai, w którym można definiować bazy wiedzy. Warto go używać, gdy chcemy wykorzystać w bocie statyczne informacje np. hasło do Wifi, czy linki do różnych stron, ale także komunikaty na powitanie i pożegnanie się z użytkownikiem.

Po zalogowaniu się (robię to kontem Microsoft), wyświetla się lista baz wiedzy w zależności od tenanta na Azure (domyślnie wyświetla się lista dla wszystkich tenantów):

qnamaker.ai – tworzenie bazy wiedzy
Na początek stwórzmy sobie nową bazę wiedzy. Załóżmy, że chcemy, żeby bot umiał się przywitać (odpowiedzieć na przywitanie użytkownika).
Po kliknięciu opcji „Create a knowledge base” zostajemy przekierowani do formularza tworzenia bazy wiedzy:

Azure portal – tworzenie serwisu QnA
Na początek potrzebujemy utworzyć specjalny serwis na Azure, w którym baza wiedzy będzie przechowywana. Po kliknięciu przycisku „Create a QnA service” zostajemy przekierowani do formularza tworzenia takiego zasobu na Azure:

Ustawmy odpowiednie nazwy i najniższe tiery (darmowe, z ograniczeniami – ale wystarczające do naszego testu). Jako, że qnamaker jest dostępny na razie tylko w westus, trzeba ustawić parametry związane z location na West US (Azure Search location, Azure Search location, Website location, App insights location).

Po pomyślnej walidacji musimy poczekać na deployment:

Po zakończeniu deploymentu zostaniemy o tym powiadomieni:

Możemy przejść do zasobu:

Warto też zerknąć na zawartość utworzonej resource groupy:

Poza samym serwisem (typu Cognitive Services) został utworzony App Service, App Service plan, Application Insights i Search service.
Wróćmy do qnamaker.ai i tworzenia bazy wiedzy. Skoro mamy odpowiedni zasób przygotowany na Azure, możemy go połączyć:

Następnie ustawiamy nazwę bazy wiedzy:

Kolejny krok możemy pominąć. Moglibyśmy z niego skorzystać, gdybyśmy mieli zdefiniowaną listę pytań i odpowiedzi online lub w pliku. Nie mamy takiej, będziemy więc dodawać pytania i odpowiedzi bezpośrednio w serwisie.

Istnieje również opcja wybrania wersji Chit-Chata – czyli zaimportowania gotowych, przygotowanych przez Microsoft odpowiednich baz wiedzy pozwalających na odpowiadanie na przeróżne pytania użytkowników. W wersji professional jest m.in. dostępne powitanie i pożegnanie, odpowiedź na pytanie kim jest bot i co umie robić. Na potrzeby naszego przykładu zrezygnujemy z tej bazy wiedzy (wybierzemy opcję None).

Ostatni krok to tworzenie bazy wiedzy:

Tworzenie powinno zająć moment. Po utworzeniu bazy widzimy ekran:

Mamy pustą bazę wiedzy. Możemy ją przetestować, wykorzystując przycisk Test:

Jak widać, bot korzystający z tej bazy wiedzy nie wie, jak się przywitać. Dodajmy więc nowe pary QnA:

Teraz musimy je zapisać i przetrenować, żeby móc je przetestować (przycisk Save and Train). Ponowne przetestowanie pozwala zobaczyć, że bot umie się już przywitać.

Warto jeszcze zwrócić uwagę na przycisk Inspect pod każdym pytaniem – pozwala on zajrzeć w głąb zapytania i sprawdzić z jaką pewnością bot odpowiada.

Do bazy możemy również dodać inne pary QnA, np. dotyczące innego rodzaju powitań.

qnamaker.ai – publikowanie bazy wiedzy
Skoro podstawową bazę już mamy, czas ją opublikować. Służy do tego zakładka Publish.

Po kliknięciu przycisku Publish udostępniamy serwis globalnie. Możemy użyć endpoint, żeby sprawdzić, jak działa:

Możemy używając Postmana wysłać request z pytaniem:
{„question”:”hi”}
do naszego serwisu:

W obiekcie zwracanym dostaniemy m.in. informacje o score, odpowiedź czy listę pytań.
Podsumowanie
To by było na tyle odnośnie podstaw serwisu qnamaker. Jeśli zainteresował Cię ten temat, to możesz poczytać dokumentację.
Jeśli temat Cię zaciekawił, to zerknij jeszcze na pozostałe posty o tematyce botów 🙂
Post powstał pod patronatem firmy, w której aktualnie pracuję: Objectivity.
Grafikę tytułową zaprojektował niezastąpiony zespół designu!
Podoba Ci się to, co tworzę? Chcesz dostawać informacje o:
– wydarzeniach, które organizuję lub wspieram (np. konferencje, meetupy, webinary)
– inicjatywach, które organizuję lub wspieram (np. GeekWeekWro, DevAdventCalendar)
– moich prelekcjach, kursach i szkoleniach
– wyróżnionych artykułach z mojego bloga
0% SPAMu, 100% informacji! Krótko i na temat.
Cześć, seria wpisów o różnych technologiach tworzenia chatbotów to fajny pomysł. Sam popełniłem kiedyś wpis o AIML, który jest znacznie prostszym podejściem do tego tematu ( https://polydev.pl/2018/01/24/aiml-czyli-piszemy-gadajacego-bota/ ) i od tego czasu noszę się z zamiarem poznania bardziej współczesnych narzędzi do generowania gadających botów. Pozdrawiam! 🙂
PolubieniePolubione przez 1 osoba