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à.
Pianifica un appuntamento
L'esempio di bot in questo esercizio consente di pianificare gli appuntamenti per uno studio dentistico. L'esempio illustra inoltre l'utilizzo di schede di risposta per ottenere l'input utente mediante pulsanti. Più precisamente, l'esempio illustra la generazione dinamica di schede di risposta durante la fase di runtime.
Puoi configurare le schede di risposta in fase di compilazione (chiamate anche schede di risposta statiche) o generarle dinamicamente in una AWS Lambda funzione. In questo esempio, il bot utilizza le seguenti schede di risposta:
-
Una scheda di risposta che elenca i pulsanti per tipo di appuntamento. Vedi l'immagine seguente per un esempio:
-
Una scheda di risposta che elenca i pulsanti per data dell'appuntamento. Vedi l'immagine seguente per un esempio:
-
Una scheda di risposta che elenca i pulsanti per confermare l'ora suggerita per l'appuntamento. Vedi l'immagine seguente per un esempio:
Le date e gli orari disponibili per l'appuntamento variano, di conseguenza è necessario generare schede di risposta in fase di runtime. Si utilizza una AWS Lambda funzione per generare queste schede di risposta in modo dinamico. La funzione Lambda restituisce le schede di risposta nella sua risposta ad Amazon Lex. Amazon Lex include la scheda di risposta nella risposta al cliente.
Se un client (ad esempio, Facebook Messenger) supporta le schede di risposta, l'utente può scegliere uno dei pulsanti oppure digitare la risposta. In caso contrario, l'utente digita semplicemente la risposta.
Oltre al pulsante illustrato nell'esempio precedente, è anche possibile includere immagini, allegati e altre informazioni utili da visualizzare sulle schede di risposta. Per informazioni sulle schede di risposta, consulta Schede di risposta.
In questo esercizio, devi effettuare le seguenti operazioni:
-
Crea e testa un bot (utilizzando il ScheduleAppointment blueprint). Per questo esercizio, utilizzi un piano di bot per configurare ed eseguire il test del bot in tempi brevi. Per un elenco dei piani disponibili, consulta Amazon Lex eAWS LambdaPiani. Questo bot è preconfigurato con un intento (
MakeAppointment
). -
Crea e testa una funzione Lambda (utilizzando il lex-make-appointment-python blueprint fornito da Lambda). Si configura l'
MakeAppointment
intenzione di utilizzare questa funzione Lambda come code hook per eseguire attività di inizializzazione, convalida ed evasione.Nota
La funzione Lambda di esempio fornita mostra una conversazione dinamica basata sulla disponibilità simulata di un appuntamento dal dentista. In un'applicazione reale, puoi utilizzare un calendario reale per impostare un appuntamento.
-
Aggiorna la configurazione dell'
MakeAppointment
intento per utilizzare la funzione Lambda come code hook. Quindi, prova l'esperienza. end-to-end -
Pubblica il bot di pianificazione degli appuntamenti su Facebook Messenger in modo da poter vedere le schede di risposta in azione (il client nella console Amazon Lex attualmente non supporta le schede di risposta).
Le sezioni seguenti forniscono informazioni di riepilogo sui piani utilizzati in questo esercizio.
Argomenti
- Panoramica del Bot Blueprint () ScheduleAppointment
- Panoramica del Lambda Function Blueprint () lex-make-appointment-python
- Fase 1: creare un bot Amazon Lex
- Fase 2: Creare una funzione Lambda
- Fase 3. Aggiornamento dell'intento: configurazione di un hook di codice
- Fase 4. Distribuzione del bot sulla piattaforma Facebook Messenger
- Dettagli del flusso di informazioni
Panoramica del Bot Blueprint () ScheduleAppointment
Il ScheduleAppointment blueprint utilizzato per creare un bot per questo esercizio è preconfigurato con quanto segue:
-
Tipi di slot: un tipo di slot personalizzato denominato
AppointmentTypeValue
, con i valori di enumerazioneroot canal
,cleaning
ewhitening
. -
Intento: un intento (
MakeAppointment
), preconfigurato come segue:-
Slot: l'intento è configurato con i seguenti slot:
-
Slot
AppointmentType
del tipo personalizzatoAppointmentTypes
. -
Slot
Date
del tipo integratoAMAZON.DATE
. -
Slot
Time
del tipo integratoAMAZON.TIME
.
-
-
Enunciazioni: l'intento è preconfigurato con le seguenti enunciazioni:
-
"I would like to book an appointment"
-
"Book an appointment"
-
«Prenota un {}AppointmentType»
Se l'utente pronuncia uno di questi termini, Amazon Lex determina che
MakeAppointment
è questo l'intento e quindi utilizza le istruzioni per ottenere i dati dello slot. -
-
Messaggi di richiesta: l'intento è preconfigurato con i seguenti messaggi di richiesta:
-
Messaggio di richiesta per lo slot
AppointmentType
: "What type of appointment would you like to schedule?" -
Richiedi lo
Date
slot: «Quando devo programmare il tuo {}?» AppointmentType -
Richiedi lo
Time
slot: «A che ora vuoi programmare il {AppointmentType}?» e"At what time on {Date}?"
-
Messaggio di richiesta di conferma: "{Time} is available, should I go ahead and book your appointment?"
-
Messaggio di annullamento: "Okay, I will not schedule an appointment."
-
-
Panoramica del Lambda Function Blueprint () lex-make-appointment-python
La funzione Lambda blueprint (lex-make-appointment-python) è un hook di codice per i bot che crei utilizzando il blueprint bot. ScheduleAppointment
Questo codice blueprint della funzione Lambda può eseguire sia attività di inizializzazione/convalida che di adempimento.
-
Il codice della funzione Lambda mostra una conversazione dinamica basata su esempi di disponibilità per un appuntamento dal dentista (nelle applicazioni reali, è possibile utilizzare un calendario). Per il giorno o la data che l'utente specifica, il codice viene configurato come segue:
-
Se non ci sono appuntamenti disponibili, la funzione Lambda restituisce una risposta che ordina ad Amazon Lex di richiedere all'utente un altro giorno o data (impostando
dialogAction
il tipo su.ElicitSlot)
Per ulteriori informazioni, consulta Formato della risposta. -
Se è disponibile un solo appuntamento nel giorno o nella data specificati, la funzione Lambda suggerisce l'ora disponibile nella risposta e indirizza Amazon Lex a ottenere la conferma dell'utente impostando
dialogAction
nella risposta su.ConfirmIntent
Ciò illustra il modo in cui puoi migliorare l'esperienza dell'utente suggerendo in modo proattivo l'ora disponibile per un appuntamento. -
Se sono disponibili più appuntamenti, la funzione Lambda restituisce un elenco di orari disponibili nella risposta ad Amazon Lex. Amazon Lex restituisce una risposta al client con il messaggio della funzione Lambda.
-
-
Come gancio del codice di adempimento, la funzione Lambda restituisce un messaggio di riepilogo che indica che è stato pianificato un appuntamento (ovvero, l'intento è soddisfatto).
Nota
In questo esempio, viene descritto come utilizzare le schede di risposta. La funzione Lambda costruisce e restituisce una scheda di risposta ad Amazon Lex. La scheda di risposta elenca i giorni e le ore disponibili come pulsanti tra cui scegliere. Quando si testa il bot utilizzando il client fornito dalla console Amazon Lex, non è possibile visualizzare la scheda di risposta. Per visualizzarla, devi integrare il bot in una piattaforma di messaggistica come Facebook Messenger. Per istruzioni, consulta Integrazione di un Amazon Lex Bot con Facebook Messenger. Per ulteriori informazioni sulle schede di risposta, consultare Gestione dei messaggi .
Quando Amazon Lex richiama la funzione Lambda, trasmette i dati degli eventi come input. Uno dei campi evento è invocationSource
quello utilizzato dalla funzione Lambda per scegliere tra un'attività di convalida dell'input e un'attività di adempimento. Per ulteriori informazioni, consulta Formato dell'evento di input.
Fase succcessiva
Fase 1: creare un bot Amazon Lex