Utilisation des opérations d'API - Amazon Lex

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.

Utilisation des opérations d'API

Associer une fonction Lambda à un alias de bot

Si vous créez un nouvel alias de bot, utilisez l'CreateBotAliasopération pour associer une fonction Lambda. Pour associer une fonction Lambda à un alias de bot existant, utilisez l'UpdateBotAliasopération. Modifiez le botAliasLocaleSettings champ pour qu'il contienne les paramètres appropriés :

{ "botAliasLocaleSettings" : { locale: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name" } }, "enabled": true }, ... } }
  1. Le botAliasLocaleSettings champ correspond à un objet dont les clés sont les paramètres régionaux auxquels vous souhaitez associer la fonction Lambda. Consultez Langues et paramètres régionaux pris en charge la liste des paramètres régionaux pris en charge et les codes des clés valides.

  2. Pour trouver la fonction lambdaARN for a Lambda, ouvrez la AWS Lambda console à l'adresse https://console.aws.amazon.com/lambda/home, sélectionnez Functions dans la barre latérale gauche, puis sélectionnez la fonction à associer à l'alias du bot. Sur le côté droit de la vue d'ensemble des fonctions, trouvez le lambdaARN sous-onglet « Function ARN ». Il doit contenir une région, un identifiant de compte et le nom de la fonction.

  3. Pour permettre à Amazon Lex V2 d'appeler la fonction Lambda pour l'alias, définissez le enabled champ sur. true

Définissez l'intention d'invoquer la fonction Lambda

Pour configurer l'invocation de la fonction Lambda lors d'une intention, utilisez l'CreateIntentopération si vous créez une nouvelle intention ou l'UpdateIntentopération si vous appelez la fonction dans une intention existante. Les champs qui contrôlent l'invocation de la fonction Lambda dans les opérations d'intention sontdialogCodeHook,initialResponseSetting, intentConfirmationSetting et. fulfillmentCodeHook

Si vous invoquez la fonction pendant l'élicitation d'un emplacement, utilisez l'CreateSlotopération si vous créez un nouvel emplacement ou l'UpdateSlotopération pour appeler la fonction dans un emplacement existant. Le champ qui contrôle l'invocation de la fonction Lambda dans les opérations de slot est celui slotCaptureSetting de l'objet. valueElicitationSetting

  1. Pour configurer le crochet de code de la boîte de dialogue Lambda pour qu'il s'exécute après chaque tour de conversation, définissez le enabled champ de l'DialogCodeHookSettingsobjet suivant dans le dialogCodeHook champ comme suit : true

    "dialogCodeHook": { "enabled": boolean }
  2. Vous pouvez également configurer le crochet de code de la boîte de dialogue Lambda pour qu'il ne s'exécute qu'à des moments spécifiques des conversations en modifiant le elicitationCodeHook champ codeHook et/ou dans les structures correspondant aux étapes de conversation auxquelles vous souhaitez appeler la fonction. Pour utiliser le crochet de code de la boîte de dialogue Lambda pour répondre à une intention, utilisez le fulfillmentCodeHook champ dans l'opération CreateIntentou UpdateIntent. Les structures et les utilisations de ces trois types de code hooks sont les suivantes :

Le codeHook champ définit les paramètres du crochet de code à exécuter à un stade donné de la conversation. Il s'agit d'un DialogCodeHookInvocationSettingobjet dont la structure est la suivante :

"codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
  • Modifiez le active champ true pour qu'Amazon Lex V2 appelle le code hook à ce stade de la conversation.

  • Modifiez le enableCodeHookInvocation champ true pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquezfalse, Amazon Lex V2 agit comme si le code hook avait été renvoyé avec succès.

  • invocationLabelIndique l'étape de dialogue à partir de laquelle le crochet de code est invoqué.

  • Utilisez le postCodeHookSpecification champ pour spécifier les actions et les messages qui se produisent après la réussite, l'échec ou l'expiration du délai d'expiration du crochet de code.

Le elicitationCodeHook champ définit les paramètres du crochet de code à exécuter dans le cas où un ou plusieurs emplacements doivent être réactivés. Ce scénario peut se produire si l'obtention d'un créneau échoue ou si la confirmation de l'intention est refusée. Le elicitationCodeHook champ est un ElicitationCodeHookInvocationSettingobjet dont la structure est la suivante :

"elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }
  • Modifiez le enableCodeHookInvocation champ true pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquezfalse, Amazon Lex V2 agit comme si le code hook avait été renvoyé avec succès.

  • invocationLabelIndique l'étape de dialogue à partir de laquelle le crochet de code est invoqué.

Le fulfillmentCodeHook champ définit les paramètres du crochet de code à exécuter pour répondre à l'intention. Il correspond à l'FulfillmentCodeHookSettingsobjet suivant :

"fulfillmentCodeHook": { "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
  • Modifiez le active champ true pour qu'Amazon Lex V2 appelle le code hook à ce stade de la conversation.

  • Modifiez le enabled champ true pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquezfalse, Amazon Lex V2 agit comme si le code hook avait été renvoyé avec succès.

  • Utilisez le fulfillmentUpdatesSpecification champ pour spécifier les messages qui semblent informer l'utilisateur lors de la réalisation de l'intention et le moment qui leur est associé.

  • Utilisez le postFulfillmentStatusSpecification champ pour spécifier les messages et les actions qui se produisent après la réussite, l'échec ou l'expiration du délai d'expiration du crochet de code.

Vous pouvez invoquer le crochet de code Lambda aux points suivants d'une conversation en définissant les enabled champs active etenableCodeHookInvocation/sur : true

Pour appeler la fonction Lambda dans la réponse initiale une fois l'intention reconnue, utilisez la codeHook structure dans le initialResponse champ de l'opération CreateIntentor UpdateIntent. Le initialResponse champ correspond à l'InitialResponseSettingobjet suivant :

"initialResponse": { "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }

Pour appeler la fonction Lambda après avoir obtenu une valeur d'emplacement, utilisez le slotCaptureSetting champ situé dans le valueElicitation champ de l'opération or. CreateSlotUpdateSlot Le slotCaptureSetting champ correspond à l'SlotCaptureSettingobjet suivant :

"slotCaptureSetting": { "captureConditional": ConditionalSpecification object, "captureNextStep": DialogState object, "captureResponse": ResponseSpecification object, "codeHook": { "active": true, "enableCodeHookInvocation": true, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object }
  • Pour appeler la fonction Lambda une fois que l'élicitation des emplacements est réussie, utilisez le champ. codeHook

  • Pour appeler la fonction Lambda après l'échec de l'élicitation des emplacements et qu'Amazon Lex V2 tente à nouveau de les activer, utilisez le champ. elicitationCodeHook

Pour appeler la fonction Lambda lors de la confirmation d'une intention, utilisez le intentConfirmationSetting champ de l'opération CreateIntentor UpdateIntent. Le intentConfirmation champ correspond à l'IntentConfirmationSettingobjet suivant :

"intentConfirmationSetting": { "active": boolean, "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "confirmationConditional": ConditionalSpecification object, "confirmationNextStep": DialogState object, "confirmationResponse": ResponseSpecification object, "declinationConditional": ConditionalSpecification object, "declinationNextStep": FulfillmentUpdatesSpecification object, "declinationResponse": PostFulfillmentStatusSpecification object, "elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string, }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object, "promptSpecification": PromptSpecification object }
  • Pour appeler la fonction Lambda une fois que l'utilisateur a confirmé l'intention et ses emplacements, utilisez le codeHook champ.

  • Pour appeler la fonction Lambda une fois que l'utilisateur a refusé la confirmation de l'intention et qu'Amazon Lex V2 a tenté à nouveau d'obtenir des emplacements, utilisez le champ. elicitationCodeHook

Pour appeler la fonction Lambda afin de répondre à une intention, utilisez le fulfillmentCodeHook champ dans l'opération CreateIntentor UpdateIntent. Le fulfillmentCodeHook champ correspond à l'FulfillmentCodeHookSettingsobjet suivant :

{ "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }

3. Une fois que vous avez défini les étapes de conversation auxquelles vous devez invoquer la fonction Lambda, utilisez l'BuildBotLocaleopération pour reconstruire le bot afin de tester la fonction.