Si vous utilisez Amazon Lex V2, consultez plutôt le guide Amazon Lex V2.
Si vous utilisez Amazon Lex V1, nous vous recommandons de mettre à niveau vos robots vers Amazon Lex V2. Nous n'ajoutons plus de nouvelles fonctionnalités à la V1 et recommandons vivement d'utiliser la V2 pour tous les nouveaux robots.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Étape 2b (facultatif) : Vérification des détails du flux d'informations saisies (console)
Cette section décrit le flux d'informations entre le client et Amazon Lex dans lequel le client utilise l'API PostText
pour envoyer des demandes. Pour de plus amples informations, veuillez consulter PostText.
-
L'utilisateur tape : I would like to order some flowers
-
Le client (console) envoie la demande PostText suivante à Amazon Lex :
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "I would like to order some flowers", "sessionAttributes": {} }L'URI et le corps de la demande fournissent des informations à Amazon Lex :
-
URI de demande — Fournit le nom du bot (
OrderFlowers
), l'alias du bot ($LATEST
) et le nom d'utilisateur (chaîne aléatoire identifiant l'utilisateur). Le codetext
de fin indique qu'il s'agit d'une demande d'APIPostText
(et nonPostContent
). -
Corps de la demande – Inclut l'entrée utilisateur (
inputText
) et un champsessionAttributes
vide. Lorsque le client effectue la première demande, il n'existe aucun attribut de session. La fonction Lambda initiera ces attributs ultérieurement.
-
-
À partir du
inputText
, Amazon Lex détecte l'intention (OrderFlowers
). Cette intention ne comporte aucun crochet de code (c'est-à-dire les fonctions Lambda) pour l'initialisation et la validation des données saisies par l'utilisateur ou leur exécution.Amazon Lex choisit l'un des emplacements de l'intention (
FlowerType
) pour obtenir la valeur. Il sélectionne aussi l'une des invites d'obtention de valeur pour l'option (toutes faisant partie de la configuration d'intention), puis il renvoie la réponse suivante au client. La console affiche le message dans la réponse à l'utilisateur.Le client affiche le message dans la réponse.
-
-
L'utilisateur tape : roses
-
Le client (console) envoie la demande PostText suivante à Amazon Lex :
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "roses", "sessionAttributes": {} }Dans le corps de la demande,
inputText
fournit l'entrée utilisateur.sessionAttributes
reste vide. -
Amazon Lex interprète d'abord le
inputText
dans le contexte de l'intention actuelle : le service se souvient qu'il a demandé à l'utilisateur concerné des informations sur le slot.FlowerType
Amazon Lex met d'abord à jour la valeur de l'emplacement en fonction de l'intention actuelle, puis choisit un autre emplacement (PickupDate
) avec l'un de ses messages d'invite : quel jour souhaitez-vous que les roses soient récupérées ? —pour le slot.
Amazon Lex renvoie ensuite la réponse suivante :
Le client affiche le message dans la réponse.
-
-
L'utilisateur tape : tomorrow
-
Le client (console) envoie la demande PostText suivante à Amazon Lex :
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "tomorrow", "sessionAttributes": {} }Dans le corps de la demande,
inputText
fournit l'entrée utilisateur.sessionAttributes
reste vide. -
Amazon Lex interprète d'abord le
inputText
dans le contexte de l'intention actuelle : le service se souvient qu'il a demandé à l'utilisateur concerné des informations sur le slot.PickupDate
Amazon Lex met à jour la valeur de slot (PickupDate
) en fonction de l'intention actuelle. Il choisit une autre option pour laquelle obtenir une valeur (PickupTime
). Il renvoie l'une des questions d'identification de valeur : livrer les roses à quelle heure le 05/01/2017 ? —au client.
Amazon Lex renvoie ensuite la réponse suivante :
Le client affiche le message dans la réponse.
-
-
L'utilisateur tape : 6 pm
-
Le client (console) envoie la demande PostText suivante à Amazon Lex :
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "6 pm", "sessionAttributes": {} }Dans le corps de la demande,
inputText
fournit l'entrée utilisateur.sessionAttributes
reste vide. -
Amazon Lex interprète d'abord le
inputText
dans le contexte de l'intention actuelle : le service se souvient qu'il a demandé à l'utilisateur concerné des informations sur le slot.PickupTime
Amazon Lex met d'abord à jour la valeur de l'emplacement en fonction de l'intention actuelle. Amazon Lex détecte désormais qu'il possède des informations pour tous les emplacements.L'intention
OrderFlowers
est configurée avec un message de confirmation. Amazon Lex a donc besoin d'une confirmation explicite de la part de l'utilisateur avant de pouvoir réaliser son intention. Amazon Lex envoie le message suivant au client pour lui demander une confirmation avant de commander les fleurs :Le client affiche le message dans la réponse.
-
-
L'utilisateur tape : Yes
-
Le client (console) envoie la demande PostText suivante à Amazon Lex :
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "Yes", "sessionAttributes": {} }Dans le corps de la demande,
inputText
fournit l'entrée utilisateur.sessionAttributes
reste vide. -
Amazon Lex interprète le
inputText
dans le contexte de la confirmation de l'intention actuelle. Il comprend que l'utilisateur souhaite continuer avec la commande. L'OrderFlowers
intention est configuréeReturnIntent
comme activité d'exécution (il n'existe aucune fonction Lambda pour répondre à l'intention). Par conséquent, Amazon Lex renvoie les données d'emplacement suivantes au client.Amazon Lex a défini le
dialogState
paramètre surReadyForFulfillment
. Le client peut alors traiter l'intention.
-
-
Maintenant, retestez le bot. Pour ce faire, vous devez choisir le lien Effacer dans la console pour établir un nouveau contexte (nouvel utilisateur). A présent, en fournissant des données pour l'intention de commande de fleurs, essayez de fournir des données non valides. Par exemple :
-
Jasmine comme type de fleur (ce n'est pas l'un des types de fleur pris en charge).
-
Yesterday comme jour pendant lequel vous souhaitez récupérer les fleurs.
Notez que le bot accepte ces valeurs parce que vous n'avez pas de code pour initialiser/valider les données utilisateur. Dans la section suivante, vous allez ajouter une fonction Lambda à cet effet. Notez ce qui suit à propos de la fonction Lambda :
-
La fonction Lambda valide les données du slot après chaque saisie par l'utilisateur. Elle traite l'intention à la fin. Autrement dit, le bot traite la commande de fleur et renvoie un message à l'utilisateur au lieu de simplement renvoyer des données d'option au client. Pour de plus amples informations, veuillez consulter Utilisation des fonctions Lambda.
-
La fonction Lambda définit également les attributs de session. Pour en savoir plus sur les attributs de session, consultez PostText.
Une fois que vous avez terminé la section de mise en route, vous pouvez faire les exercices suivants (Exemples supplémentaires : création de robots Amazon Lex ). Réservez un voyage utilise des attributs de session pour partager des informations entre les intentions afin d'engager une conversation dynamique avec l'utilisateur.
-
Étape suivante
Étape 3 : Création d'une fonction Lambda (console)