Prompty określają, w jaki sposób akcja renderuje odpowiedzi użytkownikom i w jaki sposób zachęca ich do kontynuowania. Podczas tworzenia akcji możesz dodawać prompty do wywołań i w różnych miejscach w scenach. Prompty mogą być proste, np. tekstowe lub głosowe, albo mogą być bardziej złożone i zawierać rozbudowane treści, takie jak karty, obrazy i tabele.
Typy odpowiedzi
W przypadku każdego promptu możesz wybrać jeden z wielu rodzajów interesujących odpowiedzi, które Asystent może przedstawić użytkownikom:
- Proste odpowiedzi: proste odpowiedzi mają postać dymka czatu i wykorzystują zamianę tekstu na mowę (TTS) lub język SSML (Speech Synthesis Markup Language). Proste odpowiedzi to jedyne odpowiedzi obsługiwane na wszystkich typach urządzeń.
- Odpowiedzi rozszerzone: odpowiedzi rozszerzone zawierają elementy wizualne lub funkcjonalne, które wzbogacają interakcje użytkowników z Twoimi akcjiami. W przypadku odpowiedzi rozszerzonych możesz też wyświetlać dane tabelaryczne lub odtwarzać dłuższe treści audio.
- Wizualne odpowiedzi dotyczące wyboru: to interfejs wizualny, który pozwala użytkownikom wybrać spośród wielu opcji, które najlepiej odróżniają się tytułem lub obrazem.
- Odpowiedzi multimedialne: umożliwiają odtwarzanie dłuższych treści dźwiękowych niż w przypadku SSML i zapewnia wizualizację z elementami sterującymi multimediami.
- Interaktywne obszar roboczy: interaktywne obiekty Canvas renderują odpowiedzi w postaci pełnoekranowej aplikacji internetowej i działają jako interaktywną aplikację internetową, którą Asystent wysyła w odpowiedzi na użytkownika w rozmowie. Canvas używa nieco innego formatu promptów, aby dostosować je do większej elastyczności standardów internetowych, takich jak HTML, CSS i JavaScript.
Każdy z tych typów odpowiedzi korzysta z tego samego formatu promptów podstawowych i ma dostęp do tych samych ogólnych funkcji, które zostały opisane poniżej.
Format promptu
W projekcie Actions możesz zdefiniować prompty w formacie YAML lub JSON. Każdy komunikat może zawierać maksymalnie 2 proste odpowiedzi i opcjonalnie definiować odpowiedź rozszerzoną. Odpowiedzi są definiowane w taki sposób:
first_simple
: wstępna odpowiedź tekstowa lub głosowa (prosta) wysłana do użytkownika.content
: uzupełniające szczegółowe odpowiedzi, które są wysyłane po prostych odpowiedziach.last_simple
Końcowa odpowiedź tekstowa lub mowa (prosta) wysłana do użytkownika.canvas
: odwołuje się do aplikacji internetowej, która integruje się z interaktywnym Canvas.
Domyślnie prompty są do siebie dołączane w kolejce promptów w podanej wyżej kolejności. Zanim użytkownik będzie mógł odpowiedzieć, Asystent przedstawia wszystkie prompty w kolejce.
Możesz także zwiększyć elastyczność promptu, korzystając z tych funkcji:
- Kandydaci: umożliwiają definiowanie odpowiedzi na podstawie możliwości urządzenia użytkownika. Na przykład Asystent może wyświetlać rozszerzone odpowiedzi tylko wtedy, gdy użytkownik wejdzie w interakcję z akcją na urządzeniu obsługującym wyświetlacz.
- Warianty: są to alternatywne odmiany pojedynczej wiadomości. Za każdym razem, gdy użytkownik wywoła akcję, może wybrać 5 różnych wariantów wiadomości powitalnej.
- Sugestie: gdy Asystent wyświetla prompt, użytkownicy urządzeń z możliwością wyświetlania będą mogli korzystać z elementów sugestii.
Domyślny prompt jest 1 kandydat, 1 wariant i first_simple
.
Kandydaci
W momencie obiektu candidates
umożliwia definiowanie odpowiedzi na podstawie możliwości urządzenia użytkownika. Na przykład Asystent może wyświetlać rozszerzone odpowiedzi tylko wtedy, gdy użytkownik wejdzie w interakcję z akcją na urządzeniu obsługującym wyświetlacz. 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. Prompty ustawione jako pierwszy kandydat są wysyłane do użytkowników na urządzeniu, które może renderować odpowiedzi rozszerzone. Drugi kandydat zawiera prompty
dla użytkowników, którzy mogą otrzymywać tylko odpowiedzi głosowe i tekstowe.
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ć jedno lub więcej wymagań dotyczących umiejętności danego kandydata. Poniższa lista opisuje wszystkie dostępne wymagania w zakresie możliwości:
SPEECH
: urządzenie może komunikować się z użytkownikiem przy użyciu zamiany tekstu na mowę lub SSML.RICH_RESPONSE
: urządzenie może wyświetlać odpowiedzi rozszerzone, takie jak karty, listy i tabele.LONG_FORM_AUDIO
: urządzenie może odtwarzać długie treści audio, takie jak muzyka i podcasty.INTERACTIVE_CANVAS
: urządzenie może wyświetlić odpowiedź na żądanie interaktywnego Canvas.WEB_LINK
: urządzenie może otwierać przeglądarkę przy użyciu linków internetowych w odpowiedziach z elementami rozszerzonymi.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 wysyła prompt do użytkownika, jeden z nich jest wybierany losowo. Sprawdzoną metodą w projektowaniu rozmowy jest udostępnianie użytkownikom alternatywnych odpowiedzi, gdy rozmawiają z akcji.
Możesz na przykład udostępnić różne warianty wiadomości powitalnej, aby użytkownicy nie słyszeli tej samej odpowiedzi przy każdym wywołaniu akcji:
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
![Przykład elementów sugestii na inteligentnym ekranie](https://developers.google.cn/static/assistant/conversational/images/smart-display/chips.png?authuser=7&hl=pl)
Sugestie zapewniają użytkownikom urządzeń z możliwością wyświetlacza elementy sugestii, gdy Asystent wyświetla prompt. Używaj elementów z sugestiami, aby wskazywać odpowiedzi użytkowników i kontynuować lub zmieniać kolejność rozmów. Po kliknięciu element z sugestią zwraca wyświetlany tekst dosłownie w rozmowie, tak jakby użytkownik go wpisał.
W 1 prompcie można umieścić maksymalnie 8 sugestii, z których każda może mieć maksymalnie 25 znaków zwykłego tekstu.
Aby dodać sugestię, prześlij obiekt Suggestion
zawierający każdą sugestię w osobnym polu title
. Każdy tytuł musi być niepowtarzalny w zestawie elementów z sugestią. W Actions Builder obiekt jest w formacie YAML i JSON jako suggestions
.
Możesz na przykład podać „Tak” i „Nie” obok każdego pytania:
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" }] }] }