Étape 2b (facultatif) : Vérification des détails du flux d'informations saisies (console) - Amazon Lex V1

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.

  1. L'utilisateur tape : I would like to order some flowers

    1. 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 code text de fin indique qu'il s'agit d'une demande d'API PostText (et non PostContent).

         

      • Corps de la demande – Inclut l'entrée utilisateur (inputText) et un champ sessionAttributes vide. Lorsque le client effectue la première demande, il n'existe aucun attribut de session. La fonction Lambda initiera ces attributs ultérieurement.

    2. À partir duinputText, 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.

      
                                    Message avec des données JSON qui est envoyées au client.

      Le client affiche le message dans la réponse.

  2. L'utilisateur tape : roses

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

    2. 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 :

      
                                    Données JSON envoyées en réponse à une demande pour le  FlowerType  slot.

      Le client affiche le message dans la réponse.

  3. L'utilisateur tape : tomorrow

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

    2. 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 message JSON est retourné après avoir demandé le  PickupDate  slot.

      Le client affiche le message dans la réponse.

  4. L'utilisateur tape : 6 pm

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

    2. 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 :

      
                                    Message avec des données JSON demandant une confirmation de la commande de fleurs.

      Le client affiche le message dans la réponse.

  5. L'utilisateur tape : Yes

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

    2. 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'OrderFlowersintention est configurée ReturnIntent 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.

      
                                    Données JSON envoyées lorsque la conversation est terminée et que la commande est prête à être satisfaite.

      Amazon Lex a défini le dialogState paramètre surReadyForFulfillment. Le client peut alors traiter l'intention.

  6. 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)