Udostępnij za pośrednictwem


Korzystanie z encji i wypełnianie miejsc na wartość w agentach usługi

Duża częścią konwersacji z agentami w usłudze Copilot Studio jest rozumienie języka naturalnego, co pozwala sztucznej inteligencji na interpretowanie zamiaru użytkownika. Na przykład klient może powiedzieć: "Próbowałem użyć karty upominkowej, ale nie działa". Agent wie, że powinien skierować klienta do tematu związanego z problemami z kartami upominkowymi, 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.

Jednostkę można traktować jako jednostkę informacji, która reprezentuje określony typ rzeczywistego tematu. Na przykład numer telefonu, kod pocztowy, miasto, a nawet imię i nazwisko osoby. Dzięki wiedzy oferowanej przez encje agenty mogą inteligentnie rozpoznawać istotnych informacji wprowadzonych przez użytkownika i zapisywać je w celu późniejszego użycia.

Wstępnie skompilowane encje

Encje w agentach umożliwiają przechowywanie informacji w podobnych grupach.

Aplikacja Copilot Studio obsługuje zestaw wstępnie utworzonych jednostek, które reprezentują najczęściej używane typy informacji w oknach dialogowych w świecie rzeczywistym, takie jak wiek, kolory, liczby i nazwy.

Dzięki wiedzy przyznanej przez jednostki agent może inteligentnie rozpoznać odpowiednie informacje z danych wejściowych użytkownika i zapisać je do późniejszego użycia.

Aby zrozumieć to pojęcie, użyjmy jednostki Money jako przykładu.

  1. Otwórz agenta w Copilot Studio programie i wybierz pozycję Ustawienia w górnej części strony, a następnie pozycję Encje w menu.

    Zostanie wyświetlona lista wszystkich dostępnych jednostek.

    Zrzut ekranu strony

  2. Wybierz jednostkę Money . Zostanie otwarty panel szczegółów jednostki.

    Zrzut ekranu przedstawiający panel szczegółów obiektu Money.

Tutaj można zobaczyć wyjaśnienie tej jednostki i sposoby jej użycia do wyodrębniania informacji związanych z pieniędzmi lub walutą z danych wejściowych użytkownika.

Jeśli na przykład użytkownik wprowadzi frazę „To kosztuje 1000 dolarów”, użycie tej encji Pieniądze spowoduje, że agent będzie wiedzieć, że ciąg „1000 dolarów” reprezentuje informacje typu Pieniądze. Gdy agent wyodrębnia te informacje i zapisuje je w zmiennej, zapisuje wartość "1000" jako liczbę, mimo że otaczające informacje były tekstem.

Encje niestandardowe

Wstępnie utworzone encje obejmują najczęściej używane typy informacji. We wstępnie skompilowanych encjach są prezentowane często używane typy informacji, ale w niektórych przypadkach, na przykład podczas kompilowania bota w określonym celu, trzeba wytrenować model rozumienia języka w bocie tak, aby przekazać mu wiedzę dotyczącą określonej domeny.

Załóżmy na przykład, że chcesz skompilować agenta dla sklepu z artykułami turystycznymi. W takim przypadku musisz nauczyć agenta, aby rozpoznawał kategorię "produktów sprzętu outdoorowego" w rozmowie.

