Typy pozwalają skonfigurować silnik NLU Asystenta, aby wyodrębniać uporządkowane dane z danych wejściowych użytkownika. Typy mogą być używane w tych sytuacjach:
W intencjach możesz dodawać adnotacje do typów trenowania, aby tworzyć przedziały. Gdy użytkownik powie coś pasującego do boksu, mechanizm NLU wyodrębnia go jako wpisany parametr, dzięki czemu można go przetworzyć w scenie.
Na etapie wypełniania boksu w scenie możesz określić wiele przedziałów, które użytkownik ma dostarczyć, zanim będzie mógł przejść na inną scenę lub z niej wyjść.
Na etapie warunków sceny możesz ustalić, czy parametr ma konkretną wartość zdefiniowaną w typie.
Typy niestandardowe
Typy niestandardowe pozwalają utworzyć własną specyfikację typu, która powiadomi NLU o przypisaniu zestawu wartości do jednego klucza. Typy możesz określać na różne sposoby:
- Słowa i synonimy pozwalają zmapować wiele wartości na pojedynczy klucz, który jest nazywany wpisem. Typ może zawierać jeden lub wiele wpisów. 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 z więcej niż jednym słowem nawet wtedy, gdy są one wypowiadane w innej kolejności.
- Akceptuj nieznane wartości – gdy nie możesz określić wszystkich możliwych wartości, procesor języka może akceptować nieznane słowa lub wyrażenia na podstawie danych wejściowych i danych do trenowania intencji, takich jak produkty, które można dodać do listy zakupów.
- Wyrażenia regularne pozwalają dopasowywać typ do wyrażeń zgodnie ze standardami Google RE2.
- Tekst swobodny – umożliwia dopasowanie typu do dowolnej wypowiedzi użytkownika. Dodając do niego intencję, możesz wykorzystać wszystkie dane wejściowe jako parametr, który możesz połączyć z własnym NLU.
Typy systemów
Typy systemów umożliwiają dodawanie adnotacji i wyodrębnianie znanych danych z danych wejściowych użytkownika za pomocą danych i wartości treningowych udostępnionych przez system. 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 do wypełniania wyrażeń i trenowania wyrażeń. |
actions.type.Date |
Zawiera tylko datę. Dostępne tylko do wypełnienia przedziałów. |
actions.type.Time |
Zawiera tylko czas. Dostępne tylko do wypełnienia przedziałów. |
actions.type.Number |
Typ Number odpowiada numerom porządkowym i kardynalnym. |
Wykorzystanie: DateTime
, Date
i Time
Typy te zmieniają się w zależności od tego, gdzie używasz danego typu, i rodzaju danych wejściowych użytkownika.
Korzystanie z intencji
Dodanie adnotacji do trenowania w intencji obsługuje tylko typ DateTime
. Dane wejściowe użytkownika nie muszą pasować do całej wartości DateTime
. Jeśli np. użytkownik poda tylko rok, parametr sesji może wyglądać tak:
"date_time": {
"year": 2019
}
Korzystanie z wypełniania przedziałów
Wypełnianie boksów obsługuje DateTime
, Date
i Time
.
- Jeśli typ boksu to
DateTime
, Asystent wyświetli użytkownikowi prośbę o podanie pełnej wartości. - Jeśli typ boksu to
Date
, Asystent wyświetli użytkownikowi prośbę o podanie wartości daty. Pobierany parametr ma wartośćDateTime
i ustawia wartość 00:00. - Jeśli typ boksu to
Time
, Asystent wyświetli użytkownikowi prośbę o podanie wartości czasu. Pobierany parametr to pełny obiektDateTime
z datą ustawioną na bieżącą.
Załóżmy na przykład, że użytkownik w Gdańsku powiedział: „OK Google, utwórz przypomnienie 15 stycznia 2023 roku o 20:00”. Podczas wyodrębniania DateTime
w ramach procesu wypełniania boksu 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
}
Używanie z warunkami
Warunki zezwalają na korzystanie tylko z liczb i ciągów znaków, więc użycie parametru DateTime
najwyższego poziomu powoduje wyświetlenie warunku False. Przykład:
$session.params.my_dateTime.day > 5
jest prawidłowym warunkiem, ponieważ 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 realizacji. Ta funkcja umożliwia dodawanie lub 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 realizacji.
Więcej informacji o tworzeniu zastąpień typów znajdziesz w przewodniku po webhookach.