Richieste

I prompt definiscono il modo in cui l'Azione mostra le risposte agli utenti e il modo in cui l'Azione li chiede di continuare. Durante la creazione dell'Azione, puoi aggiungere prompt alle chiamate e in vari punti all'interno delle scene. I prompt possono essere semplici come una risposta vocale o testuale, oppure possono essere più complessi e contenere contenuti avanzati come schede, immagini e tabelle.

Tipi di risposta

Per ogni richiesta puoi scegliere tra una varietà di tipi di risposte coinvolgenti che l'assistente può presentare agli utenti:

  • Risposte semplici: le risposte semplici assumono la forma di una bolla di chat e utilizzano la sintesi vocale (TTS) o il linguaggio SSML (Speech Synthesis Markup Language) per l'audio. Le risposte semplici sono le uniche supportate su tutti i tipi di dispositivi.
  • Risposte dettagliate: le risposte avanzate contengono elementi visivi o funzionali che migliorano le interazioni degli utenti con le tue azioni. Con le risposte dettagliate, puoi anche visualizzare dati tabulari o riprodurre contenuti audio più lunghi.
  • Risposte alla selezione visiva: le risposte alla selezione visiva forniscono un'interfaccia visiva per consentire agli utenti di scegliere tra più opzioni facilmente differenziabili in base al titolo o a un'immagine.
  • Risposte multimediali: le risposte multimediali consentono alle azioni di riprodurre contenuti audio in formato più lungo rispetto a SSML e forniscono un componente visivo con controlli multimediali.
  • Interactive Canvas: la Canvas interattiva esegue il rendering delle risposte come visualizzazioni web a schermo intero e funziona come un'app web interattiva che l'assistente invia come risposta all'utente nella conversazione. Canvas utilizza un formato dei prompt leggermente diverso per supportare una maggiore flessibilità rispetto a standard web come HTML, CSS e JavaScript.

Ognuno di questi tipi di risposta utilizza lo stesso formato di prompt di base e ha accesso alle stesse funzionalità generali descritte di seguito.

Formato di un prompt

Nel tuo progetto Actions, definisci i prompt in formato YAML o JSON. Ogni messaggio può contenere fino a due risposte semplici e, facoltativamente, definire una risposta avanzata. Le risposte vengono definite nei seguenti modi:

  • first_simple: risposta testuale o vocale (semplice) iniziale da inviare all'utente.
  • content: contenuti aggiuntivi supplementari di risposta da inviare dopo risposte semplici.
  • last_simple Risposta testuale o vocale finale (semplice) da inviare all'utente.
  • canvas: fa riferimento a un'app web che si integra con Interactive Canvas.

Per impostazione predefinita, le richieste vengono aggiunte l'una all'altra nell'ordine precedente in una coda dei prompt. Prima che l'utente possa rispondere, l'assistente presenta all'utente tutte le richieste nella coda delle richieste.

Puoi offrire ulteriore flessibilità al prompt utilizzando le seguenti funzionalità:

  • Candidati: i candidati consentono di definire le risposte in base alle funzionalità del dispositivo dell'utente. Ad esempio, puoi fare in modo che l'assistente mostri risposte avanzate solo quando un utente interagisce con l'azione su un dispositivo che supporta il display.
  • Varianti: le varianti sono varianti alternative di un singolo messaggio. Ad esempio, puoi fare in modo che l'assistente scelga tra cinque diverse varianti del messaggio di benvenuto ogni volta che un utente richiama l'Azione.
  • Suggerimenti: i suggerimenti forniscono agli utenti che utilizzano dispositivi compatibili con i display i chip di suggerimenti quando l'assistente mostra la richiesta.

Un prompt predefinito utilizza un candidato, una variante e una risposta first_simple.

Candidati

In un prompt, l'oggetto candidates consente di definire le risposte in base alle funzionalità del dispositivo di un utente. Ad esempio, puoi fare in modo che l'assistente mostri risposte avanzate solo quando un utente interagisce con l'azione su un dispositivo che supporta il display. Per definire i tipi di dispositivi in cui l'assistente può restituire un candidato, utilizza la proprietà selector dell'oggetto candidates.

Nell'esempio seguente, la proprietà selector contiene le informazioni sulle funzionalità del dispositivo. I prompt impostati nel primo candidato vengono inviati agli utenti su un dispositivo in grado di visualizzare risposte avanzate. Il secondo candidato contiene prompt per utenti che possono ricevere solo risposte vocali e testuali.

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

Puoi fornire uno o più requisiti di capacità per un determinato candidato. Il seguente elenco descrive ciascuno dei requisiti di funzionalità disponibili:

  • SPEECH: il dispositivo può parlare con l'utente tramite sintesi vocale o SSML.
  • RICH_RESPONSE: il dispositivo può visualizzare risposte avanzate come schede, elenchi e tabelle.
  • LONG_FORM_AUDIO: il dispositivo può riprodurre contenuti multimediali audio in formato esteso come musica e podcast.
  • INTERACTIVE_CANVAS: il dispositivo può visualizzare una risposta di Canvas interattiva.
  • WEB_LINK: il dispositivo può utilizzare link web nelle risposte avanzate per aprire un browser web.
  • HOME_STORAGE: il dispositivo può memorizzare e accedere ai dati dello spazio di archiviazione di casa.

Varianti

Le varianti offrono un modo per definire più versioni di una risposta. Quando l'assistente invia la richiesta a un utente, una delle varianti viene scelta in modo casuale. Come best practice per la progettazione delle conversazioni, fornisci agli utenti risposte alternative quando conversano con l'Azione.

Ad esempio, fornisci varianti del messaggio di benvenuto diverse in modo che gli utenti non sentano la stessa risposta ogni volta che richiamano l'Azione:

YAML

candidates:
  - first_simple:
      variants:
        - speech: Hello.
        - speech: Hi there.
        - speech: Welcome.
    

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Hello."
      },{
        "speech": "Hi there."
      },{
        "speech": "Welcome."
      }]
    }
  }]
}
    

Suggerimenti

Esempio di chip di suggerimenti su uno smart display

I suggerimenti offrono agli utenti che utilizzano dispositivi compatibili con i display dei chip di suggerimenti quando l'assistente visualizza la richiesta. Usa i chip di suggerimenti per suggerire le risposte degli utenti per continuare o cambiare la conversazione. Quando lo tocchi, un chip di suggerimento restituisce il testo visualizzato alla conversazione, come se l'utente lo avesse digitato.

Puoi avere un massimo di 8 suggerimenti in un singolo prompt, ciascuno con una lunghezza massima di 25 caratteri di testo non crittografato.

Per aggiungere un suggerimento, fornisci un oggetto Suggestion che contenga ogni suggerimento in un campo title separato. Ogni titolo deve essere univoco nell'insieme di chip di suggerimento. In Actions Builder, questo oggetto è rappresentato in YAML e JSON come suggestions.

Ad esempio, puoi fornire suggerimenti "Sì" e "No" insieme a una domanda:

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