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
- Otwórz konsolę Google Cloud w przeglądarce.
- W konsoli Google Cloud otwórz Bibliotekę interfejsów API, aby przejrzeć interfejsy API i usługi, które możesz włączyć.
- Na pasku wyszukiwania u góry strony Biblioteki interfejsów API wyszukaj
Dialogflow API
, a następnie kliknij wyświetloną usługę. - 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:
- Otwórz nową kartę przeglądarki, przejdź do repozytorium agentów i skopiuj je z wiersza poleceń.
- 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.
- W przeglądarce otwórz konsolę Dialogflow CX.
- Wybierz projekt Google Cloud, którego chcesz użyć, lub utwórz nowy projekt.
- 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
- 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).
- Wybierz opcję Utwórz własnego agenta.
- 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
- Dialogflow automatycznie otworzy agenta. To jeszcze nie koniec!
Przywracanie agenta Divebooker
- Wróć na stronę z listą agentów i znajdź nowo utworzonego agenta. Kliknij opcję , a następnie przycisk Przywróć.
- Wybierz opcję Upload (Prześlij), a następnie upuść lub wybierz plik ZIP pobrany wcześniej z repozytorium GitHub.
- 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
- W konsoli Dialogflow i w agencie kliknij Test Agent (Przetestuj agenta), aby otworzyć symulator.
- 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.
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.
- Przejdź na kartę Build (Tworzenie) 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ąć.
- 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.
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.
- W panelu symulatora kliknij ikonę Resetuj, aby rozpocząć nową rozmowę z agentem.
- 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!
- 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.
- Zamknij definicję trasy i rozwiń stronę Zbieraj dodatkowe informacje. Zwróć uwagę na realizację wpisu i listę parametrów.
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.
- 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.
- 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
- W panelu symulatora kliknij ikonę Resetuj, aby rozpocząć nową rozmowę z agentem.
- 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.
- 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.
- Kliknij element docelowy, aby dowiedzieć się, do jakich wartości odpowiada element. „Europa” nie jest jednym z wpisów i nie jest też synonimem.
- Na diagramie przepływu rozwiń stronę Zbieraj dodatkowe informacje, która zawiera parametry formularza. Kliknij parametr destination.
- 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.
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.
- Rozwiń stronę początkową procesu.
- W sekcji Moduły obsługi zdarzeń kliknij sys.no-match-default.
- Zaznacz Włącz generatywną kreację zastępczą w sekcji Odpowiedzi agenta, a potem kliknij Zapisz.
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:
- Otwórz stronę Zbieraj dodatkowe informacje, która zawiera parametry formularza. Kliknij parametr liczba gości.
- 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).
- Zaznacz Włącz generatywną kreację zastępczą w sekcji Odpowiedzi agenta.
- Na koniec kliknij Zapisz.
- 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:
- Wybierz konkretny (już zdefiniowany) prompt, którego chcesz używać do generowania odpowiedzi.
- Zdefiniuj prompt niestandardowy.
Wybierz zdefiniowany wcześniej prompt
- W konsoli Dialogflow CX kliknij Agent Settings (Ustawienia agenta).
- Otwórz kartę ML, a następnie kartę podrzędną Generatywna AI.
Zestaw zawiera 2 prompty szablonów: Domyślny (niewidoczny) i Przykład, który pomaga pisać własne prompty.
- Wybierz szablon Przykład i kliknij przycisk Edytuj po prawej stronie menu, aby go sprawdzić.
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
- 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:
- 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.
- Aby nowo utworzony prompt stał się aktywny, musisz też zapisać 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:
- 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.
- Prompt powinien być konkretny i jasno sprecyzowany, a jego treść nie może być niejasna ani niejednoznaczna.
- 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ń.
- 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
- Aby dodać opis do procesu Liveaboards, otwórz ustawienia procesu, najeżdżając kursorem na proces w sekcji Przepływy.
- Kliknij przycisk opcji .
- Wybierz Ustawienia przepływu i dodaj ten (lub podobny):
search, find and book liveaboards
.
- Kliknij Zapisz.
Dodaj opis intencji
- 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.
- 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!
- 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.
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.
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.
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.
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.
Warto tutaj zwrócić uwagę na kilka kwestii:
- 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.
- 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.
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:
- Wybierz konkretny (już zdefiniowany) prompt, którego chcesz używać do generowania odpowiedzi.
- Zdefiniuj prompt niestandardowy.
- Zmień listę niedozwolonych wyrażeń.
Do tej pory przedstawiliśmy dwa pierwsze sposoby. Przyjrzyjmy się drugiej.
- W sekcji Agent Settings (Ustawienia agenta) otwórz kartę ML (ML), a następnie kartę podrzędną Generative AI (Generatywna AI).
- W sekcji Zablokowane wyrażenia dodaj te zdania do listy:
Dangerous country
Hateful place
Medical assistance
- Kliknij Zapisz.
- 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ń.
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!
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:
- Dokumentacja Dialogflow CX
- Dokumentacja generatywnej kreacji zastępczej
- Generatywna AI w Google Cloud
- Wprowadzenie do PaLM
Licencja
To zadanie jest licencjonowane na podstawie ogólnej licencji Creative Commons Attribution 2.0.