Cykl chatboty #3: co to jest luis.ai

Zdarzyło Ci się rozmawiać z botem? Jak myślisz, co się dzieje w jego wnętrzu? Jak on „myśli”? Dzisiaj czas na zdradzenie paru ciekawostek na ten temat.

luis.ai – portal

Microsoft przygotował specjalny serwis luis.ai, który służy do interpretacji języka naturalnego (NLU – natural language understanding). Co to znaczy? Tyle, że serwis ten przyjmuje jakąś wiadomość od użytkownika (język naturalny) i próbuje ją zinterpretować (oszacować na podstawie swoich modeli, co użytkownik miał na myśli).

Na dzień dzisiejszy istnieją 3 portale, w zależności od regionu:

Przykład zostanie zaprezentowany w ramach regionu westus. Na początek należy zalogować się do serwisu (ja to robię za pomocą konta Microsoft).

Po zalogowaniu możemy zobaczyć listę naszych aplikacji.

luis.ai – tworzenie aplikacji

Możemy utworzyć nową aplikację testową:

Po tym kroku serwis przedstawia wskazówki, co należy zrobić:

Na tym etapie nie musimy robić nic, będziemy działać na modelu, który zostanie utworzony automatycznie.

luis.ai – budowanie aplikacji

Na początku musimy przejść do zakładki Build i zdefiniować Intenty.

Intent to taka intencja konwersacji, kategoria. Gdy pytamy np. „who is Weronika?” to wiemy, że intencją jest zapytanie o osobę. Gdy napiszemy „order pizza” wiemy, że chodzi nam o zamówienie jakiegoś produktu.

Jak widać, mamy domyślnie skonfigurowany jeden intent None. Jest to domyślny intent LUISa. Obojętnie ile innych intentów byśmy dodali (do rozpoznawania osób czy np. do zamawiania produktów), to jeśli aplikacji nie uda się rozpoznać jednego z nich, zawsze zwróci intent None. Co ważne, nie można go usunąć.

luis.ai – trenowanie aplikacji

Żeby móc użyć lub przetestować model, należy go najpierw przetrenować. Do tego służy magiczny przycisk Train. W naszym przypadku ma oznaczenie czerwone, tzn. że są zmiany, które wymagają przetrenowania. Dodatkowo widać, że przyciski Test i Publish są niedostępne. Będą aktywne dopiero po przetrenowaniu modelu.

Po kliknięciu przycisku Train wyświetli się aktualizacja statusu wraz ze wskazanym postępem.

Po zakończonym trenowaniu widać, że zmienił się status modelu na zielony:

Możemy teraz przetestować nasz model.

luis.ai – testowanie aplikacji

W zakładce Test możemy testować naszą aplikację:

Po wpisaniu przykładowego tekstu widać, że rozpoznano domyślny intent None z wysoką dokładnością 0.914.

Po kliknięciu Inspect możemy zobaczyć szczegóły zapytania:

Jest to szczególnie przydatne przy bardziej złożonych modelach.

Dodatkowo istnieje możliwość porównania swojej wersji z wersją opublikowaną (przycisk Compare with published) – dzięki temu możemy się dowiedzieć, czy zmiany w naszym modelu poprawiły score, czy nie.

luis.ai – publikowanie aplikacji

Gdy wytrenowaliśmy model, możemy go opublikować. Pojawia się specjalne okno z zapytaniem, czy chcemy publikować na produkcję, czy stage (do testowania).

Po pomyślnej publikacji np. na produkcję pojawia się odpowiedni status wraz z linkiem do listy endpointów:

Kliknięcie w link przenosi nas do zakładki Manage -> Azure Resources, gdzie możemy zobaczyć podstawowe informacje o naszej aplikacji:

Mamy tam widoczny np. Endpoint i Example Query.

luis.ai – Example Query

Example query to link, który wygląda następująco:

https://location.api.cognitive.microsoft.com/luis/v2.0/apps/app-id?verbose=true&timezoneOffset=0&subscription-key=subscription-key&q=

Możemy go skopiować, dokleić na końcu szukaną frazę i dostać wynik w postaci jsona bezpośrednio w przeglądarce.

Wynik dla szukanej frazy „test”:

Wynik dla szukanej frazy „test message” (można w pasku adresu przeglądarki wpisać spacje, przeglądarka sama powinna je przekształcić w %20):

Podsumowanie

Przedstawione powyżej informacje, to tylko podstawy. Planuję w przyszłości napisać również post o zaawansowanych modelach LUISa, z wieloma intentami, regexami i innymi rzeczami.

Jeśli zainteresował Cię temat luis.ai, zachęcam do przeglądania dokumentacji. Warto też zerknąć na darmowy kurs na Udemy.

Przykładowe modele można znaleźć na GitHubie. Polecam szczególnie modele do rezerwacji lotów samolotowych oraz rozpoznawania kolorów.

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.

Dodaj komentarz