Zwiększaj zasięg intencji i płynnie radzij sobie z błędami dzięki generatywnej kreacji zastępczej

1. Omówienie

Ostatnia aktualizacja: 07.08.2023 r.

Co utworzysz

W ramach tego ćwiczenia w Codelabs utworzysz, wdrożysz i skonfigurujesz prostego agenta wirtualnego w Dialogflow CX, aby pomóc podróżującym nurkować z rezerwacjami grupowymi i prywatnymi czarterami. Agent wirtualny będzie używać generatywnej AI i najnowszych generatywnych modeli językowych Google (LLM) do generowania odpowiedzi agenta wirtualnego.

Czego się nauczysz

  • Jak włączyć odpowiednie interfejsy API
  • Jak Dialogflow automatycznie uzupełnia wartości parametrów formularza na stronie z parametrów intencji
  • Jak skonfigurować moduły obsługi zdarzeń w Dialogflow
  • Jak włączyć generatywną kreację zastępczą w przypadku niepasujących modułów obsługi zdarzeń używanych w przepływach i podczas wypełniania parametrów
  • Jak skonfigurować własny prompt, aby obsługiwał podstawowe i specyficzne dla agenta sytuacje konwersacyjne
  • Jak pisać prawidłowe intencje i opisy parametrów, aby generować moduły obsługi ponownych żądań w przypadku wymaganych parametrów (w uzupełnieniu żądań zdefiniowanych przez użytkownika)
  • Jak przetestować agenta i symulować pytania klienta, które aktywują generatywną kreację zastępczą

Czego potrzebujesz

  • Projekt Google Cloud
  • przeglądarki, np. Chrome;

2. Przygotowanie

Zanim zaczniesz korzystać z funkcji generatywnej kreacji zastępczej w Dialogflow CX, musisz włączyć interfejs Dialogflow API.

Włączanie interfejsu Dialogflow API w konsoli Cloud

  1. Otwórz konsolę Google Cloud w przeglądarce.
  2. W konsoli Google Cloud otwórz Bibliotekę interfejsów API, aby przejrzeć interfejsy API i usługi, które możesz włączyć.
  3. Na pasku wyszukiwania u góry strony Biblioteki interfejsów API wyszukaj Dialogflow API, a następnie kliknij wyświetloną usługę.
  4. Kliknij przycisk Włącz, aby włączyć interfejs Dialogflow API w projekcie Google Cloud.

Używanie interfejsu wiersza poleceń gcloud (alternative)

Interfejs API można też włączyć za pomocą tego polecenia gcloud:

gcloud services enable dialogflow.googleapis.com

Jeśli interfejs API został włączony, powinien wyświetlić się komunikat podobny do tego:

Operation "operations/..." finished successfully.

Pobierz kod

Nie utworzysz agenta wirtualnego od zera. Udostępnimy Ci agenta, który będzie trzeba przywrócić w konsoli Dialogflow CX, a następnie ulepszyć usługę.

Aby pobrać kod źródłowy:

  1. Otwórz nową kartę przeglądarki, przejdź do repozytorium agentów i skopiuj je z wiersza poleceń.
  2. Początkowy agent został wyeksportowany jako pakiet JSON. Rozpakuj plik, sprawdź ustawienia agenta, spójrz na definicję przepływu Liveaboards.json, a na koniec przejrzyj strony przepływu, intencje i encje.

3. Utwórz nowego agenta

Otwórz konsolę Dialogflow

Użyjesz konsoli Dialogflow CX wraz z projektem Google Cloud, aby wykonać pozostałe kroki tego ćwiczenia z programowania.

  1. W przeglądarce otwórz konsolę Dialogflow CX.
  2. Wybierz projekt Google Cloud, którego chcesz użyć, lub utwórz nowy projekt.
  3. W konsoli Dialogflow CX powinna być widoczna lista agentów.

Jeśli po raz pierwszy używasz Dialogflow CX, zapoznaj się z dokumentacją Dialogflow CX, gdzie znajdziesz więcej informacji o konfigurowaniu projektu i ustawień w zależności od potrzeb.

Tworzenie nowego agenta Dialogflow CX

  1. Aby przywrócić agenta pobranego z repozytorium GitHub, musisz utworzyć nowego agenta. W prawym górnym rogu konsoli Dialogflow CX kliknij Create new agent (Utwórz nowego agenta).

Utwórz nowego agenta

  1. Wybierz opcję Utwórz własnego agenta.

