Podejmowanie świadomych decyzji przy użyciu generatorów i magazynów danych Dialogflow CX

1. Omówienie

Ostatnia aktualizacja: 10.10.2023 r.

Co utworzysz

W ramach tego ćwiczenia w programie użyjesz Vertex AI Conversation i Dialogflow CX, aby skompilować, wdrożyć i skonfigurować agenta wirtualnego, który będzie pomagał osobom, które chcą oddać krew, i spełniają odpowiednie wymagania. Podczas realizacji Dialogflow CX agent będzie używać prawdziwych danych publicznych i generatywnych dużych modeli językowych Google (LLM).

Z jakich funkcji będziesz korzystać

Aby wykonać ćwiczenia w Codelabs, będziesz konfigurować i używać 3 różnych funkcji:

Agenty magazynu danych

Funkcja Vertex AI Conversation tworzy specjalnego agenta Dialogflow o nazwie agenta magazynu danych.

Dzięki tej funkcji podajesz adres URL witryny, uporządkowane dane lub nieuporządkowane dane (magazyny danych), a następnie Google analizuje treści i tworzy agenta wirtualnego, który korzysta z magazynów danych i dużych modeli językowych. Klienci i użytkownicy będą mogli rozmawiać z pracownikiem obsługi klienta i zadawać pytania na temat treści. Informacje o tym typie agenta znajdziesz we wprowadzeniu do Vertex AI Conversation.

Generatory

Funkcja generatora to funkcja Dialogflow CX, która umożliwia programistom używanie najnowszych generatywnych dużych modeli językowych Google (LLM) oraz niestandardowych promptów do generowania odpowiedzi agenta w czasie działania. Generator może obsługiwać odpowiedzi ogólne, które wymagają ogólnej wiedzy z dużego tekstowego zbioru danych, na którym został wytrenowany, lub kontekstu rozmowy.

Generatywna kreacja zastępcza

Funkcja generatywnej AI korzysta z najnowszych generatywnych dużych modeli językowych Google (LLM) do generowania odpowiedzi agenta wirtualnego, gdy dane wejściowe użytkownika nie pasują do intencji lub parametru wypełniania formularza. Funkcję można skonfigurować za pomocą prompta tekstowego, który instruuje LLM, jak ma odpowiedzieć. Możesz użyć wstępnie zdefiniowanego prompta tekstowego lub dodać własne. 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. Jeśli chcesz dowiedzieć się więcej o generatywnej kreacji zastępczej, zapoznaj się z tym ćwiczeniem z programowania.

Czego się nauczysz

  • Jak utworzyć agenta magazynu danych na podstawie nieuporządkowanych danych
  • Jak używać modułów obsługi wiedzy, aby umożliwić użytkownikom rozmowę z agentem wirtualnym na temat treści dodanych do magazynu danych.
  • Jak skonfigurować prompt tekstowy generatora i nadać mu kontekst, korzystając z wbudowanych obiektów zastępczych promptów generatora.
  • Jak oznaczać słowa jako zmienne promptów generatora, a następnie powiązać je z parametrami sesji w ramach realizacji, aby używać ich wartości podczas wykonywania.
  • Jak skonfigurować generator do obsługi odpowiedzi, które obejmują informacje z dużego tekstowego zbioru danych i kontekst z bieżącej rozmowy.
  • Jak wygenerować oficjalnego e-maila za pomocą generatorów
  • Jak przetestować agenta i symulować pytania klienta, które aktywują generowane odpowiedzi

Czego potrzebujesz

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

2. Włącz interfejsy API

Zanim utworzysz agenta magazynu danych w narzędziu Vertex AI Conversation, musisz włączyć interfejsy Dialogflow oraz Vertex AI Search and Conversation API.

Aby włączyć interfejs Dialogflow API, wykonaj te czynności:

  1. W przeglądarce otwórz stronę szczegółów usługi Dialogflow API.
  2. Kliknij przycisk Włącz, aby włączyć interfejs Dialogflow API w projekcie Google Cloud.

Aby włączyć interfejs Vertex AI Search and Conversation API, wykonaj te czynności:

  1. W konsoli Google Cloud otwórz konsolę wyszukiwania i rozmów Vertex AI.
  2. Przeczytaj i zaakceptuj Warunki korzystania z usługi, a następnie kliknij Continue and activate the API (Przejdź dalej i aktywuj API).

