Tworzenie modeli rozmów

Model rozmowy określa, co użytkownicy mogą mówić do akcji i jak je reagują. Głównymi elementami składowymi modelu rozmowy są zamiary, typy, sceny i prośby. Po wywołaniu jednej z akcji Asystent Google przekazuje użytkownikowi do niej akcję, która inicjuje rozmowę z użytkownikiem zgodnie z modelem rozmowy, na którą składa się:

  • Prawidłowe prośby użytkowników – aby określić, co użytkownicy mogą mówić do akcji, utwórz zbiór intencji, które rozszerzają NLU Asystenta, aby odczytywać żądania specyficzne dla akcji. Każda intencja definiuje wyrażenia szkoleniowe, które opisują to, co użytkownicy mogą powiedzieć, aby dopasować się do danego zamiaru. Asystent NLU rozszerza te wyrażenia na potrzeby nauki o podobne wyrażenia. Na ich podstawie powstaje model językowy intencji.

  • Logika działań i odpowiedzi – sceny przetwarzają intencje, wykonują wymaganą logikę i generują komunikaty zachęcające do powrotu do użytkownika.

Rysunek 1. Model rozmowy składa się z intencji, typów, scen i promptów, które określają sposób obsługi przez użytkownika. Intencje, które kwalifikują się do wywoływania, są również prawidłowe na potrzeby dopasowywania w rozmowach.

Zdefiniuj prawidłowe żądania użytkowników

Aby określić, co użytkownicy mogą powiedzieć do Twoich akcji, użyj kombinacji intencji i typów. Intencje i typy użytkowników pozwalają uzupełnić NLU Asystenta o własne modele językowe. Intencje i typy systemu pozwalają korzystać z wbudowanych modeli językowych i wykrywania zdarzeń, np. gdy użytkownicy chcą zamknąć akcję lub Asystent nie wykrywa żadnego wprowadzania danych.

Tworzenie intencji użytkownika

Intencje użytkownika pozwalają definiować własne wyrażenia treningowe definiujące, co użytkownicy mogą powiedzieć do akcji. Asystent NLU używa tych wyrażeń, aby nauczyć się rozumieć wypowiedzi użytkowników. Gdy użytkownik wypowiada coś, co pasuje do jego modelu językowego, Asystent dopasowuje do intencji i powiadamia akcję. Dzięki temu możesz zrealizować logikę i zareagować.

Rysunek 1. Przykład zamiaru użytkownika

Aby utworzyć intencję użytkownika:

  1. Na karcie Programowanie kliknij Intencje użytkowników > ⊕ (Nowa intencja), podaj nazwę i naciśnij Enter, by utworzyć intencję.
  2. Kliknij nowo utworzoną intencję w menu po lewej stronie. Pojawi się Edytor intencji.
  3. Dodaj do intencji wyrażenia na potrzeby trenowania. Aby szkolić Asystenta NLU, dodaj jak najwięcej wyrażeń do trenowania.
  4. Opcjonalnie: dodaj adnotacje do wyrażeń treningowych, aby nakazać NLU przeanalizowanie i wyodrębnienie wpisanych przez użytkownika parametrów z danych wejściowych użytkownika pasujących do określonego typu:
    1. Wpisz nazwę parametru w polu Dodaj nowy parametr.
    2. Wybierz typ systemu z menu lub utwórz typ niestandardowy.
    3. Określ, czy parametr ma postać listy. Dzięki temu parametr może zbierać wiele wartości tego samego typu.
    4. W sekcji Dodaj wyrażenia na potrzeby trenowania zaznacz tekst, do którego chcesz zastosować typ. Dzięki temu NLU Asystenta będzie traktować zaznaczony tekst jako parametr. Jeśli użytkownicy powiedzą coś, co pasuje do typu, NLU wyodrębni tę wartość jako parametr.

Tworzenie intencji systemowych

Intencje systemowe umożliwiają korzystanie z intencji dzięki wstępnie zdefiniowanym modelom językowym w przypadku typowych zdarzeń, takich jak chęci zakończenia działania przez użytkownika lub przekroczenie limitu czasu wprowadzania danych przez użytkownika. Aby utworzyć intencje systemowe:

  1. Na karcie Programowanie kliknij Intencje systemowe. Dostępny jest zestaw intencji systemowych, np. NO_MATCH, NO_INPUT i CANCEL.
  2. Każda intencja systemowa zawiera własne moduły obsługi, które możesz dostosować do każdego typu intencji systemowej. Na przykład intencje systemowe umożliwiają wywoływanie zdarzeń webhooka i wysyłanie statycznych promptów w momencie ich wystąpienia.

