Tworzenie aplikacji usługi LUIS, która można dekompilować

Ważne

Usługa LUIS zostanie wycofana 1 października 2025 r. i od 1 kwietnia 2023 r. nie będzie można utworzyć nowych zasobów usługi LUIS. Zalecamy migrowanie aplikacji usługi LUIS do interpretacji języka konwersacyjnego , aby korzystać z ciągłej pomocy technicznej produktu i możliwości wielojęzycznych.

W tym samouczku będzie można utworzyć aplikację usługi LUIS telekomunikacyjną, która może przewidywać różne intencje użytkownika. Na koniec samouczka powinniśmy mieć aplikację telekomunikacyjną, która może przewidywać intencje użytkowników na podstawie tekstu dostarczonego przez użytkowników.

Będziemy obsługiwać różne scenariusze użytkownika (intencje), takie jak:

  • Rejestracja w celu uzyskania nowej linii telekomunikacyjnej
  • Aktualizowanie istniejącej warstwy
  • Płacenie rachunku

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  1. Tworzenie aplikacji usługi LUIS
  2. Tworzenie intencji
  3. Dodawanie jednostek
  4. Dodawanie wypowiedzi
  5. Przykładowe wypowiedzi etykiet
  6. Trenowanie aplikacji
  7. Publikowanie aplikacji
  8. Pobieranie przewidywań z opublikowanego punktu końcowego

Tworzenie aplikacji usługi LUIS

  1. Zaloguj się do portalu usługi LUIS

  2. Utwórz nową aplikację, wybierając pozycję +Nowa aplikacja.

    Zrzut ekranu przedstawiający ekran tworzenia aplikacji.

  3. W wyświetlonym oknie wprowadź nazwę "Samouczek telekomunikacyjny", zachowując domyślną kulturę w języku angielskim. Pozostałe pola są opcjonalne, nie ustawiaj ich. Kliknij Gotowe.

    Zrzut ekranu przedstawiający pola tworzenia aplikacji usługi LUIS.

Zamiary użytkownika jako intencje

Pierwszą rzeczą, którą zobaczysz w sekcji Kompilacja , są intencje aplikacji. Intencje reprezentują zadanie lub akcję, którą użytkownik chce wykonać.

Wyobraź sobie aplikację usługi LUIS telekomunikacyjną, czego potrzebuje użytkownik?

Prawdopodobnie będą musieli wykonać jakąś akcję użytkownika lub poprosić o pomoc. Inny użytkownik może chcieć zaktualizować warstwę lub zapłacić rachunek

Wynikowy schemat jest następujący. Aby uzyskać więcej informacji, zobacz najlepsze rozwiązania dotyczące planowania schematu.

Zamiar Cel
UserActions Określanie akcji użytkownika
Help Żądanie pomocy
UpdateTier Aktualizowanie bieżącej warstwy
PayBill Opłacanie zaległego rachunku
Brak Ustal, czy użytkownik pyta coś, czego aplikacja LUIS nie jest przeznaczona do udzielenia odpowiedzi. Ta intencja jest dostarczana w ramach tworzenia aplikacji i nie można jej usunąć.

Tworzenie nowej intencji

Intencja służy do klasyfikowania wypowiedzi użytkownika na podstawie intencji użytkownika, określonej na podstawie tekstu języka naturalnego.

Aby sklasyfikować wypowiedź, intencja wymaga przykładów wypowiedzi użytkownika, które powinny być klasyfikowane z tą intencją.

  1. Wybierz pozycję Skompiluj w górnym menu nawigacji, a następnie wybierz pozycję Intencje po lewej stronie ekranu. Wybierz pozycję + Utwórz , aby utworzyć nową intencję. Wprowadź nową nazwę intencji "UserAction", a następnie wybierz pozycję Gotowe

    UserAction może być jedną z wielu intencji. Na przykład niektórzy użytkownicy mogą chcieć zarejestrować się w nowym wierszu, podczas gdy inni mogą poprosić o pobranie informacji.

  2. Dodaj kilka przykładowych wypowiedzi do tej intencji — takich, których spodziewasz się ze strony użytkownika:

    • Witaj! Chcę zarejestrować się w nowym wierszu
    • Czy mogę zarejestrować się w celu uzyskania nowego wiersza?
    • Witaj, chcę nowy wiersz
    • Zapomniałem mojego numeru wiersza!
    • Chcę utworzyć nowy numer wiersza

    Zrzut ekranu przedstawiający przykładowe wypowiedzi dla intencji UserAction.

W przypadku intencji PayBill niektóre wypowiedzi mogą być następujące:

  • Chcę zapłacić rachunek
  • Rozliczenie rachunku
  • Płatność za rachunek
  • Chcę zamknąć bieżące saldo
  • Hej! Chcę zapłacić bieżący rachunek

Dostarczając przykładowe wypowiedzi, uczysz usługi LUIS o tego, jakie rodzaje wypowiedzi powinny być przewidywane dla tej intencji. Są to pozytywne przykłady. Wypowiedzi we wszystkich innych intencjach są traktowane jako negatywne przykłady dla tej intencji. W idealnym przypadku tym bardziej przykładowe wypowiedzi, które dodajesz, tym lepiej będą przewidywania aplikacji.

