

Avviso di fine del supporto: il 15 settembre 2025 AWS interromperà il supporto per Amazon Lex V1. Dopo il 15 settembre 2025, non potrai più accedere alla console di Amazon Lex V1 o alle risorse di Amazon Lex V1. Se utilizzi Amazon Lex V2, consulta invece la [guida Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestione dei messaggi
<a name="howitworks-manage-prompts"></a>

**Topics**
+ [Tipi di messaggi](#msg-prompts-msg-types)
+ [Contesti per la configurazione di messaggi](#msg-prompts-context-for-msgs)
+ [Formati di messaggio supportati](#msg-prompts-formats)
+ [Gruppi di messaggi](#message-groups)
+ [Schede di risposta](#msg-prompts-resp-card)

Quando crei un bot, puoi configurare messaggi illustrativi o informativi da inviare al client. Considerare i seguenti esempi:
+ Puoi configurare il tuo bot con il prompt illustrativo seguente: 

  ```
  I don't understand. What would you like to do?
  ```

  Amazon Lex invia questo messaggio al client se non comprende l'intento dell'utente. 

   
+ Supponiamo che venga creato un bot per supportare un intento denominato `OrderPizza`. Per un ordine di pizza, gli utenti devono fornire informazioni quali le dimensioni della pizza, i contorni e il tipo di crosta. È possibile configurare i seguenti prompt:

  ```
  What size pizza do you want?
  What toppings do you want?
  Do you want thick or thin crust?
  ```

  Dopo aver determinato l'intenzione dell'utente di ordinare la pizza, Amazon Lex invia questi messaggi al client per ottenere informazioni dall'utente.

In questa sezione viene descritta la progettazione delle interazioni dell'utente nella configurazione del tuo bot. 

## Tipi di messaggi
<a name="msg-prompts-msg-types"></a>

Un messaggio può essere un prompt o un'istruzione.
+ Un *prompt* è normalmente una domanda che prevede la risposta dell'utente. 
+ Un'*istruzione* è informativa. Non prevede una risposta.

Un messaggio può includere riferimenti a slot, attributi di sessione e attributi di richiesta. In fase di esecuzione, Amazon Lex sostituisce questi riferimenti con valori effettivi. 

Per fare riferimento ai valori slot che sono stati impostati, utilizza la sintassi seguente:

```
{{{SlotName}}} 
```

Per fare riferimento agli attributi di sessione, utilizza la sintassi seguente:

```
[{{SessionAttributeName}}] 
```

Per fare riferimento agli attributi di richiesta, utilizza la sintassi seguente:

```
(({{RequestAttributeName}})) 
```

I messaggi possono includere valori di slot, attributi di sessione e attributi di richiesta. 

Ad esempio, supponiamo di configurare il seguente messaggio nell'intento del bot: OrderPizza 

```
"Hey [FirstName], your {PizzaTopping} pizza will arrive in [DeliveryTime] minutes." 
```

Questo messaggio fa riferimento sia ad attributi slot (`PizzaTopping`) sia ad attributi di sessione (`FirstName` e `DeliveryTime`). In fase di esecuzione, Amazon Lex sostituisce questi segnaposto con valori e restituisce il seguente messaggio al client:

```
"Hey John, your cheese pizza will arrive in 30 minutes." 
```

Per includere parentesi quadre ([]) o graffe ({}) in un messaggio, utilizza il carattere escape della barra rovesciata (\\). Ad esempio, il messaggio seguente include parentesi graffe e parentesi quadre: 

```
\{{{Text}}\} \[{{Text}}\]
```

Il testo restituito all'applicazione del client ha questo aspetto:

```
{{{Text}}} [{{Text}}]
```

Per informazioni sugli attributi di sessione, consulta le operazioni API di runtime [PostText](API_runtime_PostText.md) e [PostContent](API_runtime_PostContent.md). Per vedere un esempio, consulta [Prenota un viaggio](ex-book-trip.md). 

Le funzioni Lambda possono anche generare messaggi e restituirli ad Amazon Lex per inviarli all'utente. Se aggiungi funzioni Lambda quando configuri il tuo intento, puoi creare messaggi in modo dinamico. Fornendo i messaggi durante la configurazione del bot, è possibile eliminare la necessità di creare un prompt nella funzione Lambda.

## Contesti per la configurazione di messaggi
<a name="msg-prompts-context-for-msgs"></a>

Quando crei il bot, puoi creare messaggi in diversi contesti, come richieste di chiarimento in bot, richieste di valori di slot e messaggi provenienti dagli intenti. Amazon Lex sceglie un messaggio appropriato in ogni contesto da restituire all'utente. Puoi fornire un gruppo di messaggi per ogni contesto. In tal caso, Amazon Lex sceglie a caso un messaggio dal gruppo. Puoi specificare anche il formato del messaggio oppure raggruppare i messaggi. Per ulteriori informazioni, consulta [Formati di messaggio supportati](#msg-prompts-formats).

Se hai una funzione Lambda associata a un intent, puoi sovrascrivere qualsiasi messaggio configurato in fase di compilazione. Tuttavia, non è richiesta una funzione Lambda per utilizzare nessuno di questi messaggi.

### Messaggi bot
<a name="msg-prompts-bot"></a>

Puoi configurare il bot con richieste di chiarimento e messaggi di fine sessione. In fase di esecuzione, Amazon Lex utilizza la richiesta di chiarimento ** se non comprende l'intento dell'utente. Puoi configurare il numero di volte in cui Amazon Lex richiede chiarimenti prima di inviare il messaggio di fine sessione. Puoi configurare i messaggi a livello di bot nella sezione **Error Handling** della console Amazon Lex, come nell'immagine seguente:

![Sezione di gestione degli errori nella scheda editor della console. È possibile specificare istruzioni di chiarimento e una frase di chiusura.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/how-works-20.png)


Con l'API, si possono configurare messaggi impostando i campi `clarificationPrompt` e `abortStatement` nell'operazione [PutBot](API_PutBot.md).

Se utilizzi una funzione Lambda con un intento, la funzione Lambda potrebbe restituire una risposta che indirizza Amazon Lex a chiedere l'intento di un utente. Se la funzione Lambda non fornisce tale messaggio, Amazon Lex utilizza la richiesta di chiarimento.

### Prompt di slot
<a name="msg-prompts-slots"></a>

È necessario specificare almeno un messaggio di prompt per ognuno degli slot obbligatori in un intento. In fase di esecuzione, Amazon Lex utilizza uno di questi messaggi per richiedere all'utente di fornire un valore per lo slot. Ad esempio, per uno slot `cityName`, il seguente è un prompt valido: 

```
Which city would you like to fly to?
```

Puoi impostare uno o più prompt per ogni slot utilizzando la console. Puoi anche creare gruppi di prompt utilizzando l'operazione [PutIntent](API_PutIntent.md). Per ulteriori informazioni, consulta [Gruppi di messaggi](#message-groups).

### Risposte
<a name="msg-prompts-response"></a>

Nella console, utilizza la sezione delle **risposte** per creare conversazioni dinamiche e coinvolgenti per il tuo bot. Puoi creare uno o più gruppi di messaggi per una risposta. In fase di esecuzione, Amazon Lex crea una risposta selezionando un messaggio da ogni gruppo di messaggi. Per ulteriori informazioni sui gruppi di messaggi, consulta [Gruppi di messaggi](#message-groups). 

Ad esempio, il primo gruppo di messaggi può contenere diversi saluti: "Salve", "Ciao" e "Saluti". Il secondo gruppo di messaggi può contenere diverse forme di presentazioni: "Io sono il bot per le prenotazioni" e "Questo è il bot per le prenotazioni". Un terzo gruppo di messaggi può comunicare le funzionalità del bot: "Posso noleggiare un'auto o prenotare un albergo", "Puoi noleggiare un'auto o prenotare un albergo" e "Posso aiutarti a noleggiare un'auto e prenotare un albergo".

Lex utilizza un messaggio da ogni gruppo di messaggi e crea risposte dinamiche dando origine a una conversazione. Ad esempio, un'interazione potrebbe essere la seguente:

![Una possibile conversazione con un bot.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/default-response-10b.png)


Un'altra potrebbe essere la seguente:

![Un'altra possibile conversazione con un bot.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/default-response-20c.png)


In entrambi i casi, l'utente può rispondere con un nuovo intento, ad esempio l'intento `BookCar` o `BookHotel`.

È possibile impostare il bot in modo che ponga una domanda di follow-up nella risposta. Ad esempio, per l'interazione precedente, puoi creare un quarto gruppo di messaggi con le domande seguenti: "Posso essere d'aiuto con un'auto o un albergo?", "Desideri effettuare una prenotazione ora?" e "C'è qualcosa che posso fare per te?". Per messaggi che includono "No" come risposta, puoi creare un prompt di follow-up. L'immagine seguente fornisce un esempio:

![Richiesta di follow-up in una conversazione con un bot.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/default-response-25a.png)


Per creare un prompt di follow-up, scegli **Attendi risposta utente**. Successivamente digita il messaggio o i messaggi che desideri inviare quando un utente dice "No". Quando crei una risposta da utilizzare come prompt di follow-up, è necessario specificare anche un'istruzione se la risposta all'istruzione è "No". Per un esempio, vedi le immagini seguenti.

![Configurazione dei messaggi per quando un utente dice «no».](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/default-response-30b.png)


Per aggiungere risposte a un intento con l'API, utilizza l'operazione `PutIntent`. Per specificare una risposta, imposta il campo `conclusionStatement` nella richiesta `PutIntent`. Per impostare un prompt di follow-up, imposta il campo `followUpPrompt` e includi l'istruzione da inviare se l'utente dice "No". Non puoi impostare entrambi i campi `conclusionStatement` e `followUpPrompt` nello stesso intento.

## Formati di messaggio supportati
<a name="msg-prompts-formats"></a>

Quando si utilizza l'[PostText](API_runtime_PostText.md)operazione o quando si utilizza l'[PostContent](API_runtime_PostContent.md)operazione con l'`Accept`intestazione impostata su`text/plain;charset=utf8`, Amazon Lex supporta messaggi nei seguenti formati:
+ `PlainText`—Il messaggio contiene testo UTF-8 semplice.
+ `SSML`—Il messaggio contiene testo formattato per l'output vocale.
+ `CustomPayload`—Il messaggio contiene un formato personalizzato che hai creato per il tuo cliente. Puoi definire il payload in base alle esigenze della tua applicazione.
+ `Composite`—Il messaggio è una raccolta di messaggi, uno per ogni gruppo di messaggi. Per ulteriori informazioni sui gruppi di messaggi, consulta [Gruppi di messaggi](#message-groups).

Per impostazione predefinita, Amazon Lex restituisce uno qualsiasi dei messaggi definiti per un particolare prompt. Ad esempio, se definisci cinque messaggi per ottenere un valore di slot, Amazon Lex sceglie uno dei messaggi in modo casuale e lo restituisce al client.

Se desideri che Amazon Lex restituisca un tipo specifico di messaggio al client in una richiesta in fase di esecuzione, imposta il parametro di `x-amzn-lex:accept-content-types` richiesta. La risposta si limita al tipo o ai tipi richiesti. Se è presente più di un messaggio del tipo specificato, Amazon Lex ne restituisce uno a caso. Per ulteriori informazioni sull'intestazione `x-amz-lex:accept-content-types`, consulta [Impostazione del tipo di risposta](context-mgmt-request-attribs.md#special-response).

## Gruppi di messaggi
<a name="message-groups"></a>

Un *gruppo di messaggi* è un insieme di risposte adatte a un particolare prompt. Usa i gruppi di messaggi quando desideri che il bot crei dinamicamente le risposte in una conversazione. Quando Amazon Lex restituisce una risposta all'applicazione client, sceglie casualmente un messaggio per ogni gruppo. Puoi creare un massimo di cinque gruppi di messaggi per ogni risposta. Ogni gruppo può contenere un massimo di cinque messaggi. Per esempi su come creare gruppi di messaggi nella console, consulta [Risposte](#msg-prompts-response).

Per creare un gruppo di messaggi, puoi utilizzare la console o le operazioni [PutBot](API_PutBot.md), [PutIntent](API_PutIntent.md) o [PutSlotType](API_PutSlotType.md) per assegnare il numero di gruppo a un messaggio. Se non crei un gruppo di messaggi o se crei solo un gruppo di messaggi, Amazon Lex invia un singolo messaggio sul `Message` campo. Le applicazioni dei client ricevono più messaggi in una risposta solo quando hai creato più di un gruppo di messaggi nella console oppure quando crei più di un gruppo di messaggi durante la creazione o l'aggiornamento di un intento con l'operazione [PutIntent](API_PutIntent.md). 

Quando Amazon Lex invia un messaggio da un gruppo, il `Message` campo della risposta contiene un oggetto JSON in escape che contiene i messaggi. L'esempio seguente mostra i contenuti del campo `Message` quando include più messaggi.

**Nota**  
L'esempio è stato formattato per la leggibilità. In una risposta non sono contenuti ritorni a capo (CR).

```
{\"messages\":[
   {\"type\":\"PlainText\",\"group\":0,\"value\":\"{{Plain text}}\"},
   {\"type\":\"SSML\",\"group\":1,\"value\":\"{{SSML text}}\"},
   {\"type\":\"CustomPayload\",\"group\":2,\"value\":\"{{Custom payload}}\"}
]}
```

È possibile impostare il formato dei messaggi. Il formato può essere uno dei seguenti:
+ PlainText—Il messaggio è in testo UTF-8 semplice.
+ SSML: il messaggio è SSML (Speech Synthesis Markup Language).
+ CustomPayload—Il messaggio è in un formato personalizzato specificato dall'utente.

Per controllare il formato dei messaggi che le operazioni `PostContent` e `PostText` restituiscono nel campo `Message`, imposta l'attributo della richiesta `x-amz-lex:accept-content-types`. Ad esempio, se si imposta l'intestazione a quanto segue, si ricevono solo messaggi di solo testo e SSML nella risposta:

```
x-amz-lex:accept-content-types: PlainText,SSML
```

Se si richiede un formato di messaggio specifico e un gruppo di messaggi non contiene quel messaggio con quel formato, ottieni un'eccezione `NoUsableMessageException`. Quando usi un gruppo di messaggi per raggruppare i messaggi per tipo, non utilizzare l'intestazione `x-amz-lex:accept-content-types`.

Per ulteriori informazioni sull'intestazione `x-amz-lex:accept-content-types`, consulta [Impostazione del tipo di risposta](context-mgmt-request-attribs.md#special-response).

## Schede di risposta
<a name="msg-prompts-resp-card"></a>

**Nota**  
Le schede di risposta non funzionano con la chat di Amazon Connect. Tuttavia, consulta [Aggiungere messaggi interattivi alla chat](https://docs.aws.amazon.com/connect/latest/adminguide/interactive-messages.html) per funzionalità simili.

Una *scheda di risposta* contiene un insieme di risposte appropriate per un prompt. Usa le schede di risposta per semplificare le interazioni per i tuoi utenti e aumentare la precisione dei tuoi bot riducendo errori tipografici nelle interazioni di testo. Puoi inviare una scheda di risposta per ogni richiesta che Amazon Lex invia alla tua applicazione client. Puoi utilizzare le schede di risposta con Facebook Messenger, Slack, Twilio e le tue applicazioni client.

Ad esempio, in un'applicazione per taxi, è possibile configurare un'opzione nella scheda di risposta per "Casa" e impostare il valore sull'indirizzo di casa dell'utente. Quando l'utente seleziona questa opzione, Amazon Lex riceve l'intero indirizzo come testo di input. Guarda l'immagine seguente:

![Un esempio di scheda di risposta.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/resp-console-5.png)


Puoi definire una scheda di risposta per i prompt seguenti:
+ Istruzione di conclusione
+ Prompt di conferma
+ Prompt di follow-up
+ Istruzione di rifiuto
+ Enunciazioni tipo slot

Puoi definire solo una scheda di risposta per ogni prompt. 

Puoi configurare le schede di risposta quando crei un intento. Puoi definire una scheda di risposta statica in fase di compilazione utilizzando la console o l'operazione [PutIntent](API_PutIntent.md). Oppure puoi definire una scheda di risposta dinamica in fase di esecuzione in una funzione Lambda. Se definisci entrambe le schede di risposta statica e dinamica, la scheda di risposta dinamica ha la precedenza. 

Amazon Lex invia schede di risposta nel formato comprensibile al cliente. Questo trasforma le schede di risposta per Facebook Messenger, Slack e Twilio. Per gli altri client, Amazon Lex invia una struttura JSON nella [PostText](API_runtime_PostText.md) risposta. Ad esempio, se il client è Facebook Messenger, Amazon Lex trasforma la scheda di risposta in un modello generico. Per ulteriori informazioni sui modelli generici di Facebook Messenger, consulta [Modello generico](https://developers.facebook.com/docs/messenger-platform/send-api-reference/generic-template) sul sito Web di Facebook. Per un esempio della struttura JSON, consulta [Generazione dinamica di schede di risposta](#msg-prompts-resp-card-dynamic).

Puoi utilizzare le schede di risposta solo con l'operazione [PostText](API_runtime_PostText.md). Non puoi utilizzare le schede di risposta con l'operazione [PostContent](API_runtime_PostContent.md). 

### Definizione di Schede di risposta statica
<a name="msg-prompts-resp-card-static"></a>

Definisci schede di risposta statiche con l'[PutBot](API_PutBot.md)operazione o la console Amazon Lex quando crei un intento. Una risposta statica viene definita contemporaneamente all'intento. Utilizza una scheda di risposta statica quando le risposte sono fisse. Supponiamo che stai creando un bot con un intento che ha uno slot per il gusto. Quando definisci lo slot del gusto, devi specificare i prompt, come illustrato nella schermata della console seguente:

![Editor dell'intento nella console.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/resp-console-10a.png)


Quando definisci i prompt, puoi facoltativamente associare una scheda di risposta e definire i dettagli all'[PutBot](API_PutBot.md)operazione oppure, nella console Amazon Lex, come mostrato nell'esempio seguente:

![La console mostra l'editor della scheda di risposta.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/resp-console-20a.png)


A questo punto, supponiamo che il tuo bot sia stato integrato con Facebook Messenger. L'utente può fare clic sui pulsanti per scegliere un gusto, come mostrato nell'illustrazione seguente:

![Scheda di risposta su Facebook Messenger.](http://docs.aws.amazon.com/it_it/lex/latest/dg/images/resp-fb-exampleA.png)


Per personalizzare il contenuto di una scheda di risposta, si può fare riferimento agli attributi della sessione. In fase di esecuzione, Amazon Lex sostituisce questi riferimenti con valori appropriati degli attributi di sessione. Per ulteriori informazioni, consulta [Impostazione degli attributi di sessione](context-mgmt-session-attribs.md). Per vedere un esempio, consulta [Utilizzo di una scheda di risposta](ex-resp-card.md).

### Generazione dinamica di schede di risposta
<a name="msg-prompts-resp-card-dynamic"></a>

Per generare schede di risposta in modo dinamico in fase di esecuzione, usa la funzione Lambda di inizializzazione e convalida per l'intento. Utilizza una scheda di risposta dinamica quando le risposte vengono determinate in fase di esecuzione nella funzione Lambda. In risposta all'input dell'utente, la funzione Lambda genera una scheda di risposta e la restituisce nella `dialogAction` sezione della risposta. Per ulteriori informazioni, consulta [Formato della risposta](lambda-input-response-format.md#using-lambda-response-format). 

Quanto segue è una risposta parziale di una funzione Lambda che mostra l'`responseCard`elemento. Questo genera un'esperienza utente simile a quella illustrata nella sezione precedente.

```
responseCard: {
  "version": 1,
  "contentType": "application/vnd.amazonaws.card.generic",
  "genericAttachments": [
    {
      "title": "What Flavor?",
      "subtitle": "What flavor do you want?",
      "imageUrl": "{{Link to image}}",
      "attachmentLinkUrl": "{{Link to attachment}}",
      "buttons": [
        {
          "text": "Lemon",
          "value": "lemon"
        },
        {
          "text": "Raspberry",
          "value": "raspberry"
        },
        {
          "text": "Plain",
          "value": "plain"
        }
      ]
    }
  ]
}
```

Per vedere un esempio, consulta [Pianifica un appuntamento](ex1-sch-appt.md).