Komunikaty

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

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"
    }]
  }]
}