Modèle de programmation - 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.

Modèle de programmation

Un bot est le principal type de ressource d'Amazon Lex. Les autres types de ressources d'Amazon Lex sont l'intention, le type d'emplacement, l'alias et l'association de canaux de bot.

Vous créez un bot à l'aide de la console Amazon Lex ou de l'API de création de modèles. La console fournit une interface utilisateur graphique que vous utilisez pour générer un bot prêt pour la production pour votre application. Si vous préférez, vous pouvez utiliser l'API de création de modèle via l'AWS CLI ou votre propre programme personnalisé pour créer un bot.

Une fois que vous avez créé un bot, vous le déployez sur l'une des plateformes prises en charge ou l'intégrer dans votre propre application. Lorsqu'un utilisateur interagit avec le bot, l'application cliente envoie des demandes au bot à l'aide de l'API d'exécution Amazon Lex. Par exemple, lorsqu'un utilisateur dit « Je veux commander une pizza », votre client envoie cette entrée à Amazon Lex à l'aide de l'une des opérations d'API d'exécution. Les utilisateurs peuvent fournir une entrée vocale ou textuelle.

Vous pouvez également créer des fonctions Lambda et les utiliser dans une intention. Utilisez ces hooks de code de fonction Lambda pour effectuer des activités d'exécution telles que l'initialisation, la validation des entrées utilisateur et la réalisation des intentions. Les sections suivantes fournissent des informations supplémentaires.

Opérations API de création du modèle

Pour créer des bots, des intentions et des types d'options par programmation, utilisez les opérations d'API de création de modèle. Vous pouvez également utiliser l'API de création de modèle pour gérer, mettre à jour et supprimer des ressources pour votre bot. Les opérations d'API de création de modèle sont les suivantes :

Vous pouvez utiliser l'API de création de modèles pour créer des outils personnalisés afin de gérer vos ressources Amazon Lex. Par exemple, une limite de 100 versions s'applique à chaque bot, chaque intention et chaque type d'option. Vous pouvez utiliser l'API de création de modèle pour créer un outil qui supprime automatiquement les anciennes versions lorsque le bot est sur le point d'atteindre la limite.

Pour s'assurer qu'une seule opération met à jour une ressource à la fois, Amazon Lex utilise des checksums. Lorsque vous utilisez une opération d'PutAPI (PutBot, PutBotAliasPutIntent, ouPutSlotType) pour mettre à jour une ressource, vous devez transmettre la somme de contrôle actuelle de la ressource dans la demande. Si deux outils essaient de mettre à jour une ressource en même temps, ils fournissent le même total de contrôle en cours. La première demande pour joindre Amazon Lex correspond à la somme de contrôle actuelle de la ressource. Lorsque la deuxième demande arrive, le total de contrôle est différent. Le deuxième outil reçoit une exception PreconditionFailedException et la mise à jour se termine.

Les Get opérations —GetBot,GetIntent, et GetSlotType — sont finalement cohérentes. Si vous utilisez une opération Get juste après avoir créé ou modifié une ressource avec l'une des opérations Put, il se peut que les modifications ne soient pas renvoyées. Après qu'une opération Get renvoie la mise à jour la plus récente, elle renvoie toujours cette ressource mise à jour jusqu'à ce qu'elle soit modifiée de nouveau. Pour déterminer si une ressource mise à jour a été renvoyée, examinez le total de contrôle.

Opérations API d'exécution

Les applications clientes utilisent les opérations d'API d'exécution suivantes pour communiquer avec Amazon Lex :

  • PostContent— Prend en compte la saisie vocale ou textuelle et renvoie des informations d'intention et un message texte ou vocal à transmettre à l'utilisateur. Actuellement, Amazon Lex prend en charge les formats audio suivants :

     

    Formats audio d'entrée – LPCM et Opus

    Formats audio de sortie – MPEG, OGG, et PCM

     

    L'opération PostContent prend en charge l'entrée audio à 8 kHz et 16 kHz. Les applications dans lesquelles l'utilisateur final communique avec Amazon Lex par téléphone, telles qu'un centre d'appels automatisé, peuvent transmettre directement du son à 8 kHz.

     

  • PostText – Utilise une entrée de texte et renvoie les informations d'intention, ainsi qu'un message textuel à l'utilisateur.

