Typy

Typy pozwalają skonfigurować mechanizm NLU (NLU) w Asystencie do wyodrębniania uporządkowanych danych z danych wejściowych użytkownika. Typów możesz używać w tych sytuacjach:

  • W sekcji intents (zamiary) możesz dodawać adnotacje do wyrażeń treningowych z użyciem typów, aby tworzyć przedziały. Gdy użytkownik wypowiada coś, co pasuje do boksu, wyszukiwarka NLU wyodrębnia to jako parametr wpisany, aby można było je przetworzyć w scenie.

  • Na etapie wypełniania przedziałów sceny możesz określić wiele przedziałów, które użytkownik ma podać, zanim będzie mógł przejść do końca sceny lub wyjść z niej.

  • Na etapie conditions sceny możesz ustalić, czy parametr ma konkretną wartość zdefiniowaną w danym typie.

Typy niestandardowe

Typy niestandardowe umożliwiają utworzenie własnej specyfikacji typu, która powiadamia NLU o konieczności przypisania zestawu wartości do jednego klucza. Typy możesz określać na różne sposoby:

  • 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 – ta funkcja 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, procesor języka może akceptować nieznane słowa lub wyrażenia na podstawie otaczających je danych wejściowych i zamiarów, np. produktów, które można dodać do listy zakupów.
  • Wyrażenia regularne umożliwiają typowi dopasowanie wartości z użyciem wzorców wyrażeń regularnych zgodnych ze standardem Google RE2.
  • Tekst swobodny umożliwia dopasowanie typu do wszystkiego, co mówi użytkownik. Dodanie adnotacji o tym typie do intencji pozwala korzystać ze wszystkich danych wejściowych jako parametru, który można przesłać potokiem do własnego NLU.

Typy systemów

Typy systemów pozwalają dodawać adnotacje i wyodrębniać dobrze znane dane z danych wejściowych użytkownika z użyciem dostarczanych przez system danych treningowych i wartości. Obsługiwane są te typy systemów:

Typ Opis
actions.type.DateTime Zawiera datę, godzinę i strefę czasową określone na podstawie ustawień urządzenia użytkownika. Dostępne na potrzeby wypełniania przedziałów i adnotacji do trenowania wyrażenia.
actions.type.Date Zawiera tylko datę. Dostępne tylko w przypadku wypełniania przedziałów.
actions.type.Time Zawiera tylko czas. Dostępne tylko w przypadku wypełniania przedziałów.
actions.type.Number Typ Number dopasowuje liczby porządkowe i kardynalne.

Wykorzystanie DateTime, Date i Time

Sposób działania tych typów zależy od tego, gdzie używasz danego typu danych oraz w zależności od pasujących danych wejściowych użytkownika.

Używanie z intencjami

Dodawanie adnotacji do wyrażeń treningowych w intencjach obsługuje tylko typ DateTime. Dane wejściowe użytkownika nie muszą odpowiadać całej wartości DateTime. Jeśli np. użytkownik poda tylko rok, parametr sesji może wyglądać tak:

"date_time": {
  "year": 2019
}

Stosowanie z wypełnianiem przedziałów

Wypełnianie przedziałów obsługuje DateTime, Date i Time.

  • Jeśli typem boksu jest DateTime, Asystent będzie pytać użytkownika, aż podasz pełną wartość.
  • Jeśli typem boksu jest Date, Asystent pyta użytkownika, dopóki nie zostanie podana wartość daty. Po zebraniu parametr, który otrzymujesz, ma postać pełnego pola DateTime z czasem ustawionym na 00:00.
  • Jeśli typem przedziału jest Time, Asystent będzie pytać użytkownika, aż zostanie podana wartość czasu. Po zebraniu parametr otrzymywany jest pełnym obiektem DateTime z datą ustawioną na bieżącą datę.

Załóżmy na przykład, że użytkownik w Los Angeles powiedział „OK Google, utwórz przypomnienie na 15 stycznia 2024 r. o 20:00”. Gdy w ramach procesu wypełniania boksu wyodrębnia się parametr DateTime, pełny parametr może wyglądać tak:

"date_time": {
  "day": 15,
  "hours": 20,
  "minutes": 0,
  "month": 1,
  "nanos": 0,
  "seconds": 0,
  "time_zone": {
    "id": "America/Los_Angeles"
  },
  "year": 2024
}

Stosowanie z warunkami

Warunki zezwalają tylko na używanie liczb i ciągów znaków, więc użycie parametru DateTime najwyższego poziomu daje wynik False dla warunku. Przykład:

  • $session.params.my_dateTime.day > 5 to prawidłowy warunek, bo wartość day jest liczbą i jest obsługiwana.
  • $session.params.my_dateTime > "01-01-2010" to nieprawidłowy warunek, ponieważ obiekt najwyższego poziomu „DateTime” nie jest liczbą ani ciągiem znaków.

Zastąpienia typu środowiska wykonawczego

Zastąpienia typu środowiska wykonawczego umożliwiają dynamiczne tworzenie i modyfikowanie typów w ramach realizacji. Ta funkcja umożliwia dodawanie i zastępowanie specyfikacji danego typu w czasie działania. Możesz na przykład sprawdzić źródło danych backendu, aby wczytać codzienne pozycje menu do typu w ramach realizacji zamówienia.

Więcej informacji o tworzeniu zastąpień typów znajdziesz w przewodniku po webhookach.