Najpierw utwórz encję niestandardową. W takim przypadku można utworzyć encję, który daje agentowi wiedzę na temat wszystkich kategorii produktów turystycznych.

  1. Przejdź do strony Ustawienia agenta i wybierz pozycję Jednostki.

  2. Wybierz opcję Dodaj encję> Nowa encja.

  3. Spowoduje to otwarcie okienka, w którym można wybrać typ encji: encję Zamknięta lista lub encję Wyrażenia zwykłego (regex).

    Zrzut ekranu przedstawiający okno tworzenia jednostki z opcjami

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.

  1. W obszarze Tworzenie jednostki wybierz pozycję Zamknięta lista.

  2. W wyświetlonym panelu wprowadź nazwę nowej jednostki — na przykład Aktywność kempingowa.

  3. W razie potrzeby dodaj opis.

  4. W obszarze Elementy listy wprowadź wartości, które chcesz skojarzyć z tą jednostką. Na przykład wędrówki i joga.

    Alternatywnie możesz przekazać plik zawierający listę wszystkich żądanych wartości, które chcesz dodać dla tej jednostki.

    Podczas wprowadzania elementów można:

    • Wybierz element i zmień jego nazwę.
    • Wybierz ikonę kosza, aby usunąć element.
    • Wybierz pozycję Synonimy (lub wybierz wymienione synonimy, jeśli zostały już dodane), aby otworzyć panel Edytuj synonimy .

    Możesz dodać synonimy, aby rozwinąć zgodną logikę dla każdej wartości na liście. Na przykład w przypadku turystyki pieszej można dodać trekking i alpinizm jako synonimy.

    Zrzut ekranu przedstawiający panel

  5. W razie potrzeby włącz inteligentne dopasowywanie dla tej jednostki.

    Inteligentne dopasowanie jest częścią szczegółowych informacji obsługiwanych przez model znajomości języka agenta. Gdy inteligentne dopasowywanie jest aktywne, agent interpretuje dane wejściowe użytkownika przy użyciu logiki rozmytej względem wartości wymienionych dla jednostki.

    W szczególności agent będzie dokonywać autokorekty błędów ortograficznych i semantycznie rozwinie swoją logikę dopasowań. Na przykład agent może automatycznie dopasować „piłka” do „piłka nożna”.

  6. Po zakończeniu tworzenia lub edytowania jednostki wybierz pozycję Zapisz. Aby anulować zmiany, wybierz pozycję Zamknij.

    Zrzut ekranu przedstawiający panel szczegółów przykładowej jednostki

Przekazywanie wartości dla encji listy zamkniętej

Na panelu szczegółów zamkniętej jednostki listy można dodać lub zastąpić zestaw wartości i synonimów skojarzonych z jednostką.

  1. Przygotuj plik tekstowy (maksymalnie 3 MB) zawierający listę wszystkich wartości, które chcesz dodać dla jednostki, w tym synonimy, jeśli istnieją. Użyj tego formatu: jedna wartość na linię, a pionowa kreska (|) jako ogranicznik dla synonimów. Przykład:

    hiking|trekking
    hiking|mountaineering
    yoga
    cycling|bicycling
    cooking
    
  2. W obszarze Elementy listy wybierz pozycję Przekaż plik.

  3. W obszarze Przekaż plik wybierz odpowiednią opcję:

    • Jeśli chcesz dodać nowe wartości i synonimy dla jednostki, wybierz pozycję Dołącz.
    • Aby zastąpić wszystkie istniejące wartości i synonimy listą z pliku, wybierz pozycję Zamień.
  4. Upuść plik w oknie. Możesz też wybrać opcję kliknij, aby wybrać plik, przejdź do pliku i wybierz go.

  5. Przejrzyj wyświetlone wartości i synonimy, a następnie wybierz pozycję Dodaj.

Pobieranie wartości dla zamkniętej jednostki listy

Na panelu szczegółów jednostki listy zamkniętej można pobrać plik tekstowy zawierający listę zestawów wartości i synonimów skojarzonych z jednostką.

  1. W obszarze Elementy listy wybierz pozycję Pobierz plik.

  2. Zapisz wynikowy plik tekstowy lub otwórz go w edytorze tekstów, aby przejrzeć jego zawartość. Każda wartość jednostki jest wyświetlana w osobnym wierszu. Jeśli wartość ma wiele synonimów, są one wyświetlane w oddzielnych wierszach, w następujący sposób:

    hiking|trekking
    hiking|mountaineering
    

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. Jednostki wyrażeń regularnych doskonale nadają się do dopasowywania złożonego wzorca względem danych wejściowych użytkownika. Są one również przydatne, jeśli musisz zezwolić na określone zmiany w sposobie formatowania lub wprowadzania danych wejściowych przez użytkownika w konwersacji.