Tych kilka wypowiedzi służy wyłącznie do celów demonstracyjnych. Rzeczywista aplikacja powinna zawierać co najmniej 15-30 wypowiedzi o różnej długości, kolejności wyrazów , napiętej, gramatycznej poprawności, interpunkcji i liczbie słów.

Tworzenie pozostałych intencji

Wykonaj powyższe kroki, aby dodać następujące intencje do aplikacji:

"Pomoc"

  • "Potrzebuję pomocy"
  • "Potrzebuję pomocy"
  • "Pomoc proszę"
  • "Czy ktoś mnie wspiera?"
  • "Jestem zablokowany, możesz mi pomóc"
  • "Czy mogę uzyskać pomoc?"

"UpdateTier"

  • "Chcę zaktualizować moją warstwę"
  • "Aktualizuj moją warstwę"
  • "Chcę zmienić warstwę adresu VIP"
  • "Zmień moją subskrypcję na warstwę Standardowa"

Przykładowe wypowiedzi intencji None

Aplikacja kliencka musi wiedzieć, czy wypowiedź nie jest znacząca i czy nie jest odpowiednia dla aplikacji. Intencja "None" jest dodawana do każdej aplikacji w ramach procesu tworzenia w celu określenia, czy nie należy odpowiadać na wypowiedź przez aplikację kliencą.

Jeśli usługa LUIS zwróci intencję "Brak" dla wypowiedzi, aplikacja kliencka może zapytać, czy użytkownik chce zakończyć konwersację lub przekazać więcej wskazówek dotyczących kontynuowania konwersacji.

Jeśli intencja "None" pozostanie pusta, wypowiedź, która powinna być przewidywana poza domeną podmiotu, będzie przewidywana w jednej z istniejących intencji domeny podmiotu. Wynikiem jest to, że aplikacja kliencka, taka jak czatbot, będzie wykonywać nieprawidłowe operacje na podstawie nieprawidłowego przewidywania.

  1. Wybierz pozycję Intents (Intencje) na lewym panelu.

  2. Wybierz intencję None. Dodaj trzy wypowiedzi, które użytkownik może wprowadzić, ale nie są istotne dla aplikacji telekomunikacyjnej. W tych przykładach nie należy używać słów, których oczekujesz w domenie podmiotu, takich jak warstwa, uaktualnienie, rejestracja, rachunek.

    • "Kiedy jest mój lot?"
    • "Muszę zmienić moje zamówienie na pizzę proszę"
    • "Jaka jest pogoda na dziś?"

Dodawanie jednostek

Jednostka jest elementem lub elementem, który jest istotny dla intencji użytkownika. Jednostki definiują dane, które można wyodrębnić z wypowiedzi i są niezbędne do wykonania wymaganej akcji użytkownika.

  1. W sekcji kompilacji wybierz pozycję Jednostki.

  2. Aby dodać nową jednostkę, wybierz pozycję +Utwórz

    W tym przykładzie utworzymy dwie jednostki "UpdateTierInfo" jako typ jednostki nauczona maszynowo i "Warstwa" jako typ jednostki listy. Usługa Luis umożliwia również tworzenie różnych typów jednostek.

  3. W wyświetlonym oknie wprowadź ciąg "UpdateTierInfo", a następnie wybierz pozycję Maszyna wyuczone z dostępnych typów. Wybierz pole Dodaj strukturę , aby móc dodać strukturę do tej jednostki.

    Zrzut ekranu przedstawiający jednostkę.

  4. Wybierz opcję Dalej.

  5. Aby dodać podrzędną podjętość, wybierz symbol "+" i zacznij dodawać element podrzędny. W naszym przykładzie jednostki "UpdateTierInfo" wymagane są trzy elementy:

    • OriginalTier
    • NewTier
    • Phonenumber

    Zrzut ekranu przedstawiający jednostki podrzędne w aplikacji.

  6. Wybierz pozycję Utwórz po dodaniu wszystkich podentiów.

    Utworzymy kolejną jednostkę o nazwie "Warstwa", ale tym razem będzie to jednostka listy i będzie zawierać wszystkie warstwy, które możemy udostępnić: warstwa Standardowa, warstwa Premium i warstwa VIP.

  7. Aby to zrobić, przejdź do karty jednostki i naciśnij pozycję +utwórz i wybierz listę z typów na wyświetlonym ekranie.

  8. Dodaj elementy do listy i opcjonalnie możesz dodać synonimy, aby upewnić się, że wszystkie przypadki tej wzmianki będą zrozumiałe.

    Zrzut ekranu przedstawiający jednostkę listy.

  9. Teraz wróć do jednostki "UpdateTierInfo" i dodaj jednostkę "tier" jako funkcję dla utworzonych wcześniej jednostek "OriginalTier" i "newTier". Powinna to wyglądać następująco:

    Zrzut ekranu przedstawiający funkcje jednostki.

    Dodaliśmy warstwę jako funkcję zarówno dla "originalTier" i "newTier", jak i dodaliśmy jednostkę "Phonenumber", która jest typem wyrażenia regularnego. Można go utworzyć w taki sam sposób, w jaki utworzyliśmy uczenie maszynowe i jednostkę listy.

Teraz pomyślnie utworzyliśmy intencje, dodaliśmy przykładowe wypowiedzi i dodaliśmy jednostki. Utworzyliśmy cztery intencje (inne niż intencja "none") i trzy jednostki.

Przykładowe wypowiedzi etykiet

Jednostka nauczona przez maszynę jest tworzona, a jednostki podrzędne mają funkcje. Aby ukończyć ulepszanie wyodrębniania, przykładowe wypowiedzi muszą być oznaczone etykietami podrzędnymi.

Istnieją dwa sposoby etykietowania wypowiedzi:

  1. Korzystanie z narzędzia do etykietowania

    1. Otwórz paletę jednostek i wybierz symbol "@" na kontekstowym pasku narzędzi.
    2. Zaznacz każdy wiersz jednostki w palecie, a następnie użyj kursora palety, aby wybrać jednostkę w każdej przykładowej wypowiedzi.
  2. Wyróżnij tekst, przeciągając kursor. Za pomocą kursora wyróżnij tekst, który chcesz oznaczyć etykietą. Na poniższej ilustracji wyróżniono pozycję "vip - tier" i wybraliśmy jednostkę "NewTier".

    Zrzut ekranu przedstawiający sposób etykietowania wypowiedzi.

Uczenie aplikacji

W prawym górnym rogu witryny internetowej usługi LUIS wybierz przycisk Trenuj .

Przed rozpoczęciem trenowania upewnij się, że istnieje co najmniej jedna wypowiedź dla każdej intencji.

Zrzut ekranu przedstawiający element , ale do trenowania aplikacji.

Publikowanie aplikacji

Aby otrzymać przewidywanie usługi LUIS w czatbotze lub innej aplikacji klienckiej, należy opublikować aplikację w punkcie końcowym przewidywania. Aby opublikować aplikację, musisz wytrenować pięść aplikacji.

  1. Wybierz pozycję Publikuj w prawym górnym rogu nawigacji.

    Zrzut ekranu przedstawiający przycisk publikowania aplikacji.

  2. Wybierz miejsce produkcyjne , a następnie wybierz pozycję Gotowe.

    Zrzut ekranu przedstawiający selektor miejsca produkcyjnego.

  3. Wybierz pozycję Uzyskaj dostęp do adresów URL punktów końcowych w powiadomieniu, aby przejść do strony Zasoby platformy Azure . Adresy URL będą widoczne tylko wtedy, gdy masz zasób przewidywania skojarzony z aplikacją. Możesz również znaleźć stronę Zasoby platformy Azure , klikając pozycję Zarządzaj po lewej stronie ekranu.

    Zrzut ekranu przedstawiający powiadomienie o dostępie do punktu końcowego.

Uzyskiwanie przewidywania intencji

  1. Wybierz pozycję Zarządzaj w menu w prawym górnym rogu, a następnie wybierz pozycję Zasoby platformy Azure po lewej stronie.

  2. Skopiuj przykładowy adres URL zapytania i wklej go do nowej karty przeglądarki internetowej.

    Adres URL punktu końcowego będzie miał następujący format.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Przejdź na koniec adresu URL na pasku adresu i zastąp query= parametr string:

    "Witaj! Szukam nowego numeru proszę.

    Zapytanie wypowiedzi jest przekazywane w identyfikatorze URI. Ta wypowiedź nie jest taka sama jak każda z przykładowych wypowiedzi i powinna być dobrym testem, aby sprawdzić, czy usługa LUIS przewiduje intencję UserAction jako intencję oceniania najwyższego poziomu.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

Wynik JSON identyfikuje najwyższą intencję oceniania jako właściwość prediction.topIntent . Wszystkie wyniki są z zakresu od 1 do 0, a lepszy wynik jest bliższy 1.

Następne czynności dotyczące aplikacji klienckiej

W tym samouczku utworzono aplikację usługi LUIS, utworzono intencje, jednostki, dodano przykładowe wypowiedzi do każdej intencji, dodano przykładowe wypowiedzi do intencji None, wyszkolono, opublikowano i przetestowano w punkcie końcowym. Są to podstawowe kroki tworzenia modelu usługi LUIS.

Usługa LUIS nie udostępnia odpowiedzi na wypowiedzi użytkowników. Określa tylko, jakiego typu informacje są proszane w języku naturalnym. Kontynuacja konwersacji jest udostępniana przez aplikację klienckę, taką jak bot platformy Azure.

Czyszczenie zasobów

Gdy aplikacja LUIS nie będzie już potrzebna, usuń ją. W tym celu wybierz pozycję Moje aplikacje z menu w lewym górnym rogu. Wybierz wielokropek ( ... ) z prawej strony nazwy aplikacji na liście aplikacji, a następnie wybierz pozycję Usuń. W wyskakującym oknie dialogowym o nazwie Usuń aplikację? wybierz przycisk OK.