Impostazione degli attributi di richiesta - Amazon Lex versione 1

Se utilizzi Amazon Lex V2, consulta invece la guida Amazon Lex V2.

 

Se utilizzi Amazon Lex V1, ti consigliamo di aggiornare i bot ad Amazon Lex V2. Non stiamo più aggiungendo nuove funzionalità alla V1 e consigliamo vivamente di utilizzare la V2 per tutti i nuovi bot.

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

Impostazione degli attributi di richiesta

Gli attributi di richiesta contengono informazioni specifiche sulla richiesta e si applicano solo alla richiesta corrente. Un'applicazione client invia queste informazioni ad Amazon Lex. Utilizza gli attributi di richiesta per inviare informazioni che non devono essere conservate per l'intera sessione. Puoi creare i tuoi attributi di richiesta personali oppure utilizzare quelli predefiniti. Per inviare gli attributi di richiesta, utilizza l'intestazione x-amz-lex-request-attributes in un PostContent o il campo requestAttributes in una richiesta PostText. Poiché, a differenza degli attributi di sessione, gli attributi di richiesta non vengono mantenuti tra richieste diverse, non vengono restituiti nelle risposte PostContent o PostText.

Nota

Per inviare informazioni che vengano mantenute tra richieste diverse, utilizza gli attributi di sessione.

Il namespace x-amz-lex: è riservato agli attributi di richiesta predefiniti. Non creare attributi di richiesta con il prefisso x-amz-lex:.

Impostazione di attributi di richiesta predefiniti

Amazon Lex fornisce attributi di richiesta predefiniti per gestire il modo in cui elabora le informazioni inviate al bot. Gli attributi non vengono salvati per l'intera sessione, quindi dovrai inviare gli attributi predefiniti in ogni richiesta. Tutti gli attributi predefiniti sono nel namespace x-amz-lex:.

Oltre ai seguenti attributi predefiniti, Amazon Lex fornisce attributi predefiniti per le piattaforme di messaggistica. Per un elenco di questi attributi, consulta Distribuzione di un bot Amazon Lex su una piattaforma di messaggistica.

Impostazione del tipo di risposta

Se utilizzi due applicazioni client che hanno funzionalità diverse, potresti dover limitare il formato dei messaggi in una risposta. Ad esempio, potresti voler limitare i messaggi inviati a un client Web al testo normale, ma permettere a un client mobile di utilizzare sia testo normale sia il formato SSML (Speech Synthesis Markup Language). Per impostare il formato dei messaggi restituiti dalle operazioni PostContent e PostText, utilizza l'attributo di richiesta x-amz-lex:accept-content-types".

Puoi impostare l'attributo su una qualsiasi combinazione dei seguenti tipi di messaggi:

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

Amazon Lex restituisce solo i messaggi con il tipo specificatoMessage nel campo della risposta. Puoi impostare più di un valore separandoli con una virgola. Se utilizzi dei gruppi di messaggi, ogni gruppo di messaggi deve contenere almeno un messaggio del tipo specificato. In caso contrario, viene visualizzato un errore NoUsableMessageException. Per ulteriori informazioni, consulta Gruppi di messaggi.

Nota

L'attributo di richiesta x-amz-lex:accept-content-types non ha alcun effetto sul contenuto del corpo HTML. Il contenuto di una risposta dell'operazione PostText è sempre testo normale UTF-8. Il corpo di una risposta dell'operazione PostContent contiene dati nel formato impostato nell'intestazione Accept nella richiesta.

Impostazione del fuso orario preferito

Per impostare il fuso orario dell'utente da utilizzare per risolvere le date, utilizza l'attributo di richiesta x-amz-lex:time-zone. Se non specifichi un fuso orario nell'attributo x-amz-lex:time-zone, il valore predefinito dipende della regione che utilizzi per il tuo bot.

Regione Fuso orario predefinito
Stati Uniti orientali (Virginia settentrionale) America/New_York
Stati Uniti occidentali (Oregon) America/Los_Angeles
Asia Pacifico (Singapore) Asia/Singapore
Asia Pacifico (Sydney) Australia/Sydney
Asia Pacifico (Tokyo) Asia/Tokyo
Europa (Francoforte) Europe/Berlin
Europa (Irlanda) Europe/Dublin
Europa (Londra) Europe/London

Ad esempio, se l'utente risponde alla richiesta «tomorrowIn che giorno desideri che il pacco venga consegnato?» la data effettiva di consegna del pacco dipende dal fuso orario dell'utente. Ad esempio, quando sono le 02:00 del 16 settembre a New York, sono le 23:00 del 15 settembre a Los Angeles. Se il servizio è attivo nella regione degli Stati Uniti orientali (Virginia settentrionale) e una persona a Los Angeles ordina un pacco da consegnare «domani» utilizzando il fuso orario predefinito, il pacco verrà consegnato il 17, non il 16. Se invece imposti l'attributo di richiesta x-amz-lex:time-zone su America/Los_Angeles, il pacco verrà consegnato il giorno 16.

Puoi impostare l'attributo su uno dei nomi dei fusi orari della IANA (Internet Assigned Number Authority). Per l'elenco dei nomi dei fusi orari, consulta l'elenco dei fusi orari del database tz su Wikipedia.

Impostazione di attributi di richiesta definiti dall'utente

Un attributo di richiesta definito dall'utente è un'informazione che invii al tuo bot con ciascuna richiesta. Invii l'informazione nell'intestazione amz-lex-request-attributes di una richiesta PostContent o nel campo requestAttributes di una richiesta PostText.

Per inviare gli attributi della richiesta ad Amazon Lex, è necessario creare una string-to-string mappa degli attributi. Di seguito viene spiegato come mappare gli attributi di richiesta:

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

Per l'operazione PostText, inserisci la mappa nel corpo della richiesta utilizzando il campo requestAttributes, come segue:

"requestAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" }

Per l'operazione PostContent, applica la codifica base64 alla mappa e inviala come l'intestazione x-amz-lex-request-attributes.

Per inviare dati binari o strutturati in un attributo di richiesta, devi dapprima trasformarli in una stringa semplice. Per ulteriori informazioni, consulta Impostazione di attributi complessi.