

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à.

# Fase 2a (facoltativo): Revisione dei dettagli del flusso di informazioni parlate (console)
<a name="gs-bp-details-postcontent-flow"></a>

Questa sezione spiega il flusso di informazioni tra il client e Amazon Lex quando il client utilizza la voce per inviare richieste. Per ulteriori informazioni, consulta [PostContent](API_runtime_PostContent.md). 

1. L'utente afferma: Vorrei ordinare dei fiori.

   1. Il client (console) invia la seguente richiesta [PostContent](API_runtime_PostContent.md) ad Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/content HTTP/1.1
      x-amz-lex-session-attributes: "e30=" 
      Content-Type: "audio/x-l16; sample-rate=16000; channel-count=1"
      Accept: "audio/mpeg"
      
      
      Request body
      input stream
      ```

      Sia l'URI della richiesta che il corpo forniscono informazioni ad Amazon Lex:
      + URI della richiesta: fornisce il nome del bot (`OrderFlowers`), l'alias del bot (`$LATEST`) e il nome utente (una stringa casuale che identifica l'utente). `content`indica che si tratta di una richiesta `PostContent` API (non di una `PostText` richiesta).
      + Intestazioni della richiesta
        + `x-amz-lex-session-attributes`— Il valore con codifica base64 rappresenta «\$1\$1». Quando il client effettua la prima richiesta non vi sono attributi della sessione. 
        + `Content-Type`: riflette il formato audio.
      + Corpo della richiesta: il flusso audio dell'input utente ("I would like to order some flowers.").
**Nota**  
Se invece di usare la voce, l'utente sceglie di inviare una parte di testo ("I would like to order some flowers") all'API `PostContent`, il corpo della richiesta sarà l'input utente. L'intestazione `Content-Type` viene impostata di conseguenza:  

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/content HTTP/1.1
      x-amz-lex-session-attributes: "e30="
      Content-Type: "text/plain; charset=utf-8"
      Accept: accept
      
      Request body
      input stream
      ```

   1. Dal flusso di input, Amazon Lex rileva l'intento ()`OrderFlowers`. Quindi, sceglie uno degli slot di intenti (in questo caso, `FlowerType`) e uno dei relativi prompt per l'ottenimento del valore, infine invia una risposta con le seguenti intestazioni: 

      ```
      x-amz-lex-dialog-state:ElicitSlot
      x-amz-lex-input-transcript:I would like to order some flowers.
      x-amz-lex-intent-name:OrderFlowers
      x-amz-lex-message:What type of flowers would you like to order?
      x-amz-lex-session-attributes:e30=
      x-amz-lex-slot-to-elicit:FlowerType
      x-amz-lex-slots:eyJQaWNrdXBUaW1lIjpudWxsLCJGbG93ZXJUeXBlIjpudWxsLCJQaWNrdXBEYXRlIjpudWxsfQ==
      ```

      I valori dell'intestazione forniscono le informazioni seguenti:
      + `x-amz-lex-input-transcript`: fornisce la trascrizione dell'audio (input utente) dalla richiesta
      + `x-amz-lex-message`— Fornisce la trascrizione dell'audio che Amazon Lex restituisce nella risposta
      + `x-amz-lex-slots`: la versione codificata base64 di slot e valori:

        ```
        {"PickupTime":null,"FlowerType":null,"PickupDate":null}
        ```
      + `x-amz-lex-session-attributes`: la versione codificata base64 degli attributi della sessione (\$1\$1)

      Il client riproduce l'audio nel corpo della risposta.

