ChatBot: Créer un chatbot à l’aide d’Amazon Lex

ChatBot: Créer un chatbot à l'aide d'Amazon Lex

Amazon Lex est un Amazon Web Service (AWS) utilisé pour créer des interfaces conversationnelles (ou s) à l’aide de la voix et du texte. Lex est le même moteur de conversation qui permet à Amazon Alexa et il est désormais disponible pour les développeurs de créer des s. Créer un avec Lex est simple, rapide et ne nécessite aucune expertise en apprentissage approfondi.

Avant de passer à la construction d’un , familiarisons-nous avec quelques concepts de Lex.

Intention: Une intention représente une action que l’utilisateur souhaite effectuer. Un bot aura une ou plusieurs intentions associées. Par exemple, un bot de commerce électronique aura l’intention de passer une commande et de vérifier l’état de la commande. Chaque intention aura un nom descriptif comme « PlaceOrder », « CheckOrderStatus », etc.

Énoncés : Les énoncés sont des exemples de phrases que les utilisateurs utilisent généralement pour exprimer leur intention. Par exemple, un utilisateur peut dire « Vérifier le statut de ma commande » ou « Quel est le statut de ma commande », etc. Une intention peut être associée à un ou plusieurs énoncés. Plus il y a d’énoncés associés à l’intention, mieux c’est.

Lorsqu’un utilisateur prononce l’un des énoncés associés à une intention ou à des phrases similaires, Lex comprendra l’intention de l’utilisateur. Dans l’exemple ci-dessus, lorsque l’utilisateur dit « Veuillez me donner le statut de ma commande », Lex peut comprendre l’intention de l’utilisateur même si la phrase utilisée par l’utilisateur n’est pas l’énoncé exact, qui peut être configuré. Comprendre des phrases similaires est la beauté d’un et il le fait avec sa capacité de compréhension du langage naturel (NLU), qui est au cœur de Lex.

Insérer: L’emplacement est un paramètre associé à une intention de répondre à la demande d’un utilisateur. Un intent peut avoir zéro ou plusieurs emplacements. Dans l’intention « CheckOrderStatus », orderID sera l’un des emplacements. Pendant l’exécution, Lex demande à l’utilisateur des valeurs d’emplacement spécifiques. Un emplacement peut être configuré selon les besoins ou en option. Les utilisateurs doivent fournir des valeurs pour tous les emplacements requis avant de remplir une intention. Les énoncés sont également configurés avec des slots qui sont les phrases que les utilisateurs utilisent pour fournir des valeurs de slot.

Type d’emplacement : Chaque emplacement a un type. Il existe des types d’emplacements intégrés qui peuvent être utilisés ou peuvent aider à créer un type d’emplacement personnalisé. L’emplacement intégré AMAZON.NUMBER peut être utilisé pour l’emplacement orderID. Lors de la création d’un type d’emplacement personnalisé, une liste de valeurs pour un emplacement doit être énumérée.

Rapide: Prompt est une phrase utilisée par Lex pendant l’exécution pour obtenir les valeurs d’emplacement pour une intention. Chaque emplacement peut être associé à une ou plusieurs invites. Lex en ramasse un au hasard. L’emplacement OrderId peut avoir des invites telles que « Veuillez fournir votre identifiant de commande », « Quel est votre identifiant de commande », etc.

L’exemple de conversation ci-dessus est un flux entre un utilisateur et un bot pour CheckOrderStatusIntent. L’utilisateur commence la conversation avec la phrase – « Bonjour, quel est le statut de ma commande ? ». Sur la base des énoncés associés à l’intention, Lex reconnaît l’intention de l’utilisateur et invite l’utilisateur à saisir l’ID de commande. OrderId est le champ d’emplacement requis pour cet intent. « Puis-je connaître votre OrderId » est l’une des invites associées à l’emplacement orderID et « Mon identifiant de commande est {OrderId} » est l’un des énoncés associés à l’emplacement.

