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

PutIntent

Crée une intention ou remplace une intention existante.

Pour définir l'interaction entre l'utilisateur et votre bot, vous devez utiliser une ou plusieurs intentions. Pour un robot qui commande des pizzas, par exemple, vous devez créer une OrderPizza intention.

Pour créer une intention ou remplacer une intention existante, vous devez fournir les informations suivantes :

  • Nom de l'intention. Par exemple, OrderPizza.

  • Exemples d'énoncés. Par exemple, « Puis-je commander une pizza, s'il vous plaît ? » et « Je veux commander une pizza. »

  • Informations à recueillir. Vous spécifiez les types d'emplacements pour les informations que votre bot demandera à l'utilisateur. Vous pouvez spécifier des types de créneaux standard, tels qu'une date ou une heure, ou des types de créneaux personnalisés tels que la taille et la croûte d'une pizza.

  • Comment l'intention sera-t-elle atteinte ? Vous pouvez fournir une fonction Lambda ou configurer l'intention pour renvoyer les informations d'intention à l'application cliente. Si vous utilisez une fonction Lambda, lorsque toutes les informations d'intention sont disponibles, Amazon Lex appelle votre fonction Lambda. Si vous configurez votre intention pour renvoyer les informations d'intention à l'application cliente.

Vous pouvez spécifier d'autres informations facultatives dans la demande, telles que :

  • Une invite de confirmation demandant à l'utilisateur de confirmer une intention. Par exemple, « Dois-je commander votre pizza ? »

  • Une déclaration de conclusion à envoyer à l'utilisateur une fois que l'intention a été atteinte. Par exemple, « J'ai passé votre commande de pizza ».

  • Une invite de suivi demandant à l'utilisateur d'effectuer une activité supplémentaire. Par exemple, demander « Voulez-vous commander un verre avec votre pizza ? »

Si vous spécifiez un nom d'intention existant pour mettre à jour l'intention, Amazon Lex remplace les valeurs de la $LATEST version de l'intention par celles de la demande. Amazon Lex supprime les champs que vous ne fournissez pas dans la demande. Si vous ne spécifiez pas les champs obligatoires, Amazon Lex génère une exception. Lorsque vous mettez à jour la $LATEST version d'une intention, le status champ de tout bot utilisant la $LATEST version de l'intention est défini surNOT_BUILT.

Pour de plus amples informations, veuillez consulter Amazon Lex : comment ça marche.

Cette opération exige des autorisations pour l'action lex:PutIntent.

Syntaxe de la demande

PUT /intents/name/versions/$LATEST HTTP/1.1 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ] }

Paramètres de demande URI

La demande utilise les paramètres URI suivants.

name

Nom de l'intention. Le nom ne distingue pas les majuscules et minuscules.

Le nom ne peut pas correspondre à un nom d'intention intégré ou à un nom d'intention intégré avec « AMAZON ». supprimé. Par exemple, étant donné qu'une intention intégrée est appeléeAMAZON.HelpIntent, vous ne pouvez pas créer une intention personnalisée appeléeHelpIntent.

Pour obtenir la liste des intentions prédéfinies, consultez Intentions prédéfinies standard dans le kit Alexa Skills.

Contraintes de longueur : longueur minimum de 1. Longueur maximum de 100.

Modèle : ^([A-Za-z]_?)+$

Obligatoire : oui

Corps de la demande

Cette demande accepte les données suivantes au format JSON.

checksum

Identifie une révision spécifique de la $LATEST version.

Lorsque vous créez une nouvelle intention, laissez le checksum champ vide. Si vous spécifiez une somme de contrôle, vous obtenez une BadRequestException exception.

Lorsque vous souhaitez mettre à jour une intention, définissez le checksum champ sur la somme de contrôle de la dernière révision de la $LATEST version. Si vous ne spécifiez pas le checksum champ, ou si la somme de contrôle ne correspond pas à la $LATEST version, vous obtenez une PreconditionFailedException exception.

Type : chaîne

Obligatoire : non

conclusionStatement

Déclaration que vous souhaitez qu'Amazon Lex transmette à l'utilisateur une fois que l'intention a été remplie avec succès par la fonction Lambda.

Cet élément n'est pertinent que si vous fournissez une fonction Lambda dans le. fulfillmentActivity Si vous renvoyez l'intention à l'application cliente, vous ne pouvez pas spécifier cet élément.

Note

Les followUpPrompt et s'conclusionStatementexcluent mutuellement. Vous ne pouvez en spécifier qu'un.

Type : objet Statement

Obligatoire : non

confirmationPrompt

Invite l'utilisateur à confirmer son intention. Cette question doit recevoir une réponse par oui ou par non.

Amazon Lex utilise cette invite pour s'assurer que l'utilisateur reconnaît que l'intention est prête à être exécutée. Par exemple, dans le OrderPizza but de le faire, vous souhaiterez peut-être confirmer que la commande est correcte avant de la passer. À d'autres fins, telles que celles qui répondent simplement aux questions des utilisateurs, il se peut que vous n'ayez pas besoin de demander une confirmation à l'utilisateur avant de fournir les informations.