Tworzenie typów niestandardowych

Niestandardowe typy pozwalają utworzyć własną specyfikację typu, aby trenować NLU w celu interpretowania zestawu wartości, które powinny być zmapowane na jeden klucz.

Rysunek 2. Przykład typu niestandardowego

Aby utworzyć typ niestandardowy:

  1. Na karcie Programowanie kliknij Typy > ⊕ (nowy typ).
  2. W sekcji Jakiego rodzaju wartości mają ten typ obsługi? wybierz sposób podawania wartości typu:

    • Słowa i synonimy umożliwiają przyporządkowanie wielu wartości do jednego klucza – nazywanego wpisem. Typ może zawierać 1 wpis lub wiele pozycji. Jeśli wybierzesz tę opcję, możesz też włączyć te ustawienia NLU:
      • Włącz dopasowanie przybliżone – umożliwia dopasowanie wpisów zawierających więcej niż 1 słowo, nawet jeśli słowa są wypowiadane w innej kolejności.
      • Akceptuj nieznane wartości – jeśli nie możesz określić wszystkich możliwych wartości, będą akceptowane nieznane słowa lub wyrażenia na podstawie otaczających je danych wejściowych i zamiarów treningowych, np. produktów, które można dodać do listy zakupów.
    • Wyrażenia regularne umożliwiają dopasowywanie typu do wzorców wyrażeń regularnych zgodnie ze standardem Google RE2.
    • Tekst swobodny umożliwia dopasowanie typu do wszystkiego, co mówi użytkownik.
  3. Określ wartości typów w sekcji Dodaj wpisy. Jeśli wybierzesz Tekst swobodny, wpisany typ będzie pasował do dowolnego tekstu, więc nie musisz wprowadzać żadnych wpisów.

Tworzenie logiki działań i odpowiedzi

NLU Asystenta dopasowuje żądania użytkownika do intencji, aby akcja mogła je przetworzyć w scenach. Sceny to zaawansowane narzędzia do obsługi logiki, które pozwalają przetwarzać zdarzenia podczas rozmowy.

Rysunek 3. Przykład sceny niestandardowej

Tworzenie sceny

Sekcja poniżej zawiera informacje o tworzeniu scen i definiowaniu ich funkcji na różnych etapach cyklu życia.

Aby utworzyć scenę:

  1. Na karcie Programowanie kliknij Sceny > ⊕ (Nowa scena), podaj nazwę i naciśnij Enter, aby utworzyć scenę.
  2. Kliknij nowo utworzoną scenę w menu po lewej stronie. Pojawi się edytor scen.

Definiowanie jednorazowej konfiguracji

Gdy scena stanie się po raz pierwszy aktywna, możesz wykonać jednorazowe zadanie na etapie Po wejściu. Etap „Wprowadzanie” jest wykonywany tylko raz i jest jedynym, który nie przebiega w pętli wykonywania sceny.

  1. W scenie kliknij scenę Po wejściu, by określić jej funkcje. Na tym etapie możesz określić te funkcje:

    • Wywołaj webhooka – aktywuje webhooka. Więcej informacji znajdziesz w dokumentacji webhooków.
    • Wyślij potwierdzenia – określ statyczne prompty użytkownikowi, aby wiedział, jak kontynuować rozmowę. Więcej informacji o określaniu promptów znajdziesz w dokumentacji powiadomień.
    Rysunek 4. Przykład sceny na wejściu na scenę

Sprawdź warunki

Warunki umożliwiają sprawdzanie wypełnienia przedziałów, pamięci sesji, pamięci użytkownika i parametrów pamięci domowej, co umożliwia kontrolowanie przepływu wykonywania sceny.

  1. W scenie kliknij ikonę +, aby przejść do etapu Warunek. Po prawej stronie wyświetli się Edytor warunków. Na tym etapie możesz określić te funkcje:

    • Warunek – określ faktyczną instrukcję warunkową, która ma być podstawą logiki. Informacje o składni znajdziesz w dokumentacji conditions.
    • Wywołaj webhooka – aktywuje webhooka. Więcej informacji znajdziesz w dokumentacji webhooków.
    • Wyślij potwierdzenia – określa statyczne prompty, które mają być wysyłane do użytkownika, aby wiedział, jak kontynuować rozmowę. Więcej informacji o określaniu promptów znajdziesz w dokumentacji promptów.
    • Przejście – określa scenę, do której ma się przejść, gdy instrukcja warunkowa jest prawda.
Rysunek 5. Przykład etapu warunków sceny

Zdefiniuj wypełnianie przedziałów