Initialisation, validation, réalisation Lambda : Alors que Lex s’occupe de la NLU et du flux de conversation, nous avons besoin de fonctions Lambda pour la logique métier. Lex fournit une intégration prédéfinie avec Lambda. Lambda peut être utilisé pour l’initialisation, la validation et l’exécution. La même fonction peut être utilisée pour les deux fonctionnalités ou peut avoir des fonctions différentes, selon la complexité.

Procédure séquentielle pour créer un  :

Voyons comment créer un à partir de la console de gestion AWS. Le bot peut également être créé à partir de l’interface de ligne de commande (CLI) AWS. Reportez-vous au Guide Lex pour savoir comment créer un bot à partir de la CLI. Le compte AWS est une condition préalable à la création d’un bot à l’aide de Lex. Créez un compte si vous n’en avez pas.

Créons d’abord une fonction Lambda.

Connectez-vous à AWS Management Console et ouvrez la console AWS Lambda. Choisissez « Créer une fonction » et sur la page de création de fonction, choisissez « Auteur à partir de zéro » pour créer une fonction Lambda personnalisée.

Image 1 : Fonction Lambda

Fournissez un nom unique pour la fonction et choisissez Runtime. J’ai choisi Python. Créez un nouveau rôle à partir de modèles et entrez un nouveau nom de rôle. Choisissez un ou plusieurs modèles de stratégie en fonction des services AWS auxquels Lambda doit accéder.

Image 2 : Code de fonction Lambda en ligne.

Sur la page de la fonction, choisissez « Modifier le code en ligne » dans la section Code de fonction et écrivez du code python pour traiter les demandes de Lex et enregistrez-le. Consultez le Guide Lex sur les formats de demande et de réponse. Dans l’exemple ci-dessus, par souci de simplicité, la logique de validation n’est pas mentionnée et elle répond simplement avec le message Fulfillment sans réellement changer l’état principal du système.

L’étape suivante consiste à créer le Lex.

Connectez-vous à AWS Management Console et accédez à Amazon Lex sous Machine Learning. Dans la page Amazon Lex, les robots sont sélectionnés par défaut. Cliquez sur Créer pour commencer à créer un bot.

Image 3 : Création de bots.

Lex fournit quelques modèles de bots prédéfinis. Dans ce guide, créons un bot personnalisé. Remplissez tous les détails requis pour le bot personnalisé et sélectionnez « Créer ».

Image 4 : Bot personnalisé.

J’ai utilisé le nom du bot comme « MyStore ». La voix de sortie sera utilisée lors de l’interaction avec le par la voix. Le délai d’expiration de la session détermine la durée de la session lorsqu’un bot reste inactif. Le rôle IAM sera créé par défaut. J’ai sélectionné Non pour COPPA.

L’étape suivante consiste à créer une intention. Cliquez sur Créer une intention. Donnez un nom unique à l’intention et cliquez sur Ajouter.

Image 5 : Créer une intention.

J’ai donné PlaceOrder comme nom d’intention et j’ai fourni quelques énoncés. ProductId associé nécessite un emplacement avec le type d’emplacement AMAZON.NUMBER intégré et l’emplacement productId ont un message d’invite – « Fournir productId ». J’ai également fourni la fonction Lambda que j’ai créée dans la section précédente en tant que crochet de code Fulfillment. Des invites supplémentaires pour un emplacement peuvent être configurées en cliquant sur l’icône Paramètres de l’emplacement.

Image 6 : Invites supplémentaires.

J’ai créé une autre intention pour vérifier l’état de la commande.

Image 7 : Intentions supplémentaires.

L’étape suivante consiste à créer et tester le . Construisez un en cliquant sur le bouton Construire dans le coin supérieur droit. Une fois la construction réussie, elle sera prête à être testée. Un bot peut être testé à partir d’une console en cliquant sur la section « Test bot » dans le volet de droite.

Image 8 : Création d’un de test.

La capture d’écran ci-dessus montre comment le flux de conversation se produit entre un utilisateur et un bot. Veuillez vous référer à la documentation Lex pour savoir comment publier et déployer le bot sur l’un des canaux de messagerie.

Veera Venkata Kiran Balla

Architecte de solution

ChatBot: Créer un chatbot à l'aide d'Amazon Lex

#Créer # #laide #dAmazon #Lex