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.
Exercice 2 : Ajout d'un nouvel énoncé (AWS CLI)
Pour améliorer le modèle d'apprentissage automatique qu'Amazon Lex utilise pour reconnaître les demandes de vos utilisateurs, ajoutez un autre exemple d'énoncé au bot.
L'ajout d'un nouvel énoncé se fait en quatre étapes.
Pour exécuter les commandes de cet exercice, vous devez connaître la région dans laquelle les commandes seront exécutées. Pour obtenir la liste des régions, consultez Quotas liés à la création de modèle .
La réponse générée par l'opération GetIntent
contient le champ checksum
, qui identifie une révision spécifique de l'intention. Vous devez fournir la valeur du total de contrôle lorsque vous utilisez l'opération PutIntent pour mettre à jour une intention. Dans le cas contraire, vous obtiendrez le message d'erreur suivant :
An error occurred (PreconditionFailedException) when calling the PutIntent operation: Intentintent name
already exists. If you are trying to updateintent name
you must specify the checksum.
Note
L'exemple d'AWS CLI est mis en forme pour Unix, Linux et macOS. Pour Windows, remplacez "\$LATEST"
par $LATEST
et remplacez le caractère de continuation, à savoir la barre oblique inversée (\), à la fin de chaque ligne par un accent circonflexe (^).
Pour mettre à jour l'intention OrderFlowers
(AWS CLI)
-
Dans leAWS CLI, obtenez l'intention auprès d'Amazon Lex. Amazon Lex envoie la sortie vers un fichier appelé
OrderFlowers-V2.json.
aws lex-models get-intent \ --region
region
\ --name OrderFlowers \ --intent-version "\$LATEST" > OrderFlowers-V2.json -
Ouvrez
OrderFlowers-V2.json
dans un éditeur de texte.-
Recherchez les champs
createdDate
,lastUpdatedDate
etversion
et supprimez-les. -
Ajoutez le texte suivant dans le champ
sampleUtterances
:I want to order flowers
-
Enregistrez le fichier.
-
-
Envoyez l'intention mise à jour à Amazon Lex à l'aide de la commande suivante :
aws lex-models put-intent \ --region
region
\ --name OrderFlowers \ --cli-input-json file://OrderFlowers-V2.jsonAmazon Lex envoie la réponse suivante :
{ "confirmationPrompt": { "maxAttempts": 2, "messages": [ { "content": "Okay, your {FlowerType} will be ready for pickup by {PickupTime} on {PickupDate}. Does this sound okay?", "contentType": "PlainText" } ] }, "name": "OrderFlowers", "checksum": "
checksum
", "version": "$LATEST", "rejectionStatement": { "messages": [ { "content": "Okay, I will not place your order.", "contentType": "PlainText" } ] }, "createdDate":timestamp
, "lastUpdatedDate":timestamp
, "sampleUtterances": [ "I would like to pick up flowers", "I would like to order some flowers", "I want to order flowers" ], "slots": [ { "slotType": "AMAZON.TIME", "name": "PickupTime", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "Pick up the {FlowerType} at what time on {PickupDate}?", "contentType": "PlainText" } ] }, "priority": 3, "description": "The time to pick up the flowers" }, { "slotType": "FlowerTypes", "name": "FlowerType", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "What type of flowers would you like to order?", "contentType": "PlainText" } ] }, "priority": 1, "slotTypeVersion": "$LATEST", "sampleUtterances": [ "I would like to order {FlowerType}" ], "description": "The type of flowers to pick up" }, { "slotType": "AMAZON.DATE", "name": "PickupDate", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "What day do you want the {FlowerType} to be picked up?", "contentType": "PlainText" } ] }, "priority": 2, "description": "The date to pick up the flowers" } ], "fulfillmentActivity": { "type": "ReturnIntent" }, "description": "Intent to order a bouquet of flowers for pick up" }
Maintenant que vous avez mis à jour l'intention, reconstruisez les bots qui l'utilisent.
Pour reconstruire le bot OrderFlowersBot
(AWS CLI)
-
Dans l'AWS CLI, accédez à la définition du bot
OrderFlowersBot
et enregistrez-la dans un fichier à l'aide de la commande suivante :aws lex-models get-bot \ --region
region
\ --name OrderFlowersBot \ --version-or-alias "\$LATEST" > OrderFlowersBot-V2.json -
Ouvrez
OrderFlowersBot-V2.json
dans un éditeur de texte. Supprimez les champscreatedDate
,lastUpdatedDate
,status
etversion
. -
Dans un éditeur de texte, ajoutez la ligne suivante à la définition du bot :
"processBehavior": "BUILD",
-
Dans l'AWS CLI, créez une autre révision du bot en exécutant la commande suivante :
aws lex-models put-bot \ --region
region
\ --name OrderFlowersBot \ --cli-input-json file://OrderFlowersBot-V2.jsonLa réponse du serveur est :
{ "status": "BUILDING", "intents": [ { "intentVersion": "$LATEST", "intentName": "OrderFlowers" } ], "name": "OrderFlowersBot", "locale": "en-US", "checksum": "
checksum
", "abortStatement": { "messages": [ { "content": "Sorry, I'm not able to assist at this time", "contentType": "PlainText" } ] }, "version": "$LATEST", "lastUpdatedDate":timestamp
, "createdDate":timestamp
"clarificationPrompt": { "maxAttempts": 2, "messages": [ { "content": "I didn't understand you, what would you like to do?", "contentType": "PlainText" } ] }, "voiceId": "Salli", "childDirected": false, "idleSessionTTLInSeconds": 600, "description": "Bot to order flowers on the behalf of a user" }
Étape suivante
Exercice 3 : Ajouter une fonction Lambda () AWS CLI