Note

Vous devez fournir à la fois le rejectionStatement et leconfirmationPrompt, ou aucun des deux.

Type : objet Prompt

Obligatoire : non

createVersion

Lorsqu'elle est définie sur true une nouvelle version numérotée de l'intention, elle est créée. Cela revient à appeler l'CreateIntentVersionopération. Si vous ne le spécifiez pascreateVersion, la valeur par défaut estfalse.

Type : booléen

Obligatoire : non

description

Une description de l'intention.

Type : chaîne

Contraintes de longueur : longueur minimum de 0. Longueur maximum de 200.

Obligatoire : non

dialogCodeHook

Spécifie une fonction Lambda à appeler pour chaque entrée utilisateur. Vous pouvez invoquer cette fonction Lambda pour personnaliser l'interaction de l'utilisateur.

Supposons, par exemple, que votre bot détermine que l'utilisateur est John. Votre fonction Lambda peut récupérer les informations de John dans une base de données principale et préremplir certaines valeurs. Par exemple, si vous constatez que John est intolérant au gluten, vous pouvez définir le créneau d'intention correspondant sur true. GlutenIntolerant Vous pouvez trouver le numéro de téléphone de John et définir l'attribut de session correspondant.

Type : objet CodeHook

Obligatoire : non

followUpPrompt

Amazon Lex utilise cette invite pour solliciter une activité supplémentaire après avoir répondu à une intention. Par exemple, une fois l'OrderPizzaintention remplie, vous pouvez demander à l'utilisateur de commander une boisson.

L'action entreprise par Amazon Lex dépend de la réponse de l'utilisateur, comme suit :

  • Si l'utilisateur répond « Oui », il répond par l'invite de clarification configurée pour le bot.

  • si l'utilisateur répond « Oui » et continue avec un énoncé qui déclenche une intention, il entame une conversation pour cette intention.

  • Si l'utilisateur répond « Non », il répond par la déclaration de rejet configurée pour l'invite de suivi.

  • S'il ne reconnaît pas l'énoncé, il répète à nouveau l'invite de suivi.

Le followUpPrompt champ et le conclusionStatement champ s'excluent mutuellement. Vous ne pouvez en spécifier qu'un.

Type : objet FollowUpPrompt

Obligatoire : non

fulfillmentActivity

Obligatoire. Décrit comment l'intention est atteinte. Par exemple, une fois qu'un utilisateur a fourni toutes les informations relatives à une commande de pizza, fulfillmentActivity définit la manière dont le bot passe une commande auprès d'une pizzeria locale.

Vous pouvez configurer Amazon Lex pour renvoyer toutes les informations d'intention à l'application cliente, ou lui demander d'appeler une fonction Lambda capable de traiter l'intention (par exemple, passer une commande auprès d'une pizzeria).

Type : objet FulfillmentActivity

Obligatoire : non

inputContexts

Tableau d'InputContextobjets répertoriant les contextes qui doivent être actifs pour qu'Amazon Lex puisse choisir l'intention d'une conversation avec l'utilisateur.

Type : tableau d’objets InputContext

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 5 éléments.

Obligatoire : non

kendraConfiguration

Informations de configuration requises pour utiliser l'AMAZON.KendraSearchIntentintention de se connecter à un index Amazon Kendra. Pour plus d'informations, consultez AMAZON. KendraSearchIntent.

Type : objet KendraConfiguration

Obligatoire : non

outputContexts

Tableau d'OutputContextobjets répertoriant les contextes que l'intention active lorsqu'elle est réalisée.

Type : tableau d’objets OutputContext

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 10 éléments.

Obligatoire : non

parentIntentSignature

Un identifiant unique pour l'intention intégrée sur laquelle baser cette intention. Pour trouver la signature d'une intention, consultez la section Intentions intégrées standard dans le kit de compétences Alexa.

Type : chaîne

Obligatoire : non

rejectionStatement

Lorsque l'utilisateur répond « non » à la question définie dansconfirmationPrompt, Amazon Lex répond par cette déclaration pour confirmer que l'intention a été annulée.

Note

Vous devez fournir à la fois le rejectionStatement et leconfirmationPrompt, ou aucun des deux.

Type : objet Statement

Obligatoire : non

sampleUtterances

Un ensemble d'énoncés (chaînes) qu'un utilisateur peut prononcer pour signaler son intention. Par exemple, « Je veux {PizzaSize} pizza », « Commander {Quantité} {PizzaSize} pizzas ».

Dans chaque énoncé, le nom d'une case est placé entre accolades.

Type : tableau de chaînes

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 1 500 articles.

Contraintes de longueur : longueur minimale de 1. Longueur maximum de 200.

Obligatoire : non

slots

Un ensemble de créneaux d'intention. Au moment de l'exécution, Amazon Lex demande à l'utilisateur les valeurs d'emplacement requises à l'aide des instructions définies dans les emplacements. Pour de plus amples informations, veuillez consulter Amazon Lex : comment ça marche.

Type : tableau d’objets Slot

Membres du tableau : nombre minimum de 0 élément. Nombre maximal de 100 éléments.

Obligatoire : non

Syntaxe de la réponse

HTTP/1.1 200 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createdDate": number, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "lastUpdatedDate": number, "name": "string", "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ], "version": "string" }

