Komunikaty określają, jak akcja renderuje odpowiedzi dla użytkowników oraz w jaki sposób zachęca ich do kontynuowania. Podczas tworzenia działania możesz dodawać prośby o wywołania i do różnych miejsc w punktach widokowych. Potwierdzenia mogą być proste zarówno w formie odpowiedzi tekstowej, głosowej, jak i bardziej złożonej oraz zawierać bogactwo treści, takie jak karty, obrazy i tabele.
Typy odpowiedzi
W przypadku każdego komunikatu możesz wybrać interesujący Cię typ odpowiedzi, który Asystent ma zaprezentować:
- Proste odpowiedzi: proste odpowiedzi wyglądają jak dymki czatu i korzystają z dźwięku syntezy mowy (SSML) lub języka syntezy mowy. Proste odpowiedzi to jedyne odpowiedzi obsługiwane na wszystkich typach urządzeń.
- Reakcje rozszerzone: odpowiedzi rozszerzone zawierają elementy wizualne lub funkcjonalne, które poprawiają interakcje użytkowników z działaniami. Dzięki odpowiedziom rozszerzonym możesz też wyświetlać dane w tabeli i odtwarzać dłuższe materiały audio.
- Odpowiedzi wizualne: wizualne opcje wyboru pozwalają użytkownikom wybrać spośród wielu opcji, które można łatwo odróżnić od tytułu lub obrazu.
- Reakcje w multimediach: odpowiedzi z multimediów pozwalają odtwarzać działania za pomocą dłuższych treści audio niż SSML, a także dostarczają komponentu wizualnego z elementami sterującymi multimediami.
- Interaktywne obszary robocze: interaktywne płótno renderuje odpowiedzi w postaci wyświetleń na pełnym ekranie i działa jako interaktywna aplikacja internetowa, którą Asystent wysyła w odpowiedzi na rozmowę użytkownika. Canvas korzysta z nieco innego formatu komunikatu, aby zapewnić większą elastyczność niż standardy internetowe, takie jak HTML, CSS i JavaScript.
Każdy z tych typów odpowiedzi ma ten sam podstawowy format monitu i ma dostęp do tych samych ogólnych funkcji, które opisujemy poniżej.
Format komunikatu
W projekcie Actions zdefiniujesz prośby w formacie YAML lub JSON. Każdy komunikat może zawierać maksymalnie 2 proste odpowiedzi i opcjonalnie definiować odpowiedź z elementami rozszerzonymi. Odpowiedzi są zdefiniowane w następujący sposób:
first_simple
: pierwsza odpowiedź tekstowa lub mowa (prosta).content
: dodatkowe treści z odpowiedziami wysłane po wykonaniu prostej odpowiedzi.last_simple
Ostateczna odpowiedź tekstowa lub mowa (prosta) do wysłania użytkownikowi.canvas
: odwołuje się do aplikacji internetowej, która integruje się z Interaktywnym Canvas.
Domyślnie prośby są dodawane do siebie w kolejności powyżej. Zanim użytkownik będzie mógł odpowiedzieć, Asystent przedstawia mu wszystkie prośby w kolejce.
Dodatkowo zapewniasz elastyczność działania za pomocą tych funkcji:
- Proponowani użytkownicy: umożliwiają definiowanie odpowiedzi na podstawie funkcji urządzenia użytkownika. Na przykład możesz, żeby Asystent wyświetlał rozbudowane odpowiedzi tylko wtedy, gdy użytkownik wejdzie w interakcję z urządzeniem obsługującym tę funkcję.
- Warianty: warianty to alternatywne wersje jednej wiadomości. Możesz na przykład poprosić Asystenta o wybranie 5 różnych wersji wiadomości powitalnej za każdym razem, gdy użytkownik wywoła działanie.
- Sugestie: gdy Asystent wyświetla prośbę, użytkownicy urządzeń obsługujących funkcję wyświetlania elementów mają podpowiedzi.
Domyślny wiersz poleceń zawiera 1 kandydat, 1 wariant i odpowiedź first_simple
.
Kandydaci
W wierszu obiektu candidates
można definiować odpowiedzi na podstawie funkcji urządzenia użytkownika. Na przykład możesz, żeby Asystent wyświetlał rozbudowane odpowiedzi tylko wtedy, gdy użytkownik wejdzie w interakcję z urządzeniem obsługującym tę funkcję. Aby określić typy urządzeń, na których Asystent może zwrócić kandydata, użyj właściwości selector
obiektu candidates
.
W poniższym przykładzie właściwość selector
zawiera informacje o możliwościach urządzenia. Potwierdzenia ustawione w pierwszym kandydacie są wysyłane do użytkowników urządzeń, które mogą renderować odpowiedzi rozszerzone. Drugi kandydat zawiera podpowiedzi dla użytkowników, którzy mogą tylko otrzymywać odpowiedzi tekstowe i głosowe.
YAML
candidates: - selector: surface_capabilities: capabilities: - RICH_RESPONSE first_simple: variants: - speech: Here's a simple message. content: card: title: Image card title text: Some details about the image image: url: 'https://www.example.com/image/' - first_simple: variants: - speech: Text explains what the image might have shown in more detail.
JSON
{ "candidates": [{ "selector": { "surface_capabilities": { "capabilities": ["RICH_RESPONSE"] } }, "first_simple": { "variants": [{ "speech": "Here's a simple message." }] }, "content": { "card": { "title": "Image card title", "text": "Some details about the image", "image": { "url": "https://www.example.com/image/" } } } }, { "first_simple": { "variants": [{ "speech": "Text explains what the image might have shown in more detail." }] } }] }
Dla każdego kandydata możesz określić co najmniej jedno wymaganie. Poniższa lista zawiera opis dostępnych wymagań:
SPEECH
: urządzenie może komunikować się z użytkownikiem przez zamianę tekstu na mowę lub SSML.RICH_RESPONSE
: urządzenie może wyświetlać rozszerzone odpowiedzi, takie jak karty, listy i tabele.LONG_FORM_AUDIO
: urządzenie może odtwarzać dłuższe multimedia, takie jak muzyka czy podcasty.INTERACTIVE_CANVAS
: na urządzeniu może zostać wyświetlona interaktywna odpowiedź Canvas.WEB_LINK
: urządzenie może używać linków internetowych w odpowiedziach rozszerzonych, aby otwierać przeglądarkę.HOME_STORAGE
: urządzenie może zapisywać dane w pamięci domowej i uzyskiwać do nich dostęp.
Warianty
Warianty umożliwiają definiowanie wielu wersji odpowiedzi. Gdy Asystent wyśle alert do użytkownika, jeden z wariantów zostanie wybrany losowo. Sprawdzoną metodą projektowania wątków jest zapewnianie użytkownikom alternatywnych odpowiedzi w kontekście akcji.
Możesz na przykład podawać różne wersje wiadomości powitalnej, tak aby użytkownicy nie słyszeli tej samej odpowiedzi przy każdym wywołaniu działania:
YAML
candidates: - first_simple: variants: - speech: Hello. - speech: Hi there. - speech: Welcome.
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Hello." },{ "speech": "Hi there." },{ "speech": "Welcome." }] } }] }
Sugestie

Gdy Asystent wyświetla pytanie, użytkownicy urządzeń obsługujących funkcję wyświetlania elementów mają podpowiedzi. Użyj elementów sugestii, aby zasugerować odpowiedzi użytkowników, aby kontynuować lub zmienić przebieg rozmowy. Po dotknięciu elementu z sugestią dosłowny tekst wyświetlonego tekstu zostanie zwrócony tak, jakby użytkownik go wpisał.
W 1 wierszu poleceń może się znajdować maksymalnie 8 sugestii o długości maksymalnie 25 znaków w postaci zwykłego tekstu.
Aby dodać sugestię, podaj obiekt Suggestion
zawierający każdą sugestię w osobnym polu title
. Każdy tytuł musi być unikalny wśród zestawów elementów sugestii. W Actions Builder ten obiekt jest reprezentowany w formacie YAML i JSON jako suggestions
.
Obok pytania możesz odpowiedzieć „Tak” i „Nie”:
YAML
candidates: - first_simple: variants: - speech: 'Welcome, do you want to play a game?' suggestions: - title: 'Yes' - title: 'No'
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Welcome, do you want to play a game?" }] }, "suggestions": [{ "title": "Yes" }, { "title": "No" }] }] }