Dodawanie rozumienia języka naturalnego do bota
DOTYCZY: SDK v4
Uwaga
Usługa Language Understanding (LUIS) zostanie wycofana 1 października 2025 r. Od 1 kwietnia 2023 r. nie będzie można tworzyć nowych zasobów usługi LUIS. Nowsza wersja interpretacji języka jest teraz dostępna w ramach języka sztucznej inteligencji platformy Azure.
Zrozumienie języka konwersacyjnego (CLU), funkcja języka w ramach Azure AI, to zaktualizowana wersja usługi LUIS. Aby uzyskać więcej informacji na temat obsługi języka w zestawie SDK platformy Bot Framework, zobacz Opis języka naturalnego.
Możliwość zrozumienia, co użytkownik oznacza konwersacyjnie i kontekstowo, może być trudnym zadaniem, ale może zapewnić botowi bardziej naturalne wrażenie rozmowy. Language Understanding (LUIS) to oparta na chmurze usługa interfejsu API, która umożliwia wykonanie tych czynności, dzięki czemu bot może rozpoznać intencję komunikatów użytkownika, umożliwić uzyskanie większego języka naturalnego od użytkownika i lepsze kierowanie przepływu konwersacji.
W tym temacie opisano proces dodawania usługi LUIS do aplikacji rezerwacji lotów w celu rozpoznawania różnych intencji i jednostek zawartych w danych wejściowych użytkownika.
Uwaga
Zestawy SDK dla języków JavaScript, C# i Python platformy Bot Framework będą nadal obsługiwane, jednak zestaw SDK dla języka Java zostanie wycofany, a jego ostateczne wsparcie długoterminowe zakończy się w listopadzie 2023 r.
Istniejące boty utworzone za pomocą zestawu JAVA SDK będą nadal działać.
W przypadku tworzenia nowych botów, rozważ użycie Microsoft Copilot Studio i przeczytaj o wyborze odpowiedniego rozwiązania copilot.
Aby uzyskać więcej informacji, zobacz Przyszłość tworzenia botów.
Wymagania wstępne
- Konto LUIS.
- Kopia przykładu Core Bot w języku C#, JavaScript, Java lub Python.
- Znajomość podstaw dotyczących botówi przetwarzania języka naturalnego.
Informacje o tym przykładzie
Ten podstawowy przykład bota przedstawia przykład aplikacji do rezerwacji lotów lotniskowych. Używa usługi LUIS do rozpoznawania danych wejściowych użytkownika i zwracania najtrafniej rozpoznanej intencji LUIS.
Model językowy zawiera trzy intencje: Book Flight
, Cancel
i None
. Usługa LUIS użyje tych intencji, aby zrozumieć, co oznacza użytkownik podczas wysyłania komunikatu do bota. Model językowy definiuje również jednostki, które usługa LUIS może wyodrębnić z danych wejściowych użytkownika, takich jak lotnisko początkowe lub docelowe.
Po każdym przetworzeniu danych wejściowych użytkownika DialogBot
zapisuje bieżący stan zarówno UserState
, jak i ConversationState
. Po zebraniu wszystkich wymaganych informacji przykład kodu tworzy rezerwację lotu demonstracyjnego. W tym artykule omówimy aspekty usługi LUIS w tym przykładzie. Jednak ogólny przepływ próbki to:
-
OnMembersAddedAsync
jest wywoływany, gdy nowy użytkownik jest połączony i wyświetla kartę powitalną. -
OnMessageActivityAsync
parametr jest wywoływany dla każdego odebranych danych wejściowych użytkownika.
Moduł OnMessageActivityAsync
uruchamia odpowiednie okno dialogowe za pomocą metody rozszerzenia okna dialogowego Run
. Następnie główny dialog wywołuje pomocnika usługi LUIS, aby znaleźć intencję użytkownika o najwyższym wyniku. Jeśli główna intencja wejścia użytkownika zwraca wartość "BookFlight", pomocnik wypełnia informacje od użytkownika zwrócone przez usługę LUIS. Następnie główne okno dialogowe uruchamia BookingDialog
element, który w razie potrzeby uzyskuje dodatkowe informacje od użytkownika, takie jak:
-
Origin
miasto źródłowe -
TravelDate
data rezerwacji lotu -
Destination
miasto docelowe
W tym artykule opisano sposób dodawania usługi LUIS do bota. Aby uzyskać informacje o korzystaniu z okien dialogowych lub stanu, zobacz, jak zebrać dane wejściowe użytkownika przy użyciu monitu dialogowego lub zapisać odpowiednio dane użytkownika i konwersacji.
Tworzenie aplikacji usługi LUIS w portalu usługi LUIS
- Zaloguj się do portalu LUIS i w razie potrzeby utwórz konto oraz zasób do tworzenia.
- Na stronie aplikacji rozmów w LUIS wybierz Importuj, a następnie Importuj jako kod JSON.
- W oknie dialogowym Importowanie nowej aplikacji :
- Wybierz plik FlightBooking.json w folderze CognitiveModels przykładu.
- Wprowadź
FlightBooking
jako opcjonalną nazwę aplikacji, a następnie wybierz pozycję Gotowe.
- Na witrynie mogą być wyświetlane okna dialogowe Jak utworzyć efektywną aplikację usługi LUIS i Uaktualnianie jednostek złożonych. Możesz odrzucić te okna dialogowe i kontynuować.
- Wytrenuj aplikację, a następnie opublikuj aplikację w środowisku produkcyjnym . Aby uzyskać więcej informacji, zobacz dokumentację usługi LUIS dotyczącą sposobu trenowania i publikowania aplikacji.
Dlaczego warto używać jednostek
Jednostki usługi LUIS umożliwiają botowi zrozumienie zdarzeń poza standardowymi intencjami. Dzięki temu można zbierać od użytkowników dodatkowe informacje, dzięki czemu bot może zadawać pytania i reagować inteligentniej. Wraz z definicjami trzech intencji usługi LUIS "Book Flight", "Cancel" i "None" plik FlightBooking.json zawiera również zestaw jednostek, takich jak "From.Airport" i "To.Airport". Te jednostki umożliwiają usłudze LUIS wykrywanie i zwracanie dodatkowych informacji zawartych w oryginalnych danych wejściowych użytkownika podczas żądania nowej rezerwacji podróży.
Uzyskanie wartości do połączenia z aplikacją LUIS
Po opublikowaniu aplikacji LUIS możesz uzyskać do niej dostęp z bota. Aby uzyskać dostęp do aplikacji usługi LUIS z poziomu bota, musisz zarejestrować kilka wartości. Te informacje można pobrać za pomocą portalu usługi LUIS.
Pobieranie informacji o aplikacji z portalu LUIS.ai
Plik ustawień (appsettings.json
.env
lub config.py
) działa jako miejsce, aby połączyć wszystkie odwołania do usługi w jednym miejscu. Pobrane informacje zostaną dodane do tego pliku w następnej sekcji.
Wybierz opublikowaną aplikację usługi LUIS z luis.ai.
Po otwarciu opublikowanej aplikacji LUIS wybierz kartę ZARZĄDZAJ .
Wybierz kartę >.
Wybierz pozycję Zasoby platformy Azure, a następnie zasób przewidywania. Zapisz wartość wyświetlaną dla pozycji Lokalizacja jako <YOUR_REGION> i Klucz podstawowy jako <YOUR_AUTHORING_KEY>.
Alternatywnie możesz użyć regionu i klucza podstawowego dla swojego zasobu autorskiego.
Aktualizowanie pliku ustawień
Dodaj informacje wymagane do uzyskania dostępu do aplikacji LUIS, w tym identyfikator aplikacji, klucz autorski i region do pliku appsettings.json
. W poprzednim kroku pobrano te wartości z opublikowanej aplikacji usługi LUIS. Nazwa hosta interfejsu API powinna mieć format <your region>.api.cognitive.microsoft.com
.
appsetting.json
Ostrzeżenie
Wygląda na to, że przykład, którego szukasz, został przeniesiony! Bądź pewien, że pracujemy nad rozwiązaniem tego problemu.
Konfigurowanie bota do korzystania z aplikacji usługi LUIS
Upewnij się, że pakiet NuGet Microsoft.Bot.Builder.AI.Luis jest zainstalowany dla projektu.
Aby nawiązać połączenie z usługą LUIS, bot pobiera informacje dodane do pliku appsetting.json. Klasa FlightBookingRecognizer
zawiera kod z ustawieniami z pliku appsetting.json i wysyła zapytanie do usługi LUIS przez wywołanie RecognizeAsync
metody .
FlightBookingRecognizer.cs
Ostrzeżenie
Wygląda na to, że przykład, którego szukasz, został przeniesiony! Bądź pewien, że pracujemy nad rozwiązaniem tego problemu.
Zawiera FlightBookingEx.cs
logikę wyodrębniania From, To i TravelDate; rozszerza klasę FlightBooking.cs
częściową używaną do przechowywania wyników usługi LUIS podczas wywoływania FlightBookingRecognizer.RecognizeAsync<FlightBooking>
z MainDialog.cs
.
CognitiveModels\FlightBookingEx.cs
Ostrzeżenie
Wygląda na to, że przykład, którego szukasz, został przeniesiony! Bądź pewien, że pracujemy nad rozwiązaniem tego problemu.
Usługa LUIS jest teraz skonfigurowana i połączona z botem.
Przetestuj bota
Pobierz i zainstaluj najnowszą wersję emulatora platformy Bot Framework
Uruchom przykład lokalnie na swoim komputerze. Jeśli potrzebujesz instrukcji, zapoznaj się z plikiem
README
przykładu języka C#, przykładu JS lub przykładu języka Python.W emulatorze wpisz komunikat, taki jak "podróż do paryża" lub "przejście z paryża do Berlina". Użyj dowolnej wypowiedzi znalezionej w pliku FlightBooking.json do szkolenia intencji "Zarezerwuj lot".
Jeśli główna intencja zwrócona z usługi LUIS zostanie rozpoznana jako "Zarezerwuj lot", bot zada więcej pytań, dopóki nie będzie miał wystarczającej ilości informacji przechowywanych w celu utworzenia rezerwacji podróży. W tym momencie zwróci te informacje o rezerwacji z powrotem do użytkownika.
W tym momencie logika bota kodu zostanie zresetowana i będzie można nadal tworzyć więcej rezerwacji.
Dodatkowe informacje
Aby uzyskać więcej informacji na temat usługi LUIS, zobacz dokumentację usługi LUIS:
- Co to jest usługa Language Understanding (LUIS)?
- Tworzenie nowej aplikacji usługi LUIS w portalu usługi LUIS
- Projektowanie za pomocą intencji i modeli jednostek
- Migrowanie do interfejsów API autorskich V3
- Migracja do interfejsów API V3 do przewidywania
Napiwek
Różne części zestawu SDK definiują oddzielne klasy jednostek lub elementy. Aby uzyskać informacje o jednostkach komunikatów, zobacz Jednostki i typy działań.