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ée
AMAZON.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 uneBadRequestException
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 lechecksum
champ, ou si la somme de contrôle ne correspond pas à la$LATEST
version, vous obtenez unePreconditionFailedException
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'conclusionStatement
excluent 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'CreateIntentVersion
opé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'
OrderPizza
intention 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 leconclusionStatement
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'
InputContext
objets 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.KendraSearchIntent
intention de se connecter à un index Amazon Kendra. Pour plus d'informations, consultez AMAZON. KendraSearchIntent.Type : objet KendraConfiguration
Obligatoire : non
- outputContexts
-
Tableau d'
OutputContext
objets 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 dans
confirmationPrompt
, 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'
fulfillmentActivity
intention 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
-
True
si une nouvelle version de l'intention a été créée. Si lecreateVersion
champ n'a pas été spécifié dans la demande, lecreateVersion
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'
InputContext
objets 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.KendraSearchIntent
intention.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'
OutputContext
objets 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 :