Pytania określają sposób renderowania odpowiedzi przez użytkowników oraz sposób, w jaki zachęca je ono do kontynuowania. Podczas tworzenia akcji możesz dodawać prośby do wywołań i do różnych miejsc w widoku sceny. Prośby mogą być tak proste jak SMS-y lub komunikaty głosowe. Mogą też być złożone i zawierać dużo treści, takich jak karty, obrazy czy tabele.
Typy odpowiedzi
W każdym z dostępnych komunikatów możesz wybrać interesujący typ odpowiedzi, który Asystent będzie prezentować użytkownikom:
- Proste odpowiedzi: proste odpowiedzi wyglądają jak dymki czatu i korzystają z funkcji zamiany tekstu na mowę (TTS) lub języka syntezy mowy SSML. Proste odpowiedzi to jedyne odpowiedzi obsługiwane na wszystkich typach urządzeń.
- Reakcje rozszerzone: odpowiedzi rozszerzone zawierają elementy wizualne lub funkcjonalne, które zwiększają interakcję użytkowników z działaniami. Szczegółowe odpowiedzi umożliwiają wyświetlanie danych w formie tabeli lub odtwarzanie dłuższych treści audio.
- Odpowiedzi wizualne z zaznaczeniami: odpowiedzi wizualne umożliwiają wybór spośród wielu opcji, które można łatwo odróżnić od tytułu lub zdjęcia.
- Reakcje na multimedia: akcje akcji umożliwiają odtwarzanie dłuższych treści audio niż SSML i zapewniają komponent wizualny z opcjami sterowania multimediami.
- Interaktywne Canvas: interaktywne obiekty renderują odpowiedzi w postaci wyświetleń na pełnym ekranie i funkcjonują jako interaktywna aplikacja internetowa, którą Asystent wysyła w odpowiedzi na rozmowę użytkownika. Canvas korzysta z nieco innego formatu podpowiedzi, aby zapewnić większą elastyczność niż standardy internetowe, takie jak HTML, CSS i JavaScript.
Każdy z tych typów odpowiedzi używa tego samego podstawowego formatu prośby i ma dostęp do tych samych ogólnych funkcji opisanych poniżej.
Format komunikatu
W projekcie Actions definiujesz prośby w formacie YAML lub JSON. Każda prośba może zawierać maksymalnie 2 proste odpowiedzi i opcjonalnie definiować odpowiedź z elementami rozszerzonymi. Odpowiedzi są definiowane w ten sposób:
first_simple
: pierwsza odpowiedź tekstowa lub mowa, którą można wysłać użytkownikowi.content
: dodatkowa treść z elementami rozszerzonymi wysyłana po prostych odpowiedziach.last_simple
Ostateczna odpowiedź tekstowa lub mowa (prosta), która zostanie wysłana do użytkownika.canvas
: oznacza aplikację internetową, która integruje się z Interactive Canvas.
Domyślnie prośby są dodawane do siebie w kolejności wymienionej powyżej. Zanim użytkownik będzie mógł odpowiedzieć, Asystent przedstawia mu wszystkie komunikaty w kolejce.
Dodatkowo zapewniasz elastyczność, korzystając z tych funkcji:
- Propozycje: umożliwiają definiowanie odpowiedzi na podstawie możliwości urządzenia użytkownika. Możesz na przykład wyświetlać odpowiedzi z elementami rozszerzonymi w Asystencie tylko wtedy, gdy użytkownik wejdzie w interakcję z urządzeniem obsługującym tę funkcję.
- Warianty: to odmiany odmiany pojedynczego komunikatu. Możesz na przykład pozwolić Asystentowi na wybranie 5 różnych wersji wiadomości powitalnej za każdym razem, gdy użytkownik wywoła Twoje działanie.
- Sugestie: gdy użytkownik wyświetla pytanie, na urządzeniach z wyświetlaczem wyświetlają się podpowiedzi.
Domyślny wiersz poleceń używa jednego kandydata, jednego wariantu i odpowiedzi first_simple
.
Kandydaci
W wierszu poleceń obiekt candidates
pozwala definiować odpowiedzi na podstawie możliwości urządzenia użytkownika. Możesz na przykład wyświetlać odpowiedzi z elementami rozszerzonymi w Asystencie 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 funkcjach urządzenia. Potwierdzenia ustawione w pierwszym kandydacie są wysyłane do użytkowników urządzenia, które może renderować odpowiedzi rozszerzone. Drugi kandydat zawiera podpowiedzi dla użytkowników, którzy mogą otrzymywać tylko 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." }] } }] }
Możesz podać co najmniej 1 wymagania dotyczące kandydata. Poniższa lista zawiera wszystkie dostępne możliwości:
SPEECH
: urządzenie może komunikować się z użytkownikiem za pomocą zamiany 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ługie pliki audio, takie jak muzyka czy podcasty.INTERACTIVE_CANVAS
: urządzenie może wyświetlić interaktywną odpowiedź Canvas.WEB_LINK
: na urządzeniach można używać linków internetowych w odpowiedziach rozszerzonych, aby otwierać przeglądarki.HOME_STORAGE
: urządzenie może zapisywać dane z domowej pamięci masowej i uzyskiwać do nich dostęp.
Warianty
Warianty umożliwiają definiowanie wielu wersji odpowiedzi. Gdy Asystent wyśle do użytkownika prośbę, jeden z wariantów jest wybierany losowo. Sprawdzoną metodą projektowania rozmów jest udzielanie użytkownikom alternatywnych odpowiedzi na żądanie akcji.
Możesz na przykład podać różne odmiany wiadomości powitalnej, aby użytkownicy nie słyszeli tej samej odpowiedzi przy każdym wywołaniu Twojego 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, na urządzeniach obsługujących ekran z sugestią wyświetlane są podpowiedzi. Za pomocą elementów z sugestiami możesz odpowiadać na pytania użytkowników, aby kontynuować rozmowę lub zmienić jej przebieg. Po dotknięciu element z sugestią zwraca dosłownie wyświetlany tekst, jak gdyby użytkownik go wpisał.
W jednym komunikacie może się pojawić maksymalnie 8 sugestii, a każda z nich może mieć maksymalnie 25 znaków w postaci zwykłego tekstu.
Aby dodać sugestię, wpisz obiekt Suggestion
zawierający każdą sugestię w osobnym polu title
. Każdy tytuł musi być unikalny wśród zbioru elementów dotyczących sugestii. W narzędziu Actions Builder jest on reprezentowany w YAML i JSON jako suggestions
.
Obok pytania możesz na przykład podać „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" }] }] }