Na przykład użyj jednostek wyrażeń regularnych, aby zidentyfikować elementy, takie jak identyfikator śledzenia, numer licencji, numer karty kredytowej lub adres IP.

  1. W obszarze Tworzenie jednostki wybierz pozycję Wyrażenie regularne (regex).

  2. W wyświetlonym panelu wprowadź nazwę nowej jednostki.

    Zrzut ekranu przedstawiający panel szczegółów jednostki regularnej.

  3. W razie potrzeby dodaj opis.

  4. Wprowadź wzorzec wyrażenia regularnego, który ma być używany do dopasowywania i wyodrębniania elementów jednostki z danych wejściowych.

    W encji wyrażenia regularnego usługi Copilot Studio jest używana składnia wyrażeń regularnych .NET.

    Domyślnie dopasowanie uwzględnia wielkość liter. 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). Niektóre podstawowe przykłady znajdują się w okienku encji wyrażenia regularnego. Aby uzyskać więcej informacji na temat składni i więcej przykładów, zobacz Język wyrażeń regularnych — krótki 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.

  5. Po zakończeniu tworzenia lub edytowania jednostki wybierz pozycję Zapisz. Aby anulować zmiany, wybierz pozycję Zamknij.

Korzystanie z encji w konwersacji

Teraz, gdy agent posiada wiedzę na temat sprzętu turystycznego dzięki encji Aktywność na kempingu i innym utworzonym przez Ciebie encjom niestandardowym, możesz zacząć wykorzystywać ją w swoim agencie.

  1. Przejdź do strony Tematy swojego agenta.

  2. Otwórz temat encji, którą chcesz zebrać.

  3. Wybierz ikonę Dodaj węzeł, a następnie wybierz Zadaj pytanie.

  4. W obszarze Identyfikacja wybierz encję utworzoną w obszarze encji niestandardowych.

    Węzeł pytania z wybraną encją.

  5. 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.

    Zrzut ekranu przedstawiający wybór wartości encji, które mają być wyświetlane jako przyciski w czasie wykonywania.

  6. 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. W programie Copilot Studio wypełnienie miejsca oznacza umieszczenie wyodrębnionej wartości jednostki 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ś zrobić“ w czacie testowym.

Temat został pomyślnie wyzwolony, a agent pyta o typ działania oraz wyświetla opcje przycisku określone podczas tworzenia węzła Pytanie. Jeśli włączysz opcję śledzenia między tematami, drzewo dialogowe pokaże też, że agent działa na węźle Pytanie.

śledzenie między tematami.

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.

Widok śledzenia pokazuje, że okno dialogowe zostało poprawnie przekierowane do ścieżki, w której wartość kategorii produktu wynosi „Wędrówki”. Wartość zmiennej można sprawdzić w oknie 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.

Okno obserwacji zmiennych.

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 może automatycznie zinterpretować, które informacje należą do poszczególnych encji. 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ł: "Jestem znudzony, ale lubię wspinaczkę górską." Ten komunikat zawiera frazę wyzwalającą, która wskazuje, że użytkownik potrzebuje pomocy z działaniami na świeżym powietrzu oraz drugą informację "wspinaczka górska," która jest synonimem turystyki pieszej. W tym przypadku agent wypełnia obie encje: dotyczącą kupowania sprzętu i typu sprzętu.

Wypełnianie wielu gniazd i proaktywne wypełnianie gniazd.

Widok śledzenia pokazuje, że agent przyjmuje te dane wejściowe użytkownika i inteligentnie pomija węzeł Pytanie z pytaniem o typ działania.

Agent zawsze aktywnie nasłuchuje danych wejściowych użytkownika, zapamiętując informacje z góry, aby w razie potrzeby pomijać zbędne kroki.

Ponownie uruchom testowanie i wypróbuj inny przypadek. W tej rundzie możesz dodać kilka węzłów pytania, takich jak czas, jaki masz na zadanie (przy użyciu encji Czas trwania) i przedział cenowy (przy użyciu encji Money).

Tym razem, gdy prezentowane jest pytanie o kategorię produktu, zamiast podawać agentowi tylko kategorię produktu, użytkownik może powiedzieć "Chcę kupić parę butów turystycznych pod $100". W tym przykładzie agent nie tylko jest w stanie przekierować się do właściwej ścieżki kategorii produktów turystycznych, ale także aktywnie wypełnia miejsca z informacjami o rodzaju sprzętu turystycznego i docelowym przedziale cenowym.

