W połączeniu z zamiarami sceny są głównymi elementami składowymi modelu rozmowy. Sceny przedstawiają poszczególne stany rozmowy, a ich głównym celem jest porządkowanie rozmowy w logiczne fragmenty, wykonywanie zadań i zwracanie komunikatów do użytkowników.
Przykładowe funkcje sceny:
- Zapętlone wykonanie – sceny są wykonywane w pętli, dopóki nie spełnią określonych przez Ciebie kryteriów przejścia. Dzięki temu możesz skuteczniej tworzyć przepływy logiki sterującej w ramach jednej sceny.
- Rozdzielenie okien – w połączeniu z intencjami sceny pozwalają grupować okna dialogowe w logiczne fragmenty, co ułatwia tworzenie par żądań użytkownika i odpowiedzi na działanie.
- Określanie zakresu dopasowania intencji – w danym momencie aktywna może być tylko jedna scena, więc możesz określić zakres dopasowywania intencji do wybranych scen. Dopasuj je tylko wtedy, gdy te sceny są aktywne.
- Wypełnianie przedziałów – możesz używać wypełniania przedziałów w scenie, aby zbierać wiele elementów wpisanego przez użytkownika, bez konieczności tworzenia wielu intencji.
- Warunki w scenie – możesz sprawdzać przedziały, sesje, użytkowników i miejsce na dane w domu, aby realizować prostą logikę warunkową bez uruchamiania webhooka.
Sceny możesz definiować w ramach modelu rozmowy jako scenę niestandardową. Logika konwersacyjna Asystenta obejmuje też sceny systemowe, które zapewniają standardowe funkcje rozmowy.
Sceny niestandardowe
Scena niestandardowa to element składowy logiki konwersacyjnej, który jest częścią modelu rozmowy akcji. Sceny niestandardowe mają etapy, które określają, jak i kiedy zaczyna się film (Aktywacja), przetwarzanie rozmowy w ramach cyklu życia oraz sposób zakończenia sceny (Przejście):
- Aktywacja – zanim scena zostanie wykonana, musisz ją aktywować za pomocą globalnego dopasowania intencji lub przejścia sceny.
- Wykonanie – gdy scena jest aktywna, jest wykonywana w ramach dobrze zdefiniowanego cyklu życia, który umożliwia wykonywanie różnych zadań, takich jak wypełnianie przedziałów, sprawdzanie warunkowe, generowanie promptów i aktywowanie zdarzeń webhooka.
- Przejście – gdy scena spełnia zdefiniowane przez Ciebie kryteria, np. dopasowanie intencji lub wypełnienie przedziałów, możesz przejść do innej sceny, aby zrealizować jeszcze więcej logiki. Możesz też przejść do sceny systemowej Zakończ rozmowę, która kończy rozmowę z użytkownikiem.
Działania
Zanim scena zostanie wykonana, musi być aktywna. W danym momencie aktywna może być tylko jedna scena. Sceny możesz aktywować na te sposoby:
- Wywołanie – gdy dane wejściowe użytkownika są zgodne z modelem językowym intencji globalnej, możesz aktywować scenę, aby przetworzyć wywołanie.
- Statyczne przejście sceny – gdy scena spełnia kryteria przejścia, możesz zdefiniować przejście do innej sceny.
- Dynamiczne przejście sceny – w ramach modułu obsługi webhooka możesz automatycznie przejść do innej sceny.
Cykl życia wykonania
Aktywna scena jest wykonywana w ramach ściśle zdefiniowanego cyklu życia, który jest wykonywany w pętli, dopóki nie spełni ustawionych przez Ciebie kryteriów przejścia. Cykl życia sceny jest podzielony na opcjonalne etapy, które działają w tej kolejności:
Po wejściu – ten etap jest uruchamiany tylko raz po aktywowaniu sceny. Możesz aktywować webhooka lub poprosić użytkownika o jednorazową konfigurację sceny.
Warunki – warunki umożliwiają ocenę określonych kryteriów przed przejściem kolejnych etapów cyklu życia, uruchomieniem webhooka lub wysłaniem promptów. Na tym etapie można zdefiniować kryteria przejścia, aby zakończyć pętlę wykonywania.
Wypełnianie przedziałów – scena może automatycznie pytać użytkowników, dopóki nie zbierze wszystkich wymaganych przedziałów (wpisanych danych). Za każdym razem w pętli wykonywania scena wyświetla prośbę o przypisanie 1 przedziału. W przypadku braku przedziałów cykl życia sceny wraca do etapu wypełniania przedziałów i wyświetla prośby o następne wymagane przedziały. Na tym etapie możesz zdefiniować kryteria przejścia, aby zakończyć pętlę wykonywania.
Prompty – Asystent dostarcza kolejkę promptów użytkownikowi i czyści ją. Kolejka promptów to scalony zbiór promptów, które zostały zagregowane od czasu ostatniego wyczyszczenia kolejki na tym etapie.
Dane wejściowe – Asystent przetwarza dane wejściowe i zwraca je do sceny, aby je przetworzyć, co może obejmować dopasowywanie intencji (zamiary globalne lub intencje użytkownika w ramach sceny), dalsze wypełnianie przedziałów (jeśli nie zostało ukończone) bądź obsługę braku dopasowania lub braku błędów w danych wejściowych. Na tym etapie można określić kryteria przejścia umożliwiające wyjście z pętli wykonywania. Jeśli nie zostanie ona przeniesiona, pętla wykonania wraca do etapu warunków.
W sekcjach poniżej znajdziesz bardziej szczegółowe informacje o poszczególnych etapach cyklu życia.
Po wejściu
Po wejściu to jedyny etap, który nie jest wykonywany w pętli wykonywania sceny. Jednorazowo inicjuje ona scenę w tej kolejności:
- Jeśli środowisko wykonawcze Asystenta może wypełnić przedziały z wcześniej dopasowanego zamiaru, robi to teraz, aby przygotować scenę na etap wypełniania przedziałów. Na przykład niektóre dane wejściowe użytkownika mogą pasować do intencji i udostępnić przedział. To dopasowanie intencji aktywuje scenę i może wypełnić miejsce w jej obrębie, jeśli nazwy przedziałów są zgodne.
- Jeśli webhook jest włączony, synchronicznie aktywuje zdarzenie i oczekuje, aż usługa internetowa zwróci odpowiedź.
- Gdy środowisko wykonawcze otrzymuje odpowiedź webhooka, rozwiązuje wszystkie odwołania do parametrów w promptach i wybiera propozycję promptu na podstawie interfejsu użytkownika, a potem wybiera 1 wariant, który można później wysłać użytkownikowi.
- Jeśli odpowiedź webhooka zawiera prompt, zostanie on dodany do kolejki promptów. Jeśli istnieje też statyczna podpowiedź, jest ona najpierw scalana z kolejką promptów, a po niej statyczna.
- Jeśli odpowiedź webhooka zawiera przejście, zrobi to teraz. W przeciwnym razie scena przechodzi do etapu wypełniania przedziałów.
Warunki
Warunki umożliwiają sprawdzanie danych o sesjach, użytkownikach lub przedziałach, aby sprawdzać, czy warunek jest prawdziwy. Możesz na przykład sprawdzić, czy wszystkie boksy są wypełnione, i ustawić je jako kryteria przejścia do innej sceny w celu przetworzenia przedziałów.
- Środowisko wykonawcze Asystenta ocenia każdy warunek w określonej kolejności. Pierwszy warunek, który zostanie obliczony na
true
, uruchamia powiązany moduł obsługi i zatrzymuje ocenę warunków. - Jeśli wypełnisz przedziały, do listy warunków zostanie automatycznie dodany warunek
else if scene.slots.status = "FINAL"
. Ten opcjonalny warunek sprawdza zakończenie wypełniania przedziałów i może aktywować webhooka lub dodać prompty do kolejki promptów.
Jeśli po ocenie warunku scena nie definiuje przejścia, kontynuuje wypełnianie przedziałów.
Wypełnianie przedziałów
Na tym etapie pojawi się pytanie o pojedynczy, niewypełniony i wymagany przedział. Jeśli nie zdefiniujesz żadnych przedziałów w scenie, ten etap niczego nie zmieni.
- Środowisko wykonawcze Asystenta wybiera pierwszy niewypełniony przedział i dodaje odpowiedni komunikat do kolejki promptów. Pętle wykonania sceny powodują, że dodatkowe niewypełnione przedziały są obsługiwane później, gdy pętla wykonania wraca na ten etap.
- W bieżącym, aktywnym boksie mogą występować żądania z obsługą błędów, które zastępują te zdefiniowane na etapie wprowadzania sceny.
- Gdy użytkownik wypełnia boks, możesz go zweryfikować w usłudze internetowej, wywołując webhooka.
Prośby
Środowisko wykonawcze Asystenta dostarcza użytkownikowi kolejkę promptów, czyści ją i wykorzystuje dane wejściowe użytkownika.
Dane wejściowe
Środowisko wykonawcze Asystenta próbuje dopasować dane wejściowe do intencji lub przedziału:
- W przypadku dopasowania intencji użytkownika scena wykonuje powiązany moduł obsługi intencji (intencję użytkownika lub systemową). Moduł obsługi intencji sceny ma pierwszeństwo przed wszystkimi intencjami globalnymi. Jeśli nie masz zdefiniowanego przejścia, wykonanie sceny wraca do etapu warunków.
- W przypadku dopasowania przedziału scena wraca do etapu wypełniania przedziałów.
W przypadku dopasowania intencji systemowej (np. braku danych wejściowych lub braku dopasowania) możesz dodać prompty do kolejki promptów, uruchomić webhooka lub przenieść dane. W przypadku zdefiniowania wielu monitów o brak zgodności środowisko wykonawcze Asystenta wybiera najbardziej odpowiednią z nich w takiej kolejności: wypełnienie przedziałów, scena, a następnie globalnie prompty o braku dopasowania. Kolejne zdarzenia braku dopasowań powodują wygenerowanie odpowiedniego zdarzenia:
no_match_1
no_match_2
no_match_final
Każdy poziom braku dopasowania (wypełnienie boksu, scena i globalne) może wywoływać zdarzenia webhooka. Domyślnie wątek kończy się trzecią i ostatnią partią.
Przejście
Przejścia mogą się odbywać na tych etapach:
- Warunki – możesz przejść do innej sceny na podstawie zdefiniowanych przez siebie warunków. Częstym warunkiem sprawdzania jest wypełnienie przedziałów, aby zostało ukończone.
- Dane wejściowe (dopasowanie intencji użytkownika) – jeśli intencja pasuje do intencji, może wywołać przejście do innej sceny.
- Dane wejściowe (dopasowywanie intencji systemu) – możesz aktywować webhooki podczas dowolnego zdarzenia dopasowania intencji systemu. W przypadku braku dopasowania lub zdarzeń wejściowych scena domyślnie przechodzi do sceny Zakończ rozmowę po 3 wystąpieniach.
Sceny systemowe
Sceny systemowe umożliwiają korzystanie z wbudowanej logiki konwersacyjnej przez Asystenta, która pozwala dodać do interfejsu standardowe konwersacje. Na przykład scena systemowa łączenia kont pozwala Asystentowi chwilowo zająć się procesem łączenia kont i zwrócić informacje niezbędne do faktycznego połączenia kont użytkownika. Sceny systemowe nie są zgodne ze standardowym cyklem życia sceny.
Poniższa lista zawiera opis obsługiwanych scen systemowych i opisu, jak z nich korzystać:
- Zakończ rozmowę – wyłącza mikrofon i kończy rozmowę z użytkownikiem. Po uruchomieniu tej sceny Asystent cofa kontrolę nad elementami wpływającymi na zadowolenie użytkownika.
- Łączenie kont – pomaga użytkownikowi przejść przez proces łączenia kont i przekazuje akcje wymagane informacje do połączenia konta użytkownika na serwerach backendu z kontem Google użytkownika. Więcej informacji o korzystaniu z tej sceny znajdziesz w dokumentacji łączenia kont.
- Codzienne aktualizacje – przeprowadza użytkownika przez proces potwierdzania, aby dodać akcje do codziennych aktualizacji użytkownika. Więcej informacji o korzystaniu z tej sceny znajdziesz w dokumentacji codziennych aktualizacji.
- Powiadomienia – przeprowadza użytkownika przez proces potwierdzania, aby otrzymywać powiadomienia z akcji. Więcej informacji o korzystaniu z tej sceny znajdziesz w dokumentacji powiadomień push.