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 polaDateTime
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 obiektemDateTime
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.