1. L'utente pronuncia: rose

   1. Il client (console) invia la seguente richiesta [PostContent](API_runtime_PostContent.md) ad Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/content HTTP/1.1
      x-amz-lex-session-attributes: "e30="
      Content-Type: "audio/x-l16; sample-rate=16000; channel-count=1" 
      Accept: "audio/mpeg"
      
      
      Request body
      input stream ("roses")
      ```

      Il corpo della richiesta è il flusso audio dell'input utente (rose). `sessionAttributes` rimane vuoto.

   1. Amazon Lex interpreta il flusso di input nel contesto dell'intento corrente (ricorda di aver chiesto all'utente informazioni relative allo slot). `FlowerType` Amazon Lex aggiorna innanzitutto il valore dello slot per l'intento corrente. Quindi sceglie un altro slot (`PickupDate`), insieme a uno dei relativi messaggi di richiesta (Quando vuoi ritirare le rose?), e restituisce una risposta con le seguenti intestazioni:

      ```
      x-amz-lex-dialog-state:ElicitSlot
      x-amz-lex-input-transcript:roses
      x-amz-lex-intent-name:OrderFlowers
      x-amz-lex-message:When do you want to pick up the roses?
      x-amz-lex-session-attributes:e30=
      x-amz-lex-slot-to-elicit:PickupDate
      x-amz-lex-slots:eyJQaWNrdXBUaW1lIjpudWxsLCJGbG93ZXJUeXBlIjoicm9zaSdzIiwiUGlja3VwRGF0ZSI6bnVsbH0=
      ```

      I valori dell'intestazione forniscono le informazioni seguenti:
      + `x-amz-lex-slots`: la versione codificata base64 di slot e valori:

        ```
        {"PickupTime":null,"FlowerType":"roses","PickupDate":null}
        ```
      + `x-amz-lex-session-attributes`: la versione codificata base64 degli attributi della sessione (\$1\$1)

      Il client riproduce l'audio nel corpo della risposta.

1. L'utente pronuncia: domani

   1. Il client (console) invia la seguente richiesta [PostContent](API_runtime_PostContent.md) ad Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/content HTTP/1.1
      x-amz-lex-session-attributes: "e30="
      Content-Type: "audio/x-l16; sample-rate=16000; channel-count=1"
      Accept: "audio/mpeg"
      
      
      Request body
      input stream ("tomorrow")
      ```

      Il corpo della richiesta è il flusso audio dell'input utente ("tomorrow"). `sessionAttributes` rimane vuoto.

   1. Amazon Lex interpreta il flusso di input nel contesto dell'intento corrente (ricorda di aver chiesto all'utente informazioni relative allo slot). `PickupDate` Amazon Lex aggiorna il valore slot (`PickupDate`) per l'intento corrente. Quindi sceglie un altro slot per recuperare il valore di (`PickupTime`) e uno dei prompt di ottenimento del valore (Quando vuoi ritirare le rose il 18/03/2018?), infine restituisce una risposta con le seguenti intestazioni:

      ```
      x-amz-lex-dialog-state:ElicitSlot
      x-amz-lex-input-transcript:tomorrow
      x-amz-lex-intent-name:OrderFlowers
      x-amz-lex-message:When do you want to pick up the roses on 2017-03-18?
      x-amz-lex-session-attributes:e30=
      x-amz-lex-slot-to-elicit:PickupTime
      x-amz-lex-slots:eyJQaWNrdXBUaW1lIjpudWxsLCJGbG93ZXJUeXBlIjoicm9zaSdzIiwiUGlja3VwRGF0ZSI6IjIwMTctMDMtMTgifQ==
      x-amzn-RequestId:3a205b70-0b69-11e7-b447-eb69face3e6f
      ```

      I valori dell'intestazione forniscono le informazioni seguenti:
      + `x-amz-lex-slots`: la versione codificata base64 di slot e valori:

        ```
        {"PickupTime":null,"FlowerType":"roses","PickupDate":"2017-03-18"}
        ```
      + `x-amz-lex-session-attributes`: la versione codificata base64 degli attributi della sessione (\$1\$1)

      Il client riproduce l'audio nel corpo della risposta.

