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.
PutSession
Crée une nouvelle session ou modifie une session existante avec un robot Amazon Lex. Utilisez cette opération pour permettre à votre application de définir l'état du bot.
Pour plus d'informations, consultez Gestion des sessions.
Syntaxe de la demande
POST /bot/botName
/alias/botAlias
/user/userId
/session HTTP/1.1
Accept: accept
Content-type: application/json
{
"activeContexts": [
{
"name": "string
",
"parameters": {
"string
" : "string
"
},
"timeToLive": {
"timeToLiveInSeconds": number
,
"turnsToLive": number
}
}
],
"dialogAction": {
"fulfillmentState": "string
",
"intentName": "string
",
"message": "string
",
"messageFormat": "string
",
"slots": {
"string
" : "string
"
},
"slotToElicit": "string
",
"type": "string
"
},
"recentIntentSummaryView": [
{
"checkpointLabel": "string
",
"confirmationStatus": "string
",
"dialogActionType": "string
",
"fulfillmentState": "string
",
"intentName": "string
",
"slots": {
"string
" : "string
"
},
"slotToElicit": "string
"
}
],
"sessionAttributes": {
"string
" : "string
"
}
}
Paramètres de demande URI
La demande utilise les paramètres URI suivants.
- accept
-
Le message renvoyé par Amazon Lex dans la réponse peut être textuel ou vocal en fonction de la valeur de ce champ.
-
Si la valeur est égale à cette valeur
text/plain; charset=utf-8
, Amazon Lex renvoie du texte dans la réponse. -
Si la valeur commence par
audio/
, Amazon Lex renvoie un message vocal dans la réponse. Amazon Lex utilise Amazon Polly pour générer le discours dans la configuration que vous spécifiez. Par exemple, si vous spécifiezaudio/mpeg
comme valeur, Amazon Lex renvoie la parole au format MPEG. -
Si la valeur est
audio/pcm
, le discours est renvoyéaudio/pcm
au format Little Endian 16 bits. -
Les valeurs acceptées sont les suivantes :
-
audio/mpeg
-
audio/ogg
-
audio/pcm
-
audio/*
(mpeg par défaut) -
text/plain; charset=utf-8
-
-
- botAlias
-
Alias utilisé pour le bot qui contient les données de session.
Obligatoire : oui
- botName
-
Le nom du bot qui contient les données de session.
Obligatoire : oui
- userId
-
ID de l'utilisateur de l'application cliente. Amazon Lex l'utilise pour identifier la conversation d'un utilisateur avec votre bot.
Contraintes de longueur : longueur minimale de 2. Longueur maximum de 100.
Modèle :
[0-9a-zA-Z._:-]+
Obligatoire : oui
Corps de la demande
Cette demande accepte les données suivantes au format JSON.
- activeContexts
-
Liste des contextes actifs pour la demande. Un contexte peut être activé lorsqu'une intention précédente est satisfaite, ou en incluant le contexte dans la demande,
Si vous ne spécifiez pas de liste de contextes, Amazon Lex utilisera la liste actuelle des contextes pour la session. Si vous spécifiez une liste vide, tous les contextes de la session sont effacés.
Type : tableau d’objets ActiveContext
Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 20 éléments.
Obligatoire : non
- dialogAction
-
Définit l'action suivante que le bot doit effectuer pour mener à bien la conversation.
Type : objet DialogAction
Obligatoire : non
- recentIntentSummaryView
-
Un résumé des récentes intentions concernant le bot. Vous pouvez utiliser la vue récapitulative des intentions pour définir une étiquette de point de contrôle sur une intention et modifier les attributs des intentions. Vous pouvez également l'utiliser pour supprimer ou ajouter des objets de synthèse des intentions à la liste.
L'intention que vous modifiez ou ajoutez à la liste doit être logique pour le bot. Par exemple, le nom de l'intention doit être valide pour le bot. Vous devez fournir des valeurs valides pour :
-
intentName
-
noms de machines à sous
-
slotToElict
Si vous envoyez le
recentIntentSummaryView
paramètre dans unePutSession
demande, le contenu de la nouvelle vue récapitulative remplace l'ancienne vue récapitulative. Par exemple, si uneGetSession
demande renvoie trois intentions dans la vue récapitulative et que vous appelezPutSession
avec une intention dans la vue récapitulative, l'appel suivant neGetSession
renverra qu'une seule intention.Type : tableau d’objets IntentSummary
Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 3 articles.
Obligatoire : non
-
- sessionAttributes
-
Carte des paires clé/valeur représentant les informations contextuelles spécifiques à la session. Il contient les informations d'application transmises entre Amazon Lex et une application cliente.
Type : mappage chaîne/chaîne
Obligatoire : non
Syntaxe de la réponse
HTTP/1.1 200
Content-Type: contentType
x-amz-lex-intent-name: intentName
x-amz-lex-slots: slots
x-amz-lex-session-attributes: sessionAttributes
x-amz-lex-message: message
x-amz-lex-encoded-message: encodedMessage
x-amz-lex-message-format: messageFormat
x-amz-lex-dialog-state: dialogState
x-amz-lex-slot-to-elicit: slotToElicit
x-amz-lex-session-id: sessionId
x-amz-lex-active-contexts: activeContexts
audioStream
Eléments de réponse
Si l’action aboutit, le service renvoie une réponse HTTP 200.
La réponse renvoie les en-têtes HTTP suivants.
- activeContexts
-
Liste des contextes actifs pour la session.
- contentType
-
Type de contenu tel que spécifié dans l'en-tête
Accept
HTTP de la demande. - dialogState
-
-
ConfirmIntent
- Amazon Lex attend une réponse « oui » ou « non » pour confirmer l'intention avant de la réaliser. -
ElicitIntent
- Amazon Lex souhaite connaître l'intention de l'utilisateur. -
ElicitSlot
- Amazon Lex attend la valeur d'un emplacement pour l'objectif actuel. -
Failed
- Indique que la conversation avec l'utilisateur a échoué. Cela peut se produire pour diverses raisons, notamment si l'utilisateur ne fournit pas de réponse appropriée aux demandes du service ou si la fonction Lambda ne répond pas à l'intention. -
Fulfilled
- Indique que la fonction Lambda a répondu avec succès à l'intention. -
ReadyForFulfillment
- Indique que le client doit réaliser son intention.
Valeurs valides :
ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed
-
- encodedMessage
-
Le message suivant qui doit être présenté à l'utilisateur.
Le
encodedMessage
champ est codé en base 64. Vous devez décoder le champ avant de pouvoir utiliser la valeur.Contraintes de longueur : longueur minimum de 1. Longueur maximale de 1366.
- intentName
-
Le nom de l'intention actuelle.
- message
-
Cet en-tête est devenu obsolète.
Le message suivant qui doit être présenté à l'utilisateur.
Vous ne pouvez utiliser ce champ que dans les paramètres régionaux de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR et it-IT. Dans tous les autres paramètres régionaux, le
message
champ est nul. Vous devriez plutôt utiliser leencodedMessage
champ.Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 1024.
- messageFormat
-
Format du message de réponse. L'une des valeurs suivantes :
-
PlainText
- Le message contient du texte UTF-8 brut. -
CustomPayload
- Le message est un format personnalisé pour le client. -
SSML
- Le message contient du texte formaté pour la sortie vocale. -
Composite
- Le message contient un objet JSON échappé contenant un ou plusieurs messages provenant des groupes auxquels les messages ont été affectés lors de la création de l'intention.
Valeurs valides :
PlainText | CustomPayload | SSML | Composite
-
- sessionAttributes
-
Carte des paires clé/valeur représentant les informations contextuelles spécifiques à la session.
- sessionId
-
Identifiant unique de la session.
- slots
-
Carte de zéro ou plusieurs créneaux d'intention détectés par Amazon Lex à partir des informations saisies par l'utilisateur au cours de la conversation.
Amazon Lex crée une liste de résolutions contenant les valeurs probables pour un emplacement. La valeur renvoyée est déterminée par la valeur
valueSelectionStrategy
sélectionnée lors de la création ou de la mise à jour du type d'emplacement. S'ilvalueSelectionStrategy
est défini surORIGINAL_VALUE
, la valeur fournie par l'utilisateur est renvoyée, si la valeur utilisateur est similaire aux valeurs des emplacements. Si la valeurvalueSelectionStrategy
est définieTOP_RESOLUTION
sur Amazon Lex, elle renvoie la première valeur de la liste de résolutions ou, en l'absence de liste de résolutions, la valeur nulle. Si vous ne spécifiez pas de,valueSelectionStrategy
la valeur par défaut estORIGINAL_VALUE
. - slotToElicit
-
Si tel
dialogState
est le casElicitSlot
, renvoie le nom de l'emplacement pour lequel Amazon Lex demande une valeur.
La réponse renvoie ce qui suit en tant que corps HTTP.
- audioStream
-
Version audio du message à transmettre à l'utilisateur.
Erreurs
- BadGatewayException
-
Soit le bot Amazon Lex est toujours en cours de création, soit l'un des services dépendants (Amazon Polly, AWS Lambda) a échoué en raison d'une erreur de service interne.
Code d’état HTTP : 502
- BadRequestException
-
La validation de la demande a échoué, il n'y a aucun message utilisable dans le contexte, ou la création du bot a échoué, est toujours en cours ou contient des modifications non intégrées.
Code d’état HTTP : 400
- ConflictException
-
Deux clients utilisent le même compte AWS, le même bot Amazon Lex et le même ID utilisateur.
Code d’état HTTP : 409
- DependencyFailedException
-
L'une des dépendances, telle qu'AWS Lambda ou Amazon Polly, a généré une exception. Par exemple,
-
Si Amazon Lex ne dispose pas des autorisations suffisantes pour appeler une fonction Lambda.
-
Si l'exécution d'une fonction Lambda prend plus de 30 secondes.
-
Si une fonction Lambda d'exécution renvoie une action de
Delegate
dialogue sans supprimer aucune valeur d'intervalle.
Code d'état HTTP : 424
-
- InternalFailureException
-
Erreur de service interne. Réessayez l'appel.
Code d’état HTTP : 500
- LimitExceededException
-
Dépassement d'une limite.
Code d’état HTTP : 429
- NotAcceptableException
-
L'en-tête d'acceptation de la demande n'a pas de valeur valide.
Code d'état HTTP : 406
- NotFoundException
-
La ressource (telle que le bot Amazon Lex ou un alias) à laquelle il est fait référence est introuvable.
Code d’état HTTP : 404
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 :