Votre application cliente utilise l'API d'exécution pour appeler un bot Amazon Lex spécifique afin de traiter des énoncés, qu'il s'agisse de texte utilisateur ou de saisie vocale. Par exemple, imaginez un utilisateur qui dit « I want pizza ». Le client envoie cette entrée utilisateur à un bot à l'aide de l'une des opérations de l'API d'exécution Amazon Lex. À partir des données saisies par l'utilisateur, Amazon Lex reconnaît que la demande de l'utilisateur répond à OrderPizza l'intention définie dans le bot. Amazon Lex engage l'utilisateur dans une conversation afin de recueillir les informations requises, ou les données relatives aux créneaux, telles que la taille des pizzas, les garnitures et le nombre de pizzas. Une fois que l'utilisateur a fourni toutes les données d'emplacement nécessaires, Amazon Lex invoque le crochet de code de la fonction Lambda pour répondre à l'intention ou renvoie les données d'intention au client, selon la manière dont l'intention est configurée.

Utilisez l'opération PostContent lorsque votre bot utilise l'entrée vocale. Par exemple, une application de centre d'appels automatique peut envoyer un message vocal à un robot Amazon Lex plutôt qu'à un agent pour répondre aux demandes des clients. Vous pouvez utiliser le format audio 8 kHz pour envoyer du son directement depuis le téléphone vers Amazon Lex.

La fenêtre de test de la console Amazon Lex utilise l'PostContentAPI pour envoyer des requêtes textuelles et vocales à Amazon Lex. Vous utilisez cette fenêtre de test dans les exercices de Commencer à utiliser Amazon Lex.

Les fonctions Lambda sont des crochets de code

Vous pouvez configurer votre bot Amazon Lex pour appeler une fonction Lambda en tant que crochet de code. Le hook de code peut avoir différentes fonctions :

  • Personnalise l'interaction avec l'utilisateur : par exemple, lorsque Joe demande les garnitures de pizza disponibles, vous pouvez utiliser la connaissance préalable des choix de Joe pour afficher un sous-ensemble de garnitures.

  • Valide la saisie de l'utilisateur. Supposons que Jen veuille cueillir des fleurs après les heures de bureau. Vous pouvez valider l'heure saisie par l'utilisateur et donner une réponse adaptée.

  • Répond à l'intention de l'utilisateur : une fois que Joe a fourni toutes les informations relatives à sa commande de pizza, Amazon Lex peut invoquer une fonction Lambda pour passer la commande auprès d'une pizzeria locale.

Lorsque vous configurez une intention, vous spécifiez les fonctions Lambda sous forme de crochets de code aux endroits suivants :

  • Crochet de code de dialogue pour l'initialisation et la validation : cette fonction Lambda est invoquée à chaque entrée utilisateur, en supposant qu'Amazon Lex ait compris l'intention de l'utilisateur.

  • Fulfillment Code Hook : cette fonction Lambda est invoquée une fois que l'utilisateur a fourni toutes les données d'emplacement requises pour répondre à l'intention.

Vous choisissez l'intention et définissez les crochets de code dans la console Amazon Lex, comme illustré dans la capture d'écran suivante :

La console Amazon Lex affiche les hooks du code de fonction Lambda.

Vous pouvez également définir les hooks de code avec les champs dialogCodeHook et fulfillmentActivity dans l'opération PutIntent.

Une fonction Lambda peut effectuer l'initialisation, la validation et l'exécution. Les données d'événement reçues par la fonction Lambda comportent un champ qui identifie l'appelant en tant que lien de dialogue ou de code d'expédition. Vous pouvez utiliser ces informations pour exécuter la partie appropriée de votre code.

Vous pouvez utiliser une fonction Lambda pour créer un bot capable de naviguer dans des boîtes de dialogue complexes. Vous utilisez le dialogAction champ dans la réponse de la fonction Lambda pour demander à Amazon Lex de prendre des mesures spécifiques. Par exemple, vous pouvez utiliser l'action de ElicitSlot dialogue pour demander à Amazon Lex de demander à l'utilisateur une valeur d'emplacement qui n'est pas requise. Si vous avez une invite de clarification définie, vous pouvez utiliser l'action de dialogue ElicitIntent pour choisir une nouvelle intention lorsque l'utilisateur a terminé avec l'intention précédente.

Pour de plus amples informations, veuillez consulter Utilisation des fonctions Lambda.