3. Utwórz nową aplikację do obsługi czatu i magazyn danych dla swojej aplikacji

Teraz utworzysz nową aplikację do obsługi czatu dla agenta wirtualnego i skonfigurujesz ją ze źródłem danych. Celem tworzonego przez Ciebie agenta jest pomaganie klientom, którzy mają pytania na temat zalegania krwi w krwi. Wykorzystasz dane Australijskiego Czerwonego Krzyża jako źródła informacji i utworzysz magazyn danych na podstawie nieuporządkowanych danych ze strony kwalifikowania się krwi.

  1. Aby utworzyć nową aplikację do obsługi czatu w Vertex AI Conversation, wykonaj jedną z tych czynności:
    1. Otwórz konsolę konwersacyjną Vertex AI, a potem u góry konsoli kliknij +Nowa aplikacja.
    2. Otwórz konsolę Dialogflow CX, kliknij +Utwórz nowego agenta i wybierz opcję Generuj automatycznie. Przekierujemy Cię do kolejnego kroku w konsoli Vertex AI Conversation.
  2. W konsoli konwersacyjnej Vertex AI wybierz Google Chat jako typ aplikacji, którą chcesz utworzyć.
  3. W polu Nazwa firmy wpisz Save a Life. Ten parametr służy do określania firmy, którą reprezentuje Twój agent, oraz jego zakresu.
  4. W polu Nazwa agenta podaj Blood Donation Agent.
  5. Kliknij Dalej.
  6. Kliknij Utwórz nowy magazyn danych.
  7. Wybierz Cloud Storage jako źródło danych magazynu danych.
  8. Podaj następujący folder Google Cloud Storage, który zawiera przykładowe dane tego ćwiczenia z programowania. Prefiks gs:// nie jest wymagany:
    cloud-samples-data/dialogflow-cx/arc-lifeblood
    
  9. Jako typ importowanych danych wybierz Dokumenty nieuporządkowane.
  10. Kliknij Dalej.
  11. W polu Nazwa magazynu danych podaj Australian Red Cross Lifeblood Unstructured.
  12. Kliknij Utwórz, aby utworzyć magazyn danych.
  13. Z listy magazynów danych wybierz nowo utworzony magazyn danych Australian Red Cross Lifeblood Unstructured.
  14. Kliknij Utwórz, aby utworzyć aplikację do obsługi czatu.

Gratulacje! Twoja aplikacja do czatowania oparta na wiedzy jest gotowa do pomagania potencjalnym darczyńcom, więc poświęć chwilę na świętowanie.

Musisz jednak wykonać jeszcze więcej pracy, aby zapewnić użytkownikom dostęp do agenta. W następnej sekcji użyjesz modułu obsługi wiedzy, który umożliwi Ci prowadzenie rozmów między agentem a użytkownikami na temat wymagań.

4. Skonfiguruj agenta, aby odpowiadał na najczęstsze pytania dotyczące kwalifikacji krwi

Podaj prompt dla zapisu daty

Podczas gdy proces zbierania dokumentów przebiega w tle, nadaj agentowi nazwę marki, edytując prompt dla magazynu danych.

  1. W konsoli Vertex AI Conversation kliknij nazwę aplikacji do obsługi czatu. Spowoduje to przekierowanie do konsoli Dialogflow CX, gdzie możesz przeprowadzić dalsze testy i dostosowanie.
  2. W konsoli Dialogflow CX z poziomu agenta kliknij Ustawienia agenta (w prawym górnym rogu strony), a następnie przejdź na kartę ML i na koniec otwórz kartę Generative AI (Generatywna AI).

Przejdź do promptu magazynu danych

  1. Wypełnij poniższy formularz, aby wygenerować następujący prompt dla magazynu danych: Twoje imię i nazwisko to Donate, a obecnie jesteś pomocnym i uprzejmym użytkownikiem w firmie chatbot w firmie Save a life, a fictitious organization. Twoim zadaniem jest pomóc użytkownikowi humans with eligibility information.

Wypełnij formularz, aby wygenerować prompt