Wybierz opcję

  1. Wypełnij formularz związany z ustawieniami agenta poniżej i kliknij Create (Utwórz), aby utworzyć agenta.
  • Jako wyświetlaną nazwę wybierz: Divebooker
  • Jako lokalizację wybierz: us-central1
  • Wybierz preferowaną strefę czasową
  • Wybierz en - English jako język domyślny
  1. Dialogflow automatycznie otworzy agenta. To jeszcze nie koniec!

Przywracanie agenta Divebooker

  1. Wróć na stronę z listą agentów i znajdź nowo utworzonego agenta. Kliknij opcję 78d2781c655810e7.png, a następnie przycisk Przywróć.
  2. Wybierz opcję Upload (Prześlij), a następnie upuść lub wybierz plik ZIP pobrany wcześniej z repozytorium GitHub.
  3. Kliknij przycisk Przywróć, aby zaimportować dostarczonego przez nas agenta.

Kliknij przycisk Przywróć, aby zaimportować dostarczonego przez nas agenta

Brawo! Udało Ci się zakończyć tworzenie wirtualnego agenta rezerwacji nurkowania, który może pomagać Twoim klientom. W następnej sekcji przetestujesz tę usługę i zobaczysz, jak radzi sobie z odpowiadaniem na pytania użytkowników i pomocą przy rezerwacjach.

4. Testowanie agenta

Dialogflow zawiera wbudowany symulator umożliwiający czatowanie z agentami i odkrywanie błędów. W każdej turze możesz sprawdzać prawidłowe wartości wywołanej intencji, odpowiedzi agenta, aktywnej strony i parametrów sesji.

Przetestujemy kilka scenariuszy i w każdym z nich przeanalizujemy powód, dla którego agent udziela danej odpowiedzi. Zacznijmy od pierwszego.

Nierozstrzygnięty zamiar

  1. W konsoli Dialogflow i w agencie kliknij Test Agent (Przetestuj agenta), aby otworzyć symulator.

Kliknij Przetestuj agenta, aby otworzyć symulator.

  1. Wpisz powitanie do pracownika obsługi klienta, na przykład Hello, i poproś what is a liveaboard?. Pytanie nie ma związku z żadnymi intencjami – ogólny prompt, np. „Nie wiem, jak pomóc” Możesz sprawdzić, czy domyślne zdarzenie wbudowane sys.no-match-default zostało wywołane, sprawdzając pierwotną odpowiedź w symulatorze.

Przywitaj się z pracownikiem obsługi klienta i zapytaj, czym jest żartur

Przewiń prawie do końca odpowiedzi JSON. Zwróć uwagę, że podczas wyszukiwania pasującej intencji Dialogflow wykrywa, że to NO_MATCH, i zwraca zdarzenie no-match.

Sprawdź, czy zdarzenie sys.no-match-default zostało zgłoszone przez Dialogflow

  1. Przejdź na kartę Build (Tworzenie) i otwórz stronę początkową procesu Liveaboards.

Przejdź na kartę Build i otwórz stronę początkową procesu Liveaboards.

Domyślnie każdy przepływ ma moduły obsługi zdarzeń wbudowanych (brak dopasowania i brak danych wejściowych). Te moduły obsługi zdarzeń są tworzone automatycznie podczas tworzenia przepływu i nie można ich usunąć.

  1. Kliknij moduł obsługi zdarzeń sys.no-match-default i przewiń w dół do sekcji Odpowiedzi agenta. Dialogflow zapewnia listę alternatywnych odpowiedzi, ale możesz też definiować różne typy wiadomości z odpowiedziami, aby zapewnić użytkownikom więcej niż tylko odpowiedzi tekstowe.

Wyświetlanie wstępnie zdefiniowanych odpowiedzi agenta

Czas na szczęśliwą ścieżkę!

Wesoła ścieżka

W drugim przypadku wcielasz się w nurka i chcesz zarezerwować rejs nurkowy dla grupy 12 osób na Wyspy Galapagos w przyszłym roku w lipcu.

  1. W panelu symulatora kliknij ikonę Resetuj, aby rozpocząć nową rozmowę z agentem.

Zresetuj, aby rozpocząć nową rozmowę

Aby zwiększyć wygodę użytkowników, zmień widok na pionowy

  1. Poinformuj agenta, że chcesz wynająć czarter na Wyspy Galapagos, i podaj szczegóły podróży. Nie musisz używać dokładnie tych samych promptów poniżej. Poeksperymentuj!

Przetestuj szczęśliwą ścieżkę

  1. Otwórz stronę początkową i kliknij trasę head.send.group.request. Przewiń w dół do sekcji Transfer (Przenoszenie), w której znajdziesz informacje o stronie przejścia w Dialogflow po spełnieniu tej intencji.