Eléments de réponse

Si l’action aboutit, le service renvoie une réponse HTTP 200.

Les données suivantes sont renvoyées au format JSON par le service.

checksum

Somme de contrôle de la $LATEST version de l'intention créée ou mise à jour.

Type : chaîne

conclusionStatement

Une fois que la fonction Lambda spécifiée dans l'fulfillmentActivityintention répond à l'intention, Amazon Lex transmet cette déclaration à l'utilisateur.

Type : objet Statement

confirmationPrompt

Si elle est définie dans l'intention, Amazon Lex invite l'utilisateur à confirmer l'intention avant de la réaliser.

Type : objet Prompt

createdDate

Date à laquelle l'intention a été créée.

Type : Timestamp

createVersion

Truesi une nouvelle version de l'intention a été créée. Si le createVersion champ n'a pas été spécifié dans la demande, le createVersion champ est défini sur false dans la réponse.

Type : booléen

description

Une description de l'intention.

Type : chaîne

Contraintes de longueur : longueur minimum de 0. Longueur maximum de 200.

dialogCodeHook

Si elle est définie dans l'intention, Amazon Lex invoque cette fonction Lambda pour chaque entrée utilisateur.

Type : objet CodeHook

followUpPrompt

Si cela est défini dans l'intention, Amazon Lex utilise cette invite pour solliciter une activité supplémentaire de l'utilisateur une fois que l'intention est remplie.

Type : objet FollowUpPrompt

fulfillmentActivity

Si elle est définie dans l'intention, Amazon Lex invoque cette fonction Lambda pour répondre à l'intention une fois que l'utilisateur a fourni toutes les informations requises par l'intention.

Type : objet FulfillmentActivity

inputContexts

Tableau d'InputContextobjets répertoriant les contextes qui doivent être actifs pour qu'Amazon Lex puisse choisir l'intention d'une conversation avec l'utilisateur.

Type : tableau d’objets InputContext

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 5 éléments.

kendraConfiguration

Les informations de configuration, le cas échéant, sont requises pour se connecter à un index Amazon Kendra et utiliser l'AMAZON.KendraSearchIntentintention.

Type : objet KendraConfiguration

lastUpdatedDate

Date à laquelle l'intention a été mise à jour. Lorsque vous créez une ressource, la date de création et la date de dernière mise à jour sont identiques.

Type : Timestamp

name

Nom de l'intention.

Type : chaîne

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 100.

Modèle : ^([A-Za-z]_?)+$

outputContexts

Tableau d'OutputContextobjets répertoriant les contextes que l'intention active lorsqu'elle est réalisée.

Type : tableau d’objets OutputContext

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 10 éléments.

parentIntentSignature

Identifiant unique de l'intention intégrée sur laquelle cette intention est basée.

Type : chaîne

rejectionStatement

Si l'utilisateur répond « non » à la question définie dans confirmationPrompt Amazon Lex, celui-ci répond par cette déclaration pour confirmer que l'intention a été annulée.

Type : objet Statement

sampleUtterances

Un ensemble d'exemples d'énoncés configurés en fonction de l'intention.

Type : tableau de chaînes

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 1 500 articles.

Contraintes de longueur : longueur minimale de 1. Longueur maximum de 200.

slots

Un ensemble de créneaux d'intention configurés en fonction de l'intention.

Type : tableau d’objets Slot

Membres du tableau : nombre minimum de 0 élément. Nombre maximal de 100 éléments.

version

Version de l'intention. Pour une nouvelle intention, la version est toujours$LATEST.

Type : chaîne

Contraintes de longueur : longueur minimum de 1. Longueur maximale de 64.

Modèle : \$LATEST|[0-9]+

Erreurs

BadRequestException

La demande n'est pas bien formulée. Par exemple, une valeur n'est pas valide ou un champ obligatoire est manquant. Vérifiez les valeurs des champs, puis réessayez.

Code d’état HTTP : 400

ConflictException

Un conflit s'est produit lors du traitement de la demande. Réessayez votre demande.

Code d’état HTTP : 409

InternalFailureException

Une erreur interne Amazon Lex s'est produite. Réessayez votre demande.

Code d’état HTTP : 500

LimitExceededException

La demande a dépassé une limite. Réessayez votre demande.

Code d’état HTTP : 429

PreconditionFailedException

La somme de contrôle de la ressource que vous essayez de modifier ne correspond pas à la somme de contrôle de la demande. Vérifiez le checksum de la ressource et réessayez.

Code d’état HTTP : 412

consultez aussi

Pour plus d’informations sur l’utilisation de cette API dans l’un des kits SDK AWS spécifiques au langage, consultez les ressources suivantes :