Włącz generatywną kreację zastępczą dla zdarzenia braku dopasowania domyślnego przepływu początkowego

  1. Przejdź na kartę Kompilacja i otwórz stronę startową.
  2. Kliknij moduł obsługi zdarzeń sys.no-match-default. Włącz generatywną funkcję kreacji zastępczej, chyba że pole jest jeszcze zaznaczone.

Włącz generatywną kreację zastępczą w przypadku braku dopasowania

Sprawdź magazyn danych agenta

Na stronie początkowej kliknij Edytuj magazyny danych, aby przejrzeć ustawienia magazynu danych.

Edytuj magazyny danych

Utworzony wcześniej magazyn danych został już wybrany przez Dialogflow.

Powiąż utworzony magazyn danych

Przewiń w dół do sekcji Agent Responses (Odpowiedzi pracownika obsługi klienta) w sekcji Fulfillment (Realizacja). Realizacja to odpowiedź agenta na rzecz użytkownika. W usłudze Dialogflow wstępnie wypełniono pole Komunikat agenta parametrem $request.knowledge.answers[0], który w czasie działania zawiera najlepszą odpowiedź na pytanie użytkownika.

Odpowiedź agenta zawiera najlepszą odpowiedź na pytanie użytkownika

5. Testowanie agenta

Gdy dokumenty będą dostępne i gotowe do użycia przez pracownika obsługi klienta, sprawdź, jak trafne są odpowiedzi.

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

Ponownie przetestuj agenta

Zadawaj pytania, które można znaleźć na stronie z najczęstszymi pytaniami w witrynie:

  • What age do I need to be to donate?
  • Can pregnant women donate?
  • I've just come back from a trip to Africa. Can I donate?
  • How can I schedule an appointment?

Sprawdź odpowiedzi pochodzące z bazy wiedzy

Zwróć uwagę, że odpowiedzi są pobierane z witryny Australijskiego Czerwonego Krzyża. Zgodnie z informacjami na tej stronie obowiązują minimalne i maksymalne przedziały wiekowe oddawania krwi. Minimalny wiek to 18 lat, a maksymalny – 75 lat dla darczyńców po raz pierwszy. Kolejnym dowodem na to, że pobieramy informacje z magazynu danych, jest ikona małej gwiazdki w odpowiedzi agenta oraz w pierwotnej odpowiedzi JSON.

Sprawdzanie oryginalnej odpowiedzi JSON

Na koniec spróbujmy zadać agentowi pytanie całkowicie niezwiązane z przekazywaniem krwi.

Użytkownik: „Jaka jest pogoda w Melbourne?”.

Agent: „Nie mogę w tym pomóc. Jak mogę pomóc Ci w uzyskaniu informacji o kryteriach kwalifikacji?

Ta odpowiedź zawiera treści wygenerowane przez AI i wywodzi się z promptu tekstowego utworzonego przez Dialogflow, który został utworzony na podstawie wcześniejszego ustawienia łącznika wiedzy: „Nazywam się Donate i jesteś pomocnym i uprzejmym czatbotem w firmie Save a Life. Twoim zadaniem jest pomóc innym użytkownikom uzyskać informacje o kryteriach kwalifikacji”. Ten prompt tekstowy zawiera nazwę firmy, nazwę agenta i najważniejsze informacje z zakresu, które są używane przez Dialogflow do wygenerowania odpowiedzi agenta.

Brawo! Na razie używasz magazynu danych, aby udzielać odpowiedzi na najczęstsze pytania na temat krwiodawstwa. W następnej części ćwiczenia w Codelabs dowiesz się, jak powiązać prompt generatora z tymi samymi treściami, aby podejmować świadome decyzje.

6. Przygotowanie agenta do testu kwalifikacyjnego

Następnym zadaniem jest zaprojektowanie agenta, który sprawdzi, czy dana osoba może oddać krew. darczyńcy muszą spełnić rygorystyczne wymagania, takie jak wiek, waga, obecne warunki, ostatnie podróże itp. W zakresie tych ćwiczeń z programowania bierzemy pod uwagę tylko wiek i wagę. Generator używa dużych modeli językowych Google (LLM), aby dynamicznie podejmować świadome decyzje na podstawie kontekstu rozmowy i bazy wiedzy.

Konfigurowanie nowych tras i parametrów

  1. Otwórz stronę początkową i kliknij Edytuj magazyny danych.
  2. Zmień odpowiedź obecnego agenta na $request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?.