1. L'utente pronuncia: 18

   1. Il client (console) invia la seguente richiesta [PostContent](API_runtime_PostContent.md) ad Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/content HTTP/1.1
      x-amz-lex-session-attributes: "e30="
      Content-Type: "text/plain; charset=utf-8"
      Accept: "audio/mpeg"
      
      
      Request body
      input stream ("6 pm")
      ```

      Il corpo della richiesta è il flusso audio dell'input utente ("6 pm"). `sessionAttributes` rimane vuoto.

   1. Amazon Lex interpreta il flusso di input nel contesto dell'intento corrente (ricorda di aver chiesto all'utente informazioni relative allo slot). `PickupTime` Innanzitutto aggiorna il valore dello slot dell'intento corrente. 

      Ora Amazon Lex rileva di disporre di informazioni per tutti gli slot. Tuttavia, poiché l'intento `OrderFlowers` è configurato con un messaggio di conferma, Pertanto, Amazon Lex necessita di una conferma esplicita da parte dell'utente prima di poter procedere a soddisfare l'intento. e pertanto invia una risposta con le intestazioni seguenti per richiedere una conferma prima di ordinare i fiori:

      ```
      x-amz-lex-dialog-state:ConfirmIntent
      x-amz-lex-input-transcript:six p. m.
      x-amz-lex-intent-name:OrderFlowers
      x-amz-lex-message:Okay, your roses will be ready for pickup by 18:00 on 2017-03-18.  Does this sound okay?
      x-amz-lex-session-attributes:e30=
      x-amz-lex-slots:eyJQaWNrdXBUaW1lIjoiMTg6MDAiLCJGbG93ZXJUeXBlIjoicm9zaSdzIiwiUGlja3VwRGF0ZSI6IjIwMTctMDMtMTgifQ==
      x-amzn-RequestId:083ca360-0b6a-11e7-b447-eb69face3e6f
      ```

      I valori dell'intestazione forniscono le informazioni seguenti:
      + `x-amz-lex-slots`: la versione codificata base64 di slot e valori:

        ```
        {"PickupTime":"18:00","FlowerType":"roses","PickupDate":"2017-03-18"}
        ```
      + `x-amz-lex-session-attributes`: la versione codificata base64 degli attributi della sessione (\$1\$1)

      Il client riproduce l'audio nel corpo della risposta.

1. L'utente pronuncia: Sì

   1. Il client (console) invia la seguente richiesta [PostContent](API_runtime_PostContent.md) ad Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/content HTTP/1.1
      x-amz-lex-session-attributes: "e30="
      Content-Type: "audio/x-l16; sample-rate=16000; channel-count=1"
      Accept: "audio/mpeg"
      
      
      Request body
      input stream ("Yes")
      ```

      Il corpo della richiesta è il flusso audio dell'input utente ("Yes"). `sessionAttributes` rimane vuoto.

   1. Amazon Lex interpreta il flusso di input e capisce che l'utente desidera procedere con l'ordine. L'intento `OrderFlowers` è configurato con `ReturnIntent` come attività di l'attività di adempimento. Ciò indica ad Amazon Lex di restituire tutti i dati sulle intenzioni al client. Amazon Lex restituisce una risposta con quanto segue: 

      

      ```
      x-amz-lex-dialog-state:ReadyForFulfillment
      x-amz-lex-input-transcript:yes
      x-amz-lex-intent-name:OrderFlowers
      x-amz-lex-session-attributes:e30=
      x-amz-lex-slots:eyJQaWNrdXBUaW1lIjoiMTg6MDAiLCJGbG93ZXJUeXBlIjoicm9zaSdzIiwiUGlja3VwRGF0ZSI6IjIwMTctMDMtMTgifQ==
      ```

      L'intestazione della risposta `x-amz-lex-dialog-state` è impostata su `ReadyForFulfillment`. Quindi il client può realizzare l'intento.

1. A questo punto, esegui nuovamente il test del bot. Per stabilire un nuovo contesto (utente), scegli il collegamento **Clear** (Cancella) nella console. Fornisci i dati per l'intento `OrderFlowers` e includi alcuni dati non validi. Esempio: 
   + Gelsomino come tipo di fiore (non è uno dei tipi di fiore supportati)
   + Ieri come giorno in cui si desidera ritirare i fiori

   Nota che il bot accetta questi valori perché non disponi di alcun codice per inizializzare e convalidare i dati utente. Nella sezione successiva, aggiungi una funzione Lambda per eseguire questa operazione. Nota quanto segue sulla funzione Lambda:
   + Convalida i dati dello slot dopo ogni input utente. Soddisfa l'intento alla fine. Ciò significa che il bot elabora l'ordine di fiori e restituisce un messaggio all'utente invece che restituire semplicemente i dati dello slot al client. Per ulteriori informazioni, consulta [Utilizzo delle funzioni Lambda](using-lambda.md).
   + Inoltre, imposta gli attributi di sessione. Per ulteriori informazioni sugli attributi di sessione, consulta [PostText](API_runtime_PostText.md). 

      Al termine della sezione Nozioni di base, potrai eseguire gli esercizi aggiuntivi ([Esempi aggiuntivi: creazione di bot Amazon Lex](additional-exercises.md)). [Prenota un viaggio](ex-book-trip.md) utilizza gli attributi di sessione per condividere le informazioni tra intenti per impegnarsi in una conversazione dinamica con l'utente.

**Fase succcessiva**  
[Fase 3: Creare una funzione Lambda (console)](gs-bp-create-lambda-function.md)