śledzenie między tematami dotyczącymi kategorii produktów i cen.

Aktywne wypełnianie miejsc na wartość może być ręcznie sterowane na poziomie węzła. Jeśli chcesz zawsze zadawać pytanie w określonym węźle, niezależnie od tego, czy pole zostało już wypełnione przez wcześniejsze odpowiedzi użytkowników, możesz wyłączyć opcję Pomiń pytanie dla węzła Pytanie. Aby wyłączyć opcję Pomiń pytanie, wykonaj następujące kroki.

  1. 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.

    Otwórz okienko właściwości Pytanie.

  2. W panelu Właściwości pytania wybierz Zachowanie pytania.

  3. W panelu Zachowania pytania w obszarze Pomiń pytanie wybierz Pytaj każdym razem i wybierz Zapisz u góry strony.

    Pomiń pytanie.

Zaakceptuj jedną z wielu jednostek na kolei konwersacji

W niektórych sytuacjach agent może zaakceptować jedną spośród wielu prawidłowych odpowiedzi w danym momencie rozmowy. Na przykład agent może poprosić klienta o podanie numeru konta lub numeru telefonu. Możesz również chcieć, aby agent pozwolił klientowi oświadczyć, że nie ma informacji, i odpowiednio go przekierował, zamiast natychmiast kierować do przedstawiciela działu obsługi klienta.

  1. Dodaj Węzeł pytania.

  2. W obszarze Zidentyfikuj wybierz jedną z wielu jednostek.

  3. Dla każdej jednostki, którą chcesz zaakceptować w tym węźle, wybierz pozycję Nowa jednostka i wybierz żądaną jednostkę. Węzeł Pytanie może obsługiwać maksymalnie pięć różnych jednostek.

  4. Wybierz nazwę zmiennej domyślnej w obszarze Zapisz odpowiedź użytkownika, aby otworzyć panel Właściwości zmiennej i zmienić nazwę na coś znaczącego — na przykład Identyfikator.

    Zmienna, która przechowuje rozpoznaną wartość jednostki, jest rekordem typu, z jednym elementem dla każdej obsługiwanej jednostki w tym węźle — na przykład Identifier.account, Identifier.phone, Identifier.unknown.

  5. Dodaj warunki do kierowania konwersacji zgodnie z informacjami dostarczonymi przez klienta. Dobrym zwyczajem jest skonfigurowanie warunków za pomocą operatora nie jest pusty (lub jest pusty).

Zachowanie rozpoznawania dla "jednej z wielu jednostek"

Ten typ rozpoznawania ma na celu zidentyfikowanie pojedynczej jednostki z zestawu możliwych jednostek w etapie rozmowy. Jeśli klient wprowadzi instrukcję zawierającą co najmniej dwie jednostki skonfigurowane do identyfikacji w odpowiednim węźle Pytanie , agent identyfikuje tylko pierwszą jednostkę na liście. Dlatego należy odpowiednio sformułować pytania i logikę warunkową zgodną z takimi węzłami pytania.

Załóżmy na przykład, że węzeł Pytanie jest skonfigurowany do rozpoznawania jednego z następujących elementów: numeru karty biblioteki, numeru telefonu lub "Nie wiem", w tej kolejności. Jeśli klient mówi: "Mój numer telefonu to 777 555-1212, a mój numer karty jest 123456789", rozpoznana wartość jednostki to numer karty, ponieważ jest to pierwsza jednostka na liście możliwych jednostek w odpowiednim węźle Pytanie .

Jeśli agent nie może zidentyfikować żadnego z obiektów, które węzeł Pytanie jest skonfigurowany do rozpoznawania, stosuje zachowanie ponownego zapytania określone dla tego węzła.

Ograniczenia

Poniżej przedstawiono znane ograniczenia dotyczące węzłów pytania skonfigurowanych do zbierania jednego z wielu podmiotów na etapie rozmowy:

  • Obsługa ograniczona do maksymalnie pięciu jednostek.

  • Brak obsługi jednostek zewnętrznych.

  • Obsługa tylko jednej jednostki dowolnego typu. Na przykład jeden węzeł Pytanie nie może rozpoznać dwóch jednostek typu Date.