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

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 valeurtext/plain; charset=utf-8, Amazon Lex renvoie du texte dans la réponse.

  • Si la valeur commence paraudio/, 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écifiez audio/mpeg comme valeur, Amazon Lex renvoie la parole au format MPEG.

  • Si la valeur estaudio/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 une PutSession demande, le contenu de la nouvelle vue récapitulative remplace l'ancienne vue récapitulative. Par exemple, si une GetSession demande renvoie trois intentions dans la vue récapitulative et que vous appelez PutSession avec une intention dans la vue récapitulative, l'appel suivant ne GetSession 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 le encodedMessage 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'il valueSelectionStrategy 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 valeur valueSelectionStrategy est définie TOP_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 :