Przejdź na stronę „Uzyskaj więcej informacji”

  1. Zamknij definicję trasy i rozwiń stronę Zbieraj dodatkowe informacje. Zwróć uwagę na realizację wpisu i listę parametrów.

Strona zbierania dodatkowych informacji

Dla każdej strony w Dialogflow CX możesz zdefiniować formularz będący listą parametrów, które powinny zostać zebrane od użytkownika strony. Pamiętaj, że agent nie poprosił o miejsce docelowe podróży, ponieważ przekazaliśmy je w ramach początkowych danych, a destination jest też parametrem intencji. Gdy strona po raz pierwszy staje się aktywna w trakcie jej aktywności, każdy parametr formularza o tej samej nazwie co parametr intencji jest automatycznie ustawiany na wartość parametru sesji, a odpowiadający jej prompt jest pomijany.

  1. Przejdź na kartę Manage (Zarządzanie) i w sekcji Intents (Intencje) kliknij intencję head.send group request (Żądanie grupy). Spójrz na wyrażenia na potrzeby trenowania określone na potrzeby tej intencji i opatrzone adnotacjami części wyrażeń na potrzeby trenowania.

Spójrz na wyrażenia na potrzeby trenowania określone na potrzeby tej intencji i opatrzone adnotacjami części wyrażeń na potrzeby trenowania.

  1. Możesz użyć sformułowania szkoleniowego „Muszę zorganizować wycieczkę do Kostaryki dla 15 nurków”. „Kostaryka” jest oznaczony adnotacjami destination i „15” z liczbą gości. Gdy dodajesz adnotacje do części wyrażenia na potrzeby trenowania, Dialogflow rozpoznaje, że są to tylko przykłady rzeczywistych wartości, które użytkownicy będą przekazywać w czasie działania. Dlatego na początku pytanie „Czy oferujecie czarter na Wyspy Galapagos?” Usługa Dialogflow wyodrębniła parametr miejsca docelowego z „WyspyGalapagos”.

W następnym kroku dowiemy się, co się stanie, jeśli nie przekażemy agentowi prawidłowych danych wejściowych, gdy poprosimy Cię o wypełnienie parametru formularza.

Nieprawidłowe dane wejściowe

  1. W panelu symulatora kliknij ikonę Resetuj, aby rozpocząć nową rozmowę z agentem.
  2. Wyrazić zamiar dokonania rezerwacji grupowej. Tym razem nie informujesz pracownika obsługi klienta, dokąd chcesz jechać, ani wtedy, gdy zobaczysz prośbę o podanie losowej wartości. Nie musi to być Kostaryka, Galapagos ani Meksyk.

Wpisz nieprawidłowe miejsce docelowe

  1. Na karcie Zarządzanie w sekcji Zasoby kliknij Typy jednostek. Uwaga: 2 karty: na karcie System znajdziesz jednostki systemowe używane obecnie przez agenta. Karta Niestandardowe zawiera listę elementów niestandardowych utworzonych na potrzeby dopasowywania danych specyficznych dla tego agenta.

Docelowy element niestandardowy

  1. Kliknij element docelowy, aby dowiedzieć się, do jakich wartości odpowiada element. „Europa” nie jest jednym z wpisów i nie jest też synonimem.
  2. Na diagramie przepływu rozwiń stronę Zbieraj dodatkowe informacje, która zawiera parametry formularza. Kliknij parametr destination.
  3. W panelu parametrów przewiń w dół do sekcji Powtórz moduły obsługi zdarzeń, a potem kliknij Domyślny moduł obsługi zdarzeń braku dopasowania.

Ten moduł obsługi zdarzeń na poziomie parametru jest przeznaczony do obsługi nieprawidłowych danych wejściowych użytkownika podczas wypełniania formularza. Bo „Europa” oznacza nieoczekiwane dane wejściowe, zostało wywołane zdarzenie sys.no-match-default i wywołano odpowiedni moduł obsługi ponownego żądania zdefiniowany dla tego zdarzenia. Sekcja Komunikat agenta zawiera 2 alternatywne komunikaty z prośbą o ponowne zapytanie.

Statyczne alternatywne komunikaty przypominające, gdy użytkownik wpisze nieprawidłowe miejsce docelowe.