Wzbogać odpowiedź agenta na najczęstsze pytania użytkowników

  1. Kliknij przycisk Zapisz.
  2. Teraz musimy zaprojektować agenta do obsługi odpowiedzi „tak” i „nie” odpowiedzi. Na początek utwórz intencję confirmation.yes oraz intencję confirmation.no. Postępuj zgodnie z tymi wskazówkami dotyczącymi ponownego wykorzystania intencji.
  3. Następnie na stronie początkowej utwórz trasę dla intencji confirmation.yes, która zostanie przeniesiona do nowej strony – Test kwalifikacji.

Utwórz trasę dla intencji confirmation.yes

Wywołanie polecenia confirmation.yes powoduje przejście do testu kwalifikacji na nowej stronie.

  1. Jak już wspomnieliśmy, uprościmy quiz. O tym, czy może on przekazać darowiznę, bierzemy pod uwagę tylko wiek i wagę użytkownika. Otwórz stronę Test kwalifikacji i dodaj nowy parametr formularza wiek-weight (waga wieku), a jako typ elementu wybierz @sys.any. Jako początkową realizację prośby podaj "What is your age and weight?". Chcemy zbierać dane o wieku i wadze za jednym razem. Zapisz wszystkie zmiany.

Utwórz parametr

Tworzenie i konfigurowanie generatora kwalifikowalności

Funkcja generatora to funkcja Dialogflow CX, która umożliwia programistom używanie najnowszych generatywnych dużych modeli językowych Google (LLM) podczas realizacji Dialogflow CX. Generatory do generowania odpowiedzi agenta w czasie działania. Generator może obsługiwać odpowiedzi ogólne, które wymagają ogólnej wiedzy z dużego tekstowego zbioru danych, na którym został wytrenowany, lub kontekstu rozmowy.

Stworzymy nowy generator, który porówna informacje podane przez użytkownika (takie jak wiek i waga) z wymaganiami, aby określić, czy użytkownik może przekazać darowiznę.

  1. W konsoli Dialogflow CX otwórz kartę Manage (Zarządzanie), wybierz Generators (Generatory) i kliknij Create new (Utwórz nową).

Utwórz nowy generator

  1. Następnie podaj opisową wyświetlaną nazwę i wpisz prompt tekstowy. Pozostaw domyślne ustawienia kontroli jakości modelu. Następnie kliknij Zapisz, aby utworzyć generator.
    • Wyświetlana nazwa: Blood Donation Eligibility
    • Prompt tekstowy: Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)

Prompt tekstowy jest wysyłany do modelu generatywnego w trakcie realizacji. Musi to być jasne pytanie lub żądanie, aby model mógł wygenerować satysfakcjonującą odpowiedź. W prompcie tekstowym możesz użyć specjalnych obiektów zastępczych promptów generatora:

  • $conversation Rozmowa między agentem a użytkownikiem, z wyłączeniem ostatniej wypowiedzi użytkownika.
  • $last-user-utterance Ostatnia wypowiedź użytkownika.

Skonfigurowany przez Ciebie prompt tekstowy wymaga, aby użytkownik podał wiek i wagę w jednej turze konwersacji („$last-user-utterance”).

Użyj generatora w ramach realizacji i skonfiguruj wszystkie wymagane parametry

  1. Na stronie Test kwalifikacji dodaj nową trasę, która pojawi się po wypełnieniu wszystkich parametrów. Wpisz wymóg warunku $page.params.status = "FINAL" i kliknij Zapisz.

Dodaj nową trasę, która pojawi się po wypełnieniu wszystkich parametrów

  1. Otwórz sekcję Generatory w panelu Realizacja i rozwiń ją. Następnie kliknij Dodaj generator i wybierz generator Kryteria kwalifikacji do darowizny krwi. Po wybraniu generatora określ parametr wyjściowy, który po uruchomieniu będzie zawierał wynik działania generatora.

Wybierz generator „Kryteria kwalifikacji do darowizny krwi”, powiąż obiekty zastępcze promptów z parametrami sesji i określ parametr wyjściowy

  1. Użyj parametru wyjściowego w odpowiedzi agenta i zapisz trasę. Teraz możesz wszystko przetestować.

Użyj parametru wyjściowego w odpowiedzi agenta

7. Ponownie przetestuj agenta

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

Ponownie przetestuj agenta

W aplikacji Simulator rozpocznij nową rozmowę z agentem. Najpierw zapytaj o wymagania dotyczące wieku, a potem przejdź do quizu. Przetestuj „odpowiednie” jako pierwsze, więc wpisz wiek z przedziału 18–75 lat i wagę powyżej 50 kg.

Odpowiednia ścieżka

Następnie sprawdź, czy weryfikacja kwalifikowalności się nie powiedzie, jeśli nie zostanie spełniony co najmniej jeden z tych warunków.

Nieodpowiednia ścieżka

Świetnie, generator działa zgodnie z oczekiwaniami. Czy tak jest? Co się stanie, jeśli użytkownik poda wiek, ale nie wagę (lub odwrotnie)?

Podaj wiek, ale nie wagę

8. Dostrajanie promptów generatora

Wydaje się, że zbieranie danych o wieku i wadze w przeszłości nie działa, jeśli nie podano wieku i wagi. Powinniśmy zamiast tego utworzyć formularz, który zbiera obie wartości jako parametry encji. Aby podpowiedzi były kontekstowe wszystkich wymagań (takich jak wiek czy waga), możemy użyć zmiennych, dodając znak $ przed słowem. Później powiążemy te zmienne w promptach generatora z parametrami sesji w ramach realizacji i w trakcie realizacji zostaną zastąpione wartościami parametrów sesji.

  1. Otwórz stronę Test kwalifikacji i dodaj do formularza 2 osobne parametry formularza: 1 dla wagi i 1 wiek. Wybierz @sys.number-integer jako typ elementu i oznacz parametry wymagane. Podaj początkowe dane realizacji promptu, np. How old are you? i What is your correct weight?. Zapisz wszystkie zmiany.

Formularz kwalifikacyjny

  1. Zanim będziemy mogli zmienić prompt tekstowy generatora, ponieważ dodamy 2 nowe niestandardowe obiekty zastępcze, musimy najpierw usunąć generator z realizacji trasy. Kliknij Zapisz.

Usuń generator

  1. Otwórz kartę Zarządzaj, wybierz Generatory, a następnie w prompcie tekstowym generatora Kryteria kwalifikacji do przekazywania krwi podaj: Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.. Kliknij Zapisz.

Zwróć uwagę, że tekst podpowiedzi nie został po prostu dopasowany do parametrów formularza o wieku i wadze. Zmieniliśmy też ostatnie zdanie, by umożliwić wygenerowanie do użytkownika oficjalnego e-maila z oficjalnym wynikiem quizu kwalifikacyjnego.

Skonfiguruj ponownie prompt tekstowy

  1. Na stronie Test kwalifikacji wybierz trasę i rozwiń sekcję Generatory w panelu Fulfillment. Następnie kliknij Dodaj generator i wybierz generator uprawnień do oddawania krwi. Po wybraniu generatora musisz powiązać nowe obiekty zastępcze promptów z odpowiednimi parametrami sesji. Konieczne będzie też ponowne ustawienie parametru wyjściowego. Kliknij Zapisz.

Zaktualizuj powiązania generatora

  1. Ponownie przetestuj agenta. Podczas weryfikacji kwalifikacji bierzemy pod uwagę wiek i wagę użytkownika, a jej treść została zmieniona z swobodnego tonu na bardziej uprzejmą odpowiedź, którą można wysłać bez udziału człowieka.

E-mail z informacją, że użytkownik nie spełnia wymagań

E-mail z informacją o tym, że użytkownik spełnia wymagania

9. Gratulacje

Udało Ci się ukończyć ćwiczenia z programowania.

Udało Ci się ukończyć ćwiczenia z programowania.

Dzisiaj przeanalizowaliśmy generatory w kontekście testów kwalifikacji. Zaobserwowaliśmy, że generatory używają modeli LLM do generowania odpowiedzi agentów, a gdy bazują na bazie wiedzy, mogą podejmować przemyślane decyzje. Z pewnością istnieje wiele innych przypadków użycia, które można wdrożyć z wykorzystaniem generatorów i magazynów danych. Chętnie je poznamy.

Czyszczenie

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

Więcej informacji

Jeśli chcesz 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.