Przedziały umożliwiają wyodrębnianie parametrów wpisanych przez użytkownika.

W edytorze sceny kliknij ikonę + etapu Wypełnianie przedziałów. Edytor boksu pojawi się po prawej stronie. Możesz określić te właściwości boksu:

  • Nazwa przedziału: określa nazwę boksu. Jeśli chcesz korzystać z mapowania wartości przedziałów, użyj tej samej nazwy co odpowiedni parametr intencji.
  • Typ przedziału: określa typ boksu: typ systemowy lub niestandardowy.
  • To boks jest wymagane: oznacza to miejsce jako wymagane. Jeśli ta opcja jest włączona, wypełnianie boksu nie zostanie ukończone, dopóki miejsce nie zostanie wypełnione.
  • Przypisz wartość domyślną do tego boksu: określa wartość domyślną boksu, która jest odczytywana z określonego parametru sesji.
  • Dostosuj zapis wartości przedziału: określa parametr sesji, który ma zachować wartość boksu po zakończeniu wypełniania przedziału.
  • Weryfikacja boksu: aktywuj webhooka, gdy boks zostanie wypełniony. To ustawienie dotyczy wszystkich przedziałów.
  • Wywołanie webhooka (włączone, gdy boks jest wymagany): aktywuje webhooka. Więcej informacji o webhookach znajdziesz w dokumentacji webhooków.
  • Wyślij potwierdzenia (włączone, gdy przedział jest wymagany): określa statyczne prompty, które mają być wysyłane do użytkownika, aby wiedzieć, jak kontynuować rozmowę. Więcej informacji o ich definiowaniu znajdziesz w dokumentacji promptów.

W przypadku niektórych typów boksów (np. związanych z transakcjami lub zaangażowaniem użytkowników) pojawi się dodatkowa sekcja, w której możesz skonfigurować boks. Konfiguracje przedziałów mogą zmieniać sposób obsługi rozmów przez użytkowników w zależności od podanych przez Ciebie właściwości.

Aby skonfigurować przedział, podaj właściwości w obiekcie JSON w realizacji (określonej jako parametr sesji) lub we wbudowanym edytorze JSON. Informacje o dostępnych właściwościach poszczególnych typów przedziałów znajdziesz w dokumentacji formatu JSON Actions Builder. Na przykład typ boksu actions.type.DeliveryAddressValue odpowiada treści referencyjnej dla boksu DeliveryAddressValue.

Rysunek 6. Przykład ustawień wypełnienia przedziałów sceny

Mapowanie wartości przedziałów

W wielu przypadkach poprzednie dopasowanie intencji może zawierać parametry, które częściowo lub całkowicie wypełniają wartości przedziałów w danej scenie. W takich przypadkach wszystkie przedziały wypełnione przez parametry intencji są mapowane na wypełnienie przedziału sceny, jeśli nazwa przedziału jest zgodna z nazwą parametru intencji.

Jeśli na przykład użytkownik odpowiada zamiarowi zamówienia napoju, mówiąc „Chcę zamówić dużą kawę waniliową”, istniejące przedziały dotyczące rozmiaru, smaku i rodzaju napoju będą uważane za wypełnione w odpowiedniej scenie, jeśli ma ona te same przedziały czasu.

Przetwarzaj dane wejściowe

Na tym etapie możesz korzystać z NLU Asystenta do dopasowywania danych wejściowych użytkownika do intencji. Możesz określić zakres dopasowania intencji do konkretnej sceny, dodając do niej odpowiednie intencje. Pozwala to kontrolować przebieg rozmowy, polecając Asystentowi, aby pasował do konkretnych intencji, gdy aktywne są określone sceny.

  1. W scenie kliknij ikonę + na etapie Obsługa intencji użytkownika lub Obsługa intencji systemu. Edytor modułu obsługi intencji pojawi się po prawej stronie. Możesz określić te funkcje modułu obsługi intencji:

    • Intencja – określa intencję, którą chcesz dopasować w danej scenie.
    • Wywołaj webhooka – aktywuje webhooka. Więcej informacji o sposobie obsługi żądania webhooka znajdziesz w dokumentacji webhooków.
    • Wyślij potwierdzenia – określ statyczne prompty, aby użytkownik wiedział, jak odpowiedzieć. Więcej informacji o określaniu promptów znajdziesz w dokumentacji powiadomień.
    • Przejście (jeśli dotyczy) – określa scenę, do której ma nastąpić przejście, gdy pasuje do niej określona intencja.
Rysunek 7. Przykład modułu obsługi intencji użytkownika w danej scenie
Rysunek 8. Przykład modułu obsługi intencji systemowej sceny