Dobra robota! Te przypadki testowe reprezentują typowe scenariusze, które powinny być prawidłowo obsługiwane przez agenta. Użytkownicy bardzo często zadają pytania, na które boty nie potrafią odpowiedzieć lub wysyłają prośby, których nie potrafią zrealizować. Zaprojektowanie „długiego ogona” jest bardzo złożone, ponieważ oznacza to, że nie chodzi o dobrze zużyte ścieżki, którymi będzie kierować się większość użytkowników. Weź pod uwagę wszystkie elementy, które mogą pójść nie tak w trakcie rozmowy, oraz wszystkie nieoczekiwane lub nieobsługiwane ścieżki, które mogą wybrać użytkownicy.

Rozwój automatycznego rozpoznawania mowy (ASR) oznacza, że prawie zawsze wiemy dokładnie, co mówią użytkownicy. Jednak określenie ich intencji to wciąż wyzwanie. Wyrażeń często nie można rozumieć osobno. jest więc zrozumiałe tylko w kontekście. W następnej części tego ćwiczenia w Codelabs dowiesz się, jak najnowsze generatywne duże modele językowe Google (LLM) mogą pomóc w powrocie na właściwe tory i porozwoju.

5. Włącz generatywną kreację zastępczą

Co to jest funkcja generatywnej AI?

Generatywna kreacja zastępcza to funkcja Dialogflow CX, która wykorzystuje duże modele językowe Google (LLM) do generowania odpowiedzi agenta wirtualnego.

Jak to pomaga?

W kluczowych przypadkach użycia występuje kilka często spotykanych próśb użytkowników, takich jak powtórzenie wypowiedzi agenta na wypadek, gdy użytkownik go nie rozumie, przytrzymanie wiersza, gdy użytkownik poprosi o to, i podsumowanie rozmowy. W pierwszym teście, który przeprowadziliśmy, pracownik obsługi klienta nie odpowiedział na pytanie „Co to jest wirtualny panel?” ponieważ nie stworzyliśmy tego procesu w związku z tym, że opracowaliśmy proces obsługi tego typu ogólnych pytań związanych z nurkowaniem i deskorolkami.

Nawet przy konkretnych intencjach wciąż miejsce na błędy. Użytkownicy mogą wyłączyć skrypt, nie rezygnując z gry (błąd Brak danych wejściowych) lub wypowiadając nieoczekiwane wyniki (błąd Brak dopasowania). Chociaż zapobieganie pojawianiu się błędów jest lepsze niż naprawa po ich wystąpieniu, nie da się ich całkowicie uniknąć. Ogólne prompty, takie jak „Nie wiem, jak pomóc” lub podobne, minimalnie opłacalne rozwiązania często nie wystarczają. Komunikaty o błędach powinny być inspirowane zasadą współpracy, zgodnie z którą sprawna komunikacja opiera się na założeniu, że współpraca między uczestnikami rozmów jest zbyt mała.

W następnej sekcji omówimy, jak skonfigurować funkcję generatywnej kreacji zastępczej, aby zwiększyć zasięg intencji i uprościć obsługę błędów w celu poprawy wrażeń klienta.

Włącz generatywną kreację zastępczą dla zdarzenia braku dopasowania w całym procesie

Możesz ją włączyć w przypadku niepasujących modułów obsługi zdarzeń używanych w przepływach, na stronach lub podczas wypełniania parametrów. Gdy generatywna kreacja zastępcza jest włączona w przypadku zdarzenia braku dopasowania, za każdym razem, gdy to zdarzenie się aktywuje, Dialogflow próbuje wygenerować wygenerowaną odpowiedź, która zostanie zwrócona użytkownikowi. Jeśli wygenerowanie odpowiedzi się nie uda, zostanie wysłana standardowa odpowiedź agenta.

Możesz włączyć generatywną kreację zastępczą w agencie w przypadku niepasujących modułów obsługi zdarzeń, które mogą być używane podczas realizacji procesu, strony lub parametrów.

Zaczniemy włączać generatywną kreację zastępczą w całym procesie Liveaboards w przypadku domyślnego zdarzenia braku dopasowania.

  1. Rozwiń stronę początkową procesu.
  2. W sekcji Moduły obsługi zdarzeń kliknij sys.no-match-default.
  3. Zaznacz Włącz generatywną kreację zastępczą w sekcji Odpowiedzi agenta, a potem kliknij Zapisz.

W sekcji Odpowiedzi agenta zaznacz Włącz generatywną kreację zastępczą

Zapisz, aby włączyć generatywną kreację zastępczą na stronie początkowej Liveaboards

Włączanie generatywnej kreacji zastępczej w przypadku określonych zdarzeń braku dopasowania

Teraz chcemy włączyć generatywną kreację zastępczą, która będzie obsługiwać nieprawidłowe dane wejściowe, gdy agent poprosi o liczbę pasażerów:

  1. Otwórz stronę Zbieraj dodatkowe informacje, która zawiera parametry formularza. Kliknij parametr liczba gości.
  2. Przejdź do docelowego modułu obsługi zdarzeń Niedopasowanie (przewiń w dół do sekcji Ponownie zgłoś moduł obsługi zdarzeń, a następnie kliknij Domyślny moduł obsługi zdarzeń braku dopasowania).

Przejdź do docelowego modułu obsługi zdarzeń braku dopasowania (przewiń w dół do sekcji Moduły obsługi zdarzeń ponownego wywołania, a następnie kliknij domyślny moduł obsługi zdarzeń braku dopasowania).

  1. Zaznacz Włącz generatywną kreację zastępczą w sekcji Odpowiedzi agenta.

Włącz generatywną kreację zastępczą dla parametru numer gościa

  1. Na koniec kliknij Zapisz.
  2. Teraz powtórz dokładnie te czynności, aby włączyć generatywną opcję zastępczą dla miejsca docelowego i adresu e-mail.

Dobra robota! Masz włączoną generatywną kreację zastępczą, która obsługuje nieoczekiwane intencje i nieprawidłowe wartości parametrów. W następnej kolejności przyjrzymy się, jak skonfigurować generatywną funkcję zastępczą za pomocą prompta tekstowego, który instruuje LLM, jak odpowiedzieć.

6. Skonfiguruj generatywną kreację zastępczą

Funkcja generatywnej AI przekazuje żądanie do dużego modelu językowego w celu wygenerowania wygenerowanej odpowiedzi. Żądanie ma formę promptu tekstowego stanowiącego połączenie języka naturalnego i informacji o bieżącym stanie agenta oraz rozmowie. Funkcję tę można skonfigurować na kilka sposobów:

  1. Wybierz konkretny (już zdefiniowany) prompt, którego chcesz używać do generowania odpowiedzi.
  2. Zdefiniuj prompt niestandardowy.

Wybierz zdefiniowany wcześniej prompt

  1. W konsoli Dialogflow CX kliknij Agent Settings (Ustawienia agenta).

Otwórz ustawienia agenta

  1. Otwórz kartę ML, a następnie kartę podrzędną Generatywna AI.

Karta podrzędna generatywnej AI

Zestaw zawiera 2 prompty szablonów: Domyślny (niewidoczny) i Przykład, który pomaga pisać własne prompty.

  1. Wybierz szablon Przykład i kliknij przycisk Edytuj po prawej stronie menu, aby go sprawdzić.

Aby sprawdzić szablon, kliknij przycisk Edytuj po prawej stronie menu szablonu.

Po wstępnie zdefiniowanym promptie agent wirtualny może obsługiwać podstawowe sytuacje konwersacyjne. Na przykład:

  • Przywitaj się i żegnaj się z użytkownikiem.
  • Powtórz informacje od pracownika obsługi klienta, na wypadek gdyby użytkownik nie wiedział, czego się spodziewać.
  • Przytrzymaj wiersz, gdy użytkownik o to poprosi.
  • Podsumuj rozmowę.

Spróbujmy zdefiniować konkretny prompt tekstowy dla agenta Divebooker.

7. Zdefiniuj własny prompt

  1. Skopiuj poniższy prompt i wklej go w obszarze Prompt tekstowy.
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:
  1. Wybierz Zapisz jako nowy szablon, aby zapisać nowy prompt jako nowy szablon (wybierz nową nazwę szablonu), a potem w prawym dolnym rogu panelu kliknij Zapisz.

Utwórz niestandardowy prompt tekstowy dla agenta i zapisz go jako nowy szablon

  1. Aby nowo utworzony prompt stał się aktywny, musisz też zapisać ustawienia.

Zapisz nowe ustawienia

Napisz prompt dla siebie, pamiętaj, aby był jasny, zwięzły i wymagający. Sposób tworzenia promptu do LLM może w znacznym stopniu wpłynąć na jakość odpowiedzi tego modelu. LLM są trenowane tak, aby postępować zgodnie z instrukcjami, więc im bardziej prompt będzie wyglądać jak precyzyjna instrukcja, tym lepsze wyniki osiągniesz. Przygotuj prompt i na podstawie wyników, powtarzaj czynności, aby go ulepszyć.

Aby tworzyć skuteczne prompty, stosuj te sprawdzone metody:

  1. Podaj jasny i zwięzły opis zadania, które ma wykonać LLM. Nic więcej, ani mniej. Zadbaj o to, aby był on pełny i krótki.
  2. Prompt powinien być konkretny i jasno sprecyzowany, a jego treść nie może być niejasna ani niejednoznaczna.
  3. Podziel skomplikowane zadania na mniejsze, bardziej przejrzyste części. Dzieląc zadanie na mniejsze etapy, możesz pomóc modelowi skupić się na pojedynczym zadaniu i zmniejszyć prawdopodobieństwo wystąpienia błędów lub nieporozumień.
  4. Aby poprawić jakość odpowiedzi, dodaj przykłady do promptu. LLM uczy się w kontekście na podstawie przykładów, jak reagować.

Podczas tworzenia promptu oprócz opisu w języku naturalnym określającego rodzaj kontekstu, który ma zostać wygenerowany, możesz też użyć tych zmiennych:

  • $conversation Rozmowa między agentem a użytkownikiem, z wyłączeniem ostatniej wypowiedzi użytkownika. Możesz dostosować prefiksy skrętu (np. „Człowiek”, „AI” lub „Ty”, „Agent”) w prompcie tekstowym.
  • $last-user-utterance Ostatnia wypowiedź użytkownika.
  • $flow-description Opis przepływu aktywnego przepływu.
  • $route-descriptions Opis intencji aktywnych intencji.

Skoro mamy już początkowy prompt tekstowy, kolejnym krokiem jest dopilnowanie, by przepływ i intencje były prawidłowe.

8. Dodaj opisy przepływu i zamiarów

Dodawanie opisu przepływu

  1. Aby dodać opis do procesu Liveaboards, otwórz ustawienia procesu, najeżdżając kursorem na proces w sekcji Przepływy.

Aby otworzyć ustawienia przepływu, najedź kursorem myszy na przepływ w sekcji Flow.

  1. Kliknij przycisk opcji 78d2781c655810e7.png.
  2. Wybierz Ustawienia przepływu i dodaj ten (lub podobny): search, find and book liveaboards.

Dodaj opis do procedury Liveaboards

  1. Kliknij Zapisz.

Dodaj opis intencji

  1. Dodajmy teraz dobry opis do intencji head.send.group.request. Przejdź na kartę Manage (Zarządzanie), w sekcji Resources (Zasoby) wybierz Intents (Intencje), a następnie wybierz intencję head.send.group.request.
  2. Dodaj ten tekst reklamy: assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands

Pamiętaj, że opis zawiera ważne informacje, takie jak minimalna i maksymalna liczba pasażerów na łodzi. Pamiętaj o tym!

  1. Kliknij Zapisz.

Gotowe. Włączono generatywną kreację zastępczą w przypadku niepasujących modułów obsługi zdarzeń zarówno na potrzeby realizacji przepływu, jak i parametrów. Zdefiniowano też własny prompt tekstowy, który funkcja generatywnej kreacji zastępczej przekazuje do dużego modelu językowego w celu wygenerowania odpowiedzi generatywnych.

W następnej sekcji ponownie przetestujesz agenta, aby sprawdzić, czy może odpowiedzieć na te same trudne pytania.

9. Ponownie przetestuj agenta

Po skonfigurowaniu i włączeniu generatywnej kreacji zastępczej w agencie wirtualnym możesz zadać podobne trudne pytania i sprawdzić, jak obsługuje ona odpowiedzi.

Kliknij Test Agent (Testuj agenta), aby ponownie otworzyć symulator.

Ponownie przetestuj agenta

Zapytaj pracownika obsługi klienta jeszcze raz o Liveaboardy i nurkowanie z transmisjami na żywo. Od teraz każde okno dialogowe zawiera wiadomości zdefiniowane przez użytkownika oraz wygenerowane odpowiedzi w czerwonych polach.

Przetestuj pracownika obsługi klienta ponownie i zapytaj, czym jest Liveaboard.

Czy otrzymałeś miłą, rzeczową odpowiedź zamiast ogólnego upomnienia? Świetnie. Po podaniu jasnego i zwięzłego opisu zadań, które agent ma wykonać (w prompcie tekstowym i opisie procesu), bot jest teraz znacznie skuteczniejszy, jeśli chodzi o odpowiadanie na szczegółowe pytania bez tworzenia konkretnych intencji. Klient docenią fakt, że pracownik obsługi klienta może udzielić bardziej świadomej odpowiedzi zamiast odpowiedzi, która nie wymaga podjęcia działania.

Nie wstydź się i nie zwlekaj z wyzwaniem. Poproś agenta, by pomógł Ci znaleźć kurs nurkowania, ponieważ nie masz jeszcze certyfikatu nurkowego.

 Zapytaj pracownika obsługi klienta, czy może Ci pomóc znaleźć kurs nurkowania

Zgadza się, na razie nie opracowaliśmy agenta, który pomoże Ci w kursach nurkowania. Skąd pracownik obsługi klienta to wie? W prompcie tekstowym jasno określiliśmy, w jakiej sprawie pracownik może Ci pomóc. „Obecnie nie możemy pomóc klientom w zakresie nurkowania lądowego i kursów. Nie można polecić lokalnych sklepów i ośrodków nurkowych”.

Teraz jeszcze raz sprawdź szczęśliwy scenariusz i wzbogać rozmowę. Zobaczmy, jak się to zmieniło.

Ponownie przetestuj szczęśliwy scenariusz i wykaż się kreatywnością w dialogu

Ponownie przetestuj szczęśliwy scenariusz i wykaż się kreatywnością w dialogu

Gdy Dialogflow pasuje do intencji lub próbuje pobrać parametr zgodnie z projektem przepływu, wyświetla realizację zdefiniowanych w momencie projektowania. Gdy użytkownik prosi o podsumowanie szczegółów podróży lub oferuje podanie numeru telefonu, włącza się generatywna funkcja zastępcza.

Super! Ponownie sprawdziłeś(-aś) swój szczęśliwy scenariusz i mam nadzieję, że Twoja rozmowa z pracownikiem obsługi klienta była przyjemna i naturalna.

Niestety w trakcie rozmowy może coś pójść nie tak. Przeprowadźmy inny test, tym razem, gdy zapytamy Cię o liczbę gości, podaj liczbę większą niż 15.

Podaj liczbę gości większą niż 15

Podaj liczbę gości większą niż 15

Warto tutaj zwrócić uwagę na kilka kwestii:

  1. Dlaczego 20 to nieprawidłowa liczba? Ponieważ ustanowiliśmy limit liczby gości w opisie intencji: „Agent zbiera informacje takie jak okres wylotu, miejsce docelowe, liczba gości***(min. 4 maks. 15 osób)*** *, dane kontaktowe*” , Odpowiedź generatywna zwróconych przez LLM: „Niestety, możemy pomóc tylko w przypadku rezerwacji grupowych do 15 gości” jest w pełni zgodne z ograniczeniami liczby gości. Aby to dokładniej egzekwować, argument liczba gości to niestandardowa encja RegExp, która dopasowuje tylko liczby z zakresu 4–15.
  2. Rozmowa toczy się dalej, ponieważ w końcu użytkownik wciąż jest zainteresowany ofertą 15 nurków. Dzieje się tak często podczas naturalnych rozmów, więc dość często zmieniamy zdanie. Zwróć uwagę na to, że agent współpracuje z klientem i delikatnie kieruje użytkownika z powrotem w stronę udanej ścieżki.

Projektowanie rozmowy polega na napisaniu scenariusza jednej połowy rozmowy z nadzieją, że będzie ona wystarczająco solidna, aby każdy mógł wziąć udział w rozmowie i oddać się drugiej połowie. Podczas projektowania aplikacji z długiego ogona deweloperzy muszą skupić się na tym, co użytkownik może powiedzieć na każdym etapie okna, aby zdefiniować trasy, moduły obsługi i parametry. W związku z tym dodaliśmy do Dialogflow CX funkcję generatywnej funkcji zastępczej, która pozwala deweloperom skupić się na zasadach projektowania konwersacji, a nie na szczegółach implementacji i zapewnia użytkownikom niezbędną funkcję konwersacji.

Przeprowadźmy jeszcze jeden test. Tym razem rzuć wyzwanie botowi jeszcze raz, tym razem wybierając miejsce, którego nie ma na liście dostępnych miejsc docelowych, takich jak Malediwy. Następnie szybko przyjrzymy się temu, co dzieje się za kulisami.

Rzuć wyzwanie botowi jeszcze raz i rzuć wyzwanie w miejscu, którego nie ma na liście dostępnych miejsc docelowych, np. na Malediwy

Pamiętaj, że w zdarzeniu no-match dla parametru destination włączyliśmy także generatywną kreację zastępczą, więc żądanie jest wysyłane do dużego modelu językowego w celu wygenerowania odpowiedzi. Standardowe odpowiedzi (w sekcji Agent) są ignorowane.

Pola tekstowe poniżej pozwolą Ci lepiej zrozumieć, jak symbole zastępcze pomagają kształtować żądanie wysyłane do dużego modelu językowego.

Oto niestandardowy prompt tekstowy, który skonfigurowałem w Dialogflow z wyróżnionymi pogrubionymi obiektami:

You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:

W polu tekstowym poniżej zamieszczam dane wejściowe otrzymane przez duży model językowy (LLM) oraz dane wyjściowe zawierające wygenerowaną odpowiedź, która zostanie zwrócona użytkownikowi:

llm_input:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help search, find and book liveaboards.

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands.

The conversation between the human and you so far was:
Human: Hi, my name's Alessia
AI Hi Alessia, what can I help you with today?
Human: Can you help me find a nice boat for myself and my family?
AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly.
Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico

Then the human asked:
The kids want to go to the Maldives

llm_output:
You say:
I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.

Podobnie jak w przypadku wcześniejszego testu, odpowiedź wysyłana do użytkownika jest generowana przez model i opiera się na informacjach podanych przez nas w opisie intencji: „Miejsce docelowe musi być jednym z tych miejsc na Pacyfiku: Kostaryka, Meksyk, Wyspy Galapagos”.

Zmień listę niedozwolonych wyrażeń

Funkcję generatywnej funkcji zastępczej można skonfigurować na kilka sposobów:

  1. Wybierz konkretny (już zdefiniowany) prompt, którego chcesz używać do generowania odpowiedzi.
  2. Zdefiniuj prompt niestandardowy.
  3. Zmień listę niedozwolonych wyrażeń.

Do tej pory przedstawiliśmy dwa pierwsze sposoby. Przyjrzyjmy się drugiej.

  1. W sekcji Agent Settings (Ustawienia agenta) otwórz kartę ML (ML), a następnie kartę podrzędną Generative AI (Generatywna AI).
  2. W sekcji Zablokowane wyrażenia dodaj te zdania do listy:
  3. Dangerous country
  4. Hateful place
  5. Medical assistance
  6. Kliknij Zapisz.
  7. Kliknij ikonę Resetuj i ponownie przetestuj ostatni scenariusz. Zamiast udostępniać piękne miejsce do nurkowania na całym świecie, wpisz jedno z zabronionych wyrażeń.

Przetestuj jedno z zabronionych wyrażeń

Prompt i wygenerowana odpowiedź są sprawdzane pod kątem listy zabronionych wyrażeń. Zabronione wyrażenia to takie, które nie są dozwolone w przypadku generatywnej AI. Jeśli dane wejściowe zawierają zabronione wyrażenia lub wyrażenia uznane za niebezpieczne, generowanie nie powiedzie się i zamiast niego zostanie wysłana standardowa odpowiedź (podana w sekcji „Agent” oznacza tę samą realizację).

Fantastycznie! Omówiliśmy wiele sytuacji konwersacyjnych, w których odpowiedzi generatywne mogą wiele zmienić. Zachęcamy do dalszych testów.

10. Gratulacje

Udało Ci się ukończyć ćwiczenia z programowania. Czas na relaks!

Relaksujące cbo

Udało Ci się utworzyć agenta wirtualnego i włączyć generatywną kreację zastępczą w modułach obsługi zdarzeń no-match używanych w przepływach i podczas wypełniania parametrów.

Funkcja generatywnej AI w połączeniu z dobrym opisem przepływu i intencji może dostarczyć agentów konkretne i związane z nimi odpowiedzi, zamiast po prostu używać ogólnych promptów, takich jak „Nie wiem, jak pomóc” lub „Wprowadzono nieprawidłową opcję”. Prompty o błędach generowane przez duże modele językowe (LLM) mogą delikatnie nakierować użytkowników na właściwą ścieżkę lub zresetować ich oczekiwania co do tego, co jest możliwe, a co nie.

Możesz przetestować inne sytuacje związane z rozmową i poznać inne dostępne funkcje związane z Dialogflow CX i generatywną AI.

Czyszczenie

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte podczas tego ćwiczenia z programowania, możesz wykonać te czyszczenie:

  • Otwórz konsolę Dialogflow CX i usuń wszystkie utworzone agenty.
  • W konsoli Google Cloud otwórz stronę Interfejsy API i usługi oraz wyłącz interfejs Dialogflow API.

Więcej informacji

Aby dowiedzieć się więcej o konwersacyjnej AI i generatywnej AI, skorzystaj z tych przewodników i materiałów:

Licencja

To zadanie jest licencjonowane na podstawie ogólnej licencji Creative Commons Attribution 2.0.