Tworzenie dekompilowalnej aplikacji usługi LUIS
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 migrację aplikacji LUIS do interpretacji języka konwersacyjnego, aby korzystać z ciągłej pomocy technicznej i wielojęzycznych możliwości produktów.
W tym samouczku będzie można utworzyć aplikację usługi LUIS telekomunikacyjną, która może przewidywać różne intencje użytkowników. 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:
- Rejestrowanie się 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:
- Tworzenie aplikacji usługi LUIS
- Tworzenie intencji
- Dodawanie jednostek
- Dodawanie wypowiedzi
- Przykładowe wypowiedzi etykiet
- Trenowanie aplikacji
- Publikowanie aplikacji
- Pobieranie przewidywań z opublikowanego punktu końcowego
Tworzenie aplikacji usługi LUIS
Zaloguj się do portalu usługi LUIS
Utwórz nową aplikację, wybierając pozycję +Nowa aplikacja.
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. Wybierz pozycję Gotowe.
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ć swoją warstwę lub zapłacić rachunek
Wynikowy schemat jest następujący. Aby uzyskać więcej informacji, zobacz najlepsze rozwiązania dotyczące planowania schematu.
Zdeterminowany | Przeznaczenie |
---|---|
UserActions | Określanie akcji użytkownika |
Help | Zażądaj pomocy |
UpdateTier | Aktualizowanie bieżącej warstwy |
PayBill | Płatność za zaległe rachunki |
Brak | Ustal, czy użytkownik coś, czego aplikacja usługi LUIS nie ma na celu udzielenia odpowiedzi. Ta intencja jest udostępniana 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ślonego 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ą.
Wybierz pozycję Build (Kompilacja ) z górnego menu nawigacji, a następnie wybierz pozycję Intents (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.
Dodaj kilka przykładowych wypowiedzi do tej intencji — takich, których spodziewasz się ze strony użytkownika:
- Witaj, Chcę zarejestrować się w celu utworzenia nowego wiersza
- Czy mogę zarejestrować się w celu uzyskania nowego wiersza?
- Witaj, chcę nowego wiersza
- Zapomniałem numeru wiersza!
- Chcę utworzyć nowy numer wiersza
W przypadku intencji PayBill niektóre wypowiedzi mogą być następujące:
- Chcę zapłacić mój rachunek
- Rozliczanie rachunku
- Płatność na rachunku
- Chcę zamknąć bieżące saldo
- Hej! Chcę zapłacić bieżący rachunek
Dostarczając przykładowe wypowiedzi, uczysz usługę LUIS o tym, 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 lepsze będą przewidywania aplikacji.
Tych kilka wypowiedzi służy wyłącznie do celów demonstracyjnych. Rzeczywista aplikacja powinna mieć co najmniej 15-30 wypowiedzi o różnej długości, kolejności wyrazów , napiętej, gramatycznej poprawności, interpunkcji i liczbie wyrazó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ś może mnie wspierać?"
- "Utknę, możesz mi pomóc"
- "Czy mogę uzyskać pomoc?"
"UpdateTier"
- "Chcę zaktualizować warstwę"
- "Aktualizuj moją warstwę"
- "Chcę zmienić warstwę adresu VIP"
- "Zmień moją subskrypcję na warstwę Standardowa"
Przykładowe wypowiedzi dla intencji None
Aplikacja kliencka musi wiedzieć, czy wypowiedź nie jest znacząca i czy nie jest odpowiednia dla aplikacji. Intencja "Brak" jest dodawana do każdej aplikacji w ramach procesu tworzenia w celu określenia, czy nie powinna odpowiadać 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 niepoprawnego przewidywania.
Wybierz pozycję Intents (Intencje) na lewym panelu.
Wybierz intencję None. Dodaj trzy wypowiedzi, które użytkownik może wprowadzić, ale nie są istotne dla aplikacji telekomunikacyjnej. Te przykłady nie powinny używać słów, których oczekujesz w domenie podmiotu, takich jak warstwa, uaktualnienie, rejestracja, rachunek.
- "Kiedy jest mój lot?"
- "Muszę zmienić zamówienie pizzy 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.
W sekcji kompilacji wybierz pozycję Jednostki.
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.
W wyświetlonym oknie wprowadź ciąg "UpdateTierInfo" i wybierz pozycję Maszyna wyuczone z dostępnych typów. Wybierz pole Dodaj strukturę, aby móc dodać strukturę do tej jednostki.
Wybierz Dalej.
Aby dodać podentity podrzędne, wybierz symbol "+" i zacznij dodawać element podrzędny. W naszym przykładzie jednostki "UpdateTierInfo" wymagane są trzy elementy:
- OriginalTier
- NewTier
- Numer telefonu
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 zapewnić: warstwa Standardowa, warstwa Premium i warstwa VIP.
Aby to zrobić, przejdź do karty jednostki, a następnie naciśnij pozycję +utwórz i wybierz listę z typów na wyświetlonym ekranie.
Dodaj elementy do listy i opcjonalnie możesz dodać synonimy, aby upewnić się, że wszystkie przypadki tej wzmianki będą zrozumiałe.
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:
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 wyuczonej maszyny jest tworzona, a podentacje mają funkcje. Aby ukończyć ulepszanie wyodrębniania, przykładowe wypowiedzi muszą być oznaczone etykietą z podentycjami.
Istnieją dwa sposoby etykietowania wypowiedzi:
Korzystanie z narzędzia do etykietowania
- Otwórz paletę jednostek i wybierz symbol "@" na pasku narzędzi kontekstowym.
- Zaznacz każdy wiersz jednostki na palecie, a następnie użyj kursora palety, aby wybrać jednostkę w każdej przykładowej wypowiedzi.
Wyróżnij tekst, przeciągając kursor. Za pomocą kursora wyróżnij tekst, który chcesz oznaczyć. Na poniższej ilustracji wyróżniono pozycję "vip - tier" i wybraliśmy jednostkę "NewTier".
Uczenie aplikacji
W prawym górnym rogu witryny internetowej usługi LUIS wybierz przycisk Trenuj .
Przed szkoleniem upewnij się, że istnieje co najmniej jedna wypowiedź dla każdej intencji.
Opublikuj aplikację
Aby otrzymać przewidywanie usługi LUIS w czatbotze lub innej aplikacji klienckiej, należy opublikować aplikację w punkcie końcowym przewidywania. Aby opublikować, należy wytrenować aplikację pięścią.
Wybierz pozycję Publikuj w prawym górnym rogu nawigacji.
Wybierz miejsce produkcyjne, a następnie wybierz pozycję Gotowe.
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ą. Stronę Zasoby platformy Azure można również znaleźć, klikając pozycję Zarządzaj po lewej stronie ekranu.
Uzyskiwanie przewidywania intencji
Wybierz pozycję Zarządzaj w prawym górnym menu, a następnie wybierz pozycję Zasoby platformy Azure po lewej stronie.
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
Przejdź na końcu adresu URL na pasku adresu i zastąp
query=
parametr ciągu:"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ę najwyższego oceniania.
{ "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 znajdują się w zakresie 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, wytrenowano, 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 dostarczana przez aplikację kliencą, 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 oknie dialogowym wyskakującym o nazwie Usuń aplikację? wybierz przycisk OK.