Używanie encji i agentów do wypełniania slotów
Istotną częścią rozmów agent jest Copilot Studio rozumienie języka naturalnego, czyli zdolność sztucznej inteligencji do zrozumienia intencji użytkownika. Na przykład użytkownik może powiedzieć "Próbowałem użyć mojego karta prezentu, ale to nie działa", a agent wie, jak przekierować użytkownika do temat związanej z prezentem, Karty nie działa, nawet jeśli ta dokładna fraza nie jest wymieniona jako fraza wyzwalająca.
Jednym z podstawowych aspektów rozumienia języka naturalnego jest identyfikowanie encji w sesji dialogowej użytkownika. Obejrzyj film, aby rozpocząć pracę z encjami.
Encję można traktować jako jednostkę informacji reprezentującą pewien typ obiektu ze świata rzeczywistego, taki jak numer telefonu, kod pocztowy, miejscowość lub nawet imię i nazwisko osoby. Dzięki wiedzy przekazywanej przez jednostki, agent może inteligentnie rozpoznać odpowiednie informacje na podstawie danych wejściowych użytkownika i zapisać je do późniejszego wykorzystania.
Wstępnie skompilowane encje
Encje w agentach umożliwiają przechowywanie informacji w podobnych grupach.
Po zainstalowaniu usługa Copilot Studio oferuje zestaw wstępnie skompilowanych encji, które odzwierciedlają typy informacji najczęściej używane w rzeczywistych dialogach, takie jak wiek, kolory, liczby oraz imiona i nazwiska.
Dzięki wiedzy przekazywanej przez jednostki, agent może inteligentnie rozpoznać odpowiednie informacje na podstawie danych wejściowych użytkownika i zapisać je do późniejszego wykorzystania.
Aby pomóc w zrozumieniu tej koncepcji, użyjemy przykładowej encji Pieniądze.
Otwórz plik agent w Copilot Studio i wybierz Ustawienia u góry strony, a następnie Jednostki w menu.
Zostanie wyświetlona lista encji, które są dostępne.
Wybierz encję Pieniądze, która spowoduje otwarcie okienka szczegółów tej encji.
W tym miejscu można zapoznać się z objaśnieniem tej encji i sposobami, za pomocą których można wyszukiwać informacje dotyczące pieniędzy lub waluty w danych wprowadzonych przez użytkownika.
Na przykład, gdy użytkownik wpisze "To kosztuje 1000 dolarów", używając tej jednostki pieniężnej, agent wie, że "1000 dolarów" reprezentuje informacje typu pieniądze . Gdy agent wyodrębnia tę jednostkę i zapisuje ją w zmiennej, zapisuje "1000" jako liczbę, mimo że otaczające informacje były tekstem.
Encje niestandardowe
Wstępnie utworzone encje obejmują najczęściej używane typy informacji. W niektórych sytuacjach, na przykład podczas tworzenia agent, który służy określonemu celowi, może być konieczne nauczenie modelu rozumienia języka agent wiedzy specyficznej dla domeny.
Załóżmy na przykład, że chcesz zbudować agent dla sklepu outdoorowego. W takim przypadku musisz nauczyć agent, aby potwierdzał kategorię "produkt outdoorowy" w oknie dialogowym.
Najpierw utwórz encję niestandardową. W takim przypadku możesz utworzyć jednostkę, która da agent wiedzę o wszystkich kategoriach produktów outdoorowych.
Otwórz plik agent w Copilot Studio i wybierz Ustawienia u góry strony, a następnie Jednostki w menu.
Wybierz opcję Dodaj encję> Nowa encja.
Wybierz żądany typ encji: jednostkę z zamkniętą listą lub jednostkę wyrażenia regularnego (regex).
Zamknięte encje listy
Zamknięte encje listy umożliwiają zdefiniowanie listy elementów. Najlepiej korzystać z tych encji w przypadku niewielkich list, których zarządzanie jest łatwe i które mają proste etykiety elementów.
Wybranie tej opcji podczas tworzenia encji pokazuje okienko, w którym można określić nazwę encji, opcjonalny opis i wprowadzić elementy, które mają być uwzględnione w encji.
Podczas wprowadzania elementów można:
- Wybrać każdy element, aby zmienić jego nazwę.
- Wybrać ikonę śmietnika, aby usunąć element z listy.
- Wybierz opcję + Synonimy (lub wybierz wymienione synonimy, jeśli zostały już dodane), aby otworzyć okienko Edytowanie synonimów.
Można dodać jej synonimy w celu ręcznego rozwinięcia logiki dopasowania dla każdego elementu na liście encji. Na przykład w elemencie „trekking” można dodać jako synonimy „trekking” i „wędrówki”.
Dla każdej encji można również włączyć funkcję Inteligentnego dopasowania.
Inteligentne dopasowywanie jest częścią inteligencji obsługiwanej przez model rozumienia języka agent. Po włączeniu tej opcji agent zinterpretuje dane wejściowe użytkownika przy użyciu logiki rozmytej na podstawie wymienionych elementów w jednostce.
W szczególności agent automatycznie poprawi błędy ortograficzne i rozszerzy swoją logikę dopasowania semantycznie. Na przykład agent może automatycznie dopasować "softball" do "baseball".
Po zakończeniu tworzenia lub edytowania encji wybierz opcję Zapisz, aby zapisać i powrócić do listy encji. Wybierz opcję Zamknij, aby odrzucić zmiany (użytkownik będzie miał możliwość powrotu do edytowania encji w przypadku przypadkowego wybrania niewłaściwej opcji).
Encje Wyrażenie regularne (regex)
Encje wyrażenia regularnego (regex) umożliwiają zdefiniowanie wzorców logicznych, których można użyć do dopasowania i wyodrębnienia informacji z danych wejściowych. Encje typu regex są doskonałe do skomplikowanych wzorców pasujących do danych wejściowych użytkownika lub do zezwolenia na określone odmiany, które użytkownik może sformatować lub wprowadzić w rozmowie.
Na przykład można użyć jednostki wyrażenia regularnego do identyfikowania elementów, takich jak identyfikator śledzenia, numer licencji, numer karta kredytowego lub adres IP z ciągu, który użytkownik wprowadza w agent.
Wybranie tej opcji podczas tworzenia encji powoduje pokazanie okienka, w którym można określić nazwę encji, opcjonalny opis i wprowadzić wzorzec wyrażenia regularnego, który powinien być używany do dopasowania i wyodrębniania elementów encji z wprowadzonych danych.
W encji wyrażenia regularnego usługi Copilot Studio jest używana składnia wyrażeń regularnych .NET.
Domyślnie we wzorcach jest rozróżniana wielkość liter, co powoduje, że w ciągu wzorca należy użyć opcji wyrażenia regularnego (?i)
. W okienku encji wyrażenia regularnego znajdują się niektóre podstawowe przykłady, a dodatkowe informacje dotyczące składni i więcej przykładów można znaleźć w Języku wyrażenia regularnego — szybki przewodnik.
Jeśli trzeba wprowadzić wyrażenie regularne biorące pod uwagę wiele wzorców, można użyć operatora zmiany |
w celu połączenia wyrażeń regularnych. Na przykład można połączyć dwa wzorce regex, aby szukać starych i nowych formatów kodu identyfikatora produktu.
Po zakończeniu tworzenia lub edytowania encji wybierz opcję Zapisz, aby zapisać i powrócić do listy encji. Wybierz opcję Zamknij, aby odrzucić zmiany (użytkownik będzie miał możliwość powrotu do edytowania encji w przypadku przypadkowego wybrania niewłaściwej opcji).
Korzystanie z encji w konwersacji
Teraz, gdy wykonałeś pracę polegającą na przekazaniu agent wiedzy na temat sprzętu outdoorowego, tworząc tę encję kategorii produktów i kilka innych encji niestandardowych, możesz zacząć z nich korzystać podczas konstruowania konwersacji agent.
Przejdź do strony Tematy dla agent, którą chcesz edytować.
Otwórz temat encji, którą chcesz zebrać.
Wybierz ikonę Dodaj węzeł , a następnie wybierz Zadaj pytanie.
W obszarze Identyfikacja wybierz encję utworzoną w obszarze encji niestandardowych.
Możesz również wybrać elementy, które mają być wyświetlane jako przyciski. Na przykład jeśli chcesz, aby niektóre kategorie były wyświetlane jako przyciski ułatwiające użytkownikom wybieranie ich jako danych wejściowych, możesz po prostu wybrać opcję Wybierz opcje użytkownika, a następnie wybrać elementy z listy zawierającej elementy dodane podczas tworzenia encji niestandardowej.
W razie potrzeby nazwij zmienną dotyczącą danych wyjściowych odpowiedzi użytkownika.
Wypełnianie miejsc na wartość
Wypełnianie miejsc na wartość jest pojęciem z zakresu rozumienia języka naturalnego, które oznacza zapisywanie wyodrębnionej encji w obiekcie. Jednak w usłudze Copilot Studio wypełnianie miejsca na wartość oznacza umieszczania wyodrębnionej wartości encji w zmiennej.
Jako przykładu będziemy nadal używać tematu dotyczącego sprzętu turystycznego, który jest wyzwalany przez wpisanie frazy „Chcę coś kupić“ w czacie testowym.
Temat został pomyślnie wyzwolony, a agent o typ działania, pokazując również opcje przycisków określone podczas tworzenia węzła Zadaj pytanie . W drzewie dialogowym śledzenie między tematami pokazuje również, że agent jest uruchomiony do węzła pytania, który właśnie został edytowany.
Użytkownik może użyć wstępnie zdefiniowanych możliwości wyboru, wybierając jeden z przycisków. Alternatywnie może również wpisać na przykład „Wycieczki piesze” i sprawdzić, czy ten element jest mapowany na „Wycieczki”, ponieważ te wyrazy były zdefiniowane jako synonimy.
Śledzenie między tematami polega na tym, że sesja dialogowa jest poprawnie kierowana do ścieżki, w której kategoria produktów to „Wycieczka”. Wartość zmiennej można sprawdzić z poziomu okna zmienna obserwacji zmiennych u dołu kanwy tworzenia. W oknie obserwacji wyświetlana jest zmienna o wartości „Wycieczki”.
W gruncie rzeczy miejsca na wartość zostały wypełnione przez wstawienie wyodrębnionej encji „Wycieczki” w zmiennej VarCampType
.
Można również użyć funkcji określanej jako „proaktywne wypełnianie miejsc na wartość”, w przypadku której użytkownik może podać wiele informacji mapowanych na wiele encji. Agent jest w stanie automatycznie zrozumieć, jakie informacje należą do której jednostki. W przypadkach, gdy nie ma pewności co do zamierzonego mapowanie, użytkownik będzie monitowany o dokonanie odpowiednich wyborów.
W tym przykładzie użytkownik napisał „Nudzi mi się, ale lubię chodzić po górach”. Ten komunikat zawiera zarówno wyrażenie wyzwalające, że użytkownik chce pomagać w działaniach na świeżym powietrzu, a także udostępnia drugi fragment informacji, „chodzenie po górach”, który jest zdefiniowanym przez encję synonimem pieszej wycieczki. W tym przypadku agent wypełnia zarówno jednostkę wyboru aktywności na świeżym powietrzu, jak i typ aktywności.
Podczas śledzenia między tematami można zobaczyć, że agent przyjmuje te dane wejściowe użytkownika i inteligentnie pomija węzeł pytania z pytaniem o typ działania.
Agent zawsze aktywnie słucha danych wejściowych użytkownika, zapamiętując informacje z wyprzedzeniem, aby w razie potrzeby móc pominąć niepotrzebne kroki.
Ponownie uruchom testowanie i wypróbuj inny przypadek. W tej rundzie możesz jeszcze dodać kilka węzłów pytań o elementy, takie jak ile masz czasu na działanie (używając encji Czas trwania), a także przedział cenowy (korzystający z encji Pieniądze).
Tym razem, gdy prezentowane jest pytanie o kategorię produktu, zamiast mówić agent tylko o kategorii produktu, użytkownik może powiedzieć "Chcę kupić parę butów turystycznych pod numerem $100". W tym przykładzie agent jest nie tylko w stanie przekierować do właściwej ścieżki kategorii produktów turystycznych, ale także aktywnie wypełnić miejsca, prosząc o informacje o rodzaju sprzętu turystycznego i docelowym przedziale cenowym.
Aktywne wypełnianie miejsc na wartość może być ręcznie sterowane na poziomie węzła. Aby zawsze monitować o pytanie w określonym węźle, niezależnie od tego, czy miejsce na wartość zostało wypełnione przez poprzednie odpowiedzi użytkownika, można wyłączyć opcję Pomiń pytanie dla tego węzła pytania. Aby wyłączyć opcję Pomiń pytanie, wykonaj następujące kroki.
Wybierz ikonę menu Więcej (…) węzła Pytanie, a następnie wybierz opcję Właściwości. Zostanie wyświetlony panel Właściwości pytania.
W panelu Właściwości pytania wybierz Zachowanie pytania.
W panelu Zachowania pytania w obszarze Pomiń pytanie wybierz Pytaj każdym razem i wybierz